Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как вычислить выражение? / 25 сообщений из 116, страница 1 из 5
18.07.2012, 11:46
    #37883388
Ъыжсло
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
предположим есть такое выражение:
dim v as string = "=({0}+{1})/{2}"
dim _v as string = String.Format(x,1,2,3)

получаем нечто вроде =(1+2)\3

как его вычислить? чтобы на выходе получилось 1?
...
Рейтинг: 0 / 0
18.07.2012, 11:49
    #37883392
netivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
Ъыжсло,

мне кажется был такой вопрос, вроде есть библиотека. Ну или как вариант самому парсить :)
...
Рейтинг: 0 / 0
18.07.2012, 11:57
    #37883412
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
netivan,

то есть , ты против того, чтобы думать? :)
...
Рейтинг: 0 / 0
18.07.2012, 12:02
    #37883429
netivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
AlexeiK,

я против изобретения велосипеда. А вообще задача-то любопытная)
...
Рейтинг: 0 / 0
18.07.2012, 12:02
    #37883431
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
Баян.
...
Рейтинг: 0 / 0
18.07.2012, 12:10
    #37883457
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
МСУ,

да, институтский баян.
...
Рейтинг: 0 / 0
18.07.2012, 12:24
    #37883483
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
AlexeiKМСУ, да, институтский баян.
Причем тут институтские поделки. Есть готовые движки.
...
Рейтинг: 0 / 0
18.07.2012, 12:27
    #37883492
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
МСУ,

о да движки это круто.
причем тут движки, когда это можно без движков сделать, каждому студенту подсилу.
...
Рейтинг: 0 / 0
18.07.2012, 12:30
    #37883498
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
AlexeiKМСУ,

о да движки это круто.
причем тут движки, когда это можно без движков сделать, каждому студенту подсилу.
Сделаешь? Или просто воздух сотрясаешь?
...
Рейтинг: 0 / 0
18.07.2012, 12:34
    #37883505
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
В ВикипедиИ алгоритм расписан: Обратная польская запись .
...
Рейтинг: 0 / 0
18.07.2012, 12:39
    #37883522
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
skyANAВ ВикипедиИ алгоритм расписан: Обратная польская запись .
Алгоритму место на свалке. Возведение в степень, корни, прогрессии и иже с ним - в уме считать будем?
Нужен готовый компилятор выражений, всё остальное - пионерия.
...
Рейтинг: 0 / 0
18.07.2012, 12:45
    #37883535
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
http://www.sql.ru/forum/actualthread.aspx?tid=805419&pg=1&mid=9768534#9768534

Еще помню кто-то приводил вариант на Linq Expressions.
...
Рейтинг: 0 / 0
18.07.2012, 13:01
    #37883581
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
Нашел. /topic/890988&hl=xpathexpression

Алексей, код будет или как? )
...
Рейтинг: 0 / 0
18.07.2012, 13:41
    #37883676
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
МСУskyANAВ ВикипедиИ алгоритм расписан: Обратная польская запись .
Алгоритму место на свалке. Возведение в степень, корни, прогрессии и иже с ним - в уме считать будем?
Нужен готовый компилятор выражений, всё остальное - пионерия.Там есть ссылка на примеры реализации, в том числе и на C#.
...
Рейтинг: 0 / 0
18.07.2012, 13:45
    #37883680
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
А вообще ТС спрашивает "как вычислить выражение". Это может означать "где найти готовый evaluator", а может и "как написать код, вычисляющий выражение" :)
...
Рейтинг: 0 / 0
18.07.2012, 13:52
    #37883692
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
skyANAМСУпропущено...

Алгоритму место на свалке. Возведение в степень, корни, прогрессии и иже с ним - в уме считать будем?
Нужен готовый компилятор выражений, всё остальное - пионерия.Там есть ссылка на примеры реализации, в том числе и на C#.
И че, синусы, косинусы, корни и прочие математические лохмотья этот «пример» осилит? :)
...
Рейтинг: 0 / 0
18.07.2012, 14:04
    #37883719
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
МСУskyANAпропущено...
Там есть ссылка на примеры реализации, в том числе и на C#.
И че, синусы, косинусы, корни и прочие математические лохмотья этот «пример» осилит? :)"Пример" нет. Дописать - тривиальная задача :)
...
Рейтинг: 0 / 0
18.07.2012, 14:11
    #37883730
netivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
skyANA,

а может можно "дернуть" калькулятор из вин 7? он все умеет)
...
Рейтинг: 0 / 0
18.07.2012, 14:30
    #37883786
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
netivanа может можно "дернуть" калькулятор из вин 7? он все умеет)Дёргайте, какие проблемы :)
...
Рейтинг: 0 / 0
18.07.2012, 14:31
    #37883791
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
skyANAДописать - тривиальная задача :)
Слабо дописать? ) А то вон один тоже говорил, что студентам раз плюнуть написать, но после удара по почкам сразу ретировался куда-то
...
Рейтинг: 0 / 0
18.07.2012, 14:39
    #37883817
Ъыжсло
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
вот такую еще реализацию можно:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Imports IronPython.Hosting.Python
Imports System.Dynamic
Imports Microsoft.Scripting.Hosting

sub main()
        Dim exrp As String = "(15.6 + 25)*34"
        Dim engine As ScriptEngine = CreateEngine()
        MsgBox(engine.Execute(exrp))
end sub



как видно используется проект IronPhyton...
...
Рейтинг: 0 / 0
18.07.2012, 14:44
    #37883834
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
МСУskyANAДописать - тривиальная задача :)
Слабо дописать? ) А то вон один тоже говорил, что студентам раз плюнуть написать, но после удара по почкам сразу ретировался куда-то Уже писал. В институте это была лабораторная работа "калькулятор". На работе периодически допиливаю StringTemplate, изначально он только слишком простые выражения понимает. Так что имею представления не только о польских нотациях, но и о лексерах, парсерах и эвалюаторах.

P.S.: кстати может ТС как раз лабу делает? Тогда в гугл с запросом: "лабораторная работа калькулятор" :)
...
Рейтинг: 0 / 0
18.07.2012, 14:45
    #37883838
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
Ъыжсловот такую еще реализацию можно...Нет, видимо не лабу :)
...
Рейтинг: 0 / 0
18.07.2012, 14:45
    #37883844
Ъыжсло
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
Ъыжсловот такую еще реализацию можно:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Imports IronPython.Hosting.Python
Imports System.Dynamic
Imports Microsoft.Scripting.Hosting

sub main()
        Dim exrp As String = "(15.6 + 25)*34"
        Dim engine As ScriptEngine = CreateEngine()
        MsgBox(engine.Execute(exrp))
end sub



как видно используется проект IronPhyton...

кроме того таким же нехитрым способом можно реализовать и бизнес логику
...
Рейтинг: 0 / 0
18.07.2012, 14:47
    #37883852
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вычислить выражение?
Ъыжсло,

бизнесс логика для калькулятора?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как вычислить выражение? / 25 сообщений из 116, страница 1 из 5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]