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

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

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

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

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

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

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

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

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

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

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

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

а может можно "дернуть" калькулятор из вин 7? он все умеет)
...
Рейтинг: 0 / 0
как вычислить выражение?
    #37883786
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanа может можно "дернуть" калькулятор из вин 7? он все умеет)Дёргайте, какие проблемы :)
...
Рейтинг: 0 / 0
как вычислить выражение?
    #37883791
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДописать - тривиальная задача :)
Слабо дописать? ) А то вон один тоже говорил, что студентам раз плюнуть написать, но после удара по почкам сразу ретировался куда-то
...
Рейтинг: 0 / 0
как вычислить выражение?
    #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
как вычислить выражение?
    #37883834
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANAДописать - тривиальная задача :)
Слабо дописать? ) А то вон один тоже говорил, что студентам раз плюнуть написать, но после удара по почкам сразу ретировался куда-то Уже писал. В институте это была лабораторная работа "калькулятор". На работе периодически допиливаю StringTemplate, изначально он только слишком простые выражения понимает. Так что имею представления не только о польских нотациях, но и о лексерах, парсерах и эвалюаторах.

P.S.: кстати может ТС как раз лабу делает? Тогда в гугл с запросом: "лабораторная работа калькулятор" :)
...
Рейтинг: 0 / 0
как вычислить выражение?
    #37883838
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ъыжсловот такую еще реализацию можно...Нет, видимо не лабу :)
...
Рейтинг: 0 / 0
как вычислить выражение?
    #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
как вычислить выражение?
    #37883852
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ъыжсло,

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


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