Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

Создание интерпретатора   Найти похожие ветки 

 
Юкс   (2004-03-04 10:28) [0]

В текстовом файле находится несколько формул. Например:

сумма = переменная1 * переменная2 + переменная3
Переменная1 = 2 + переменная3
Переменная2 = 5 * переменная1
Переменная3 = Переменная2 / 4


ну и так далее. еще заданы начальные значения. надо проделать несколько шагов, на каждом шаге вычисляя значения. Подскажите, как бы вы это сделали? Я не могу придумать, как делать макроподстановку, как применять нужную арифметическую операцию... Ведь выражения могут быть сложные, и операции могут быть не только +-*/, а еще и всякие синусы...


 
Тимохов ©   (2004-03-04 10:30) [1]

Интересно как в данном случае вообще что-то можно посчитать
3 зависит от 2, 2 от 1, 1 от 3.
На лица цикл...


 
Юкс   (2004-03-04 10:39) [2]

Ну и пусть цикл. На каждом шаге при вычислении берутся значения предыдущего шага.


 
pasha_golub ©   (2004-03-04 10:42) [3]

Ну, ваапще-то, задача нетривиальная. И действительно нужно писать интерпретатор или взять готовый. Например, с www.torry.net

Там их есть, потому как я уже использовал компонент оттуда. Правда, не помню как называется.


 
Тимохов ©   (2004-03-04 10:45) [4]

Т.е. это цикл.

Значения переменных надо хранить в списке пар (НазваниеПеременной, Значение). Бежать в цикле по формулам и счиать.

В чем собственно проблема? Как парсер написать? Если да, то их до фига в сети. Особенно таких простых как ваш пример. Надо искать парсер с переменными.


 
Юкс   (2004-03-04 11:06) [5]

А что такое парсер?


 
wicked ©   (2004-03-04 11:51) [6]

названия парсеров навскидку -
1. lua (http://www.lua.org/, для Це, но где то видел я паскалевский порт),
2. Innerfusion Pascal Script (полнеценный интерпретатор, адреса не знаю)

также, если есть желание, можно поиграться с Pascal lex и yacc - http://www.musikwissenschaft.uni-mainz.de/~ag/tply/tply.html - удовольствие и прилив опыта гарантированы.... :)

по теории - найти алгоритм Дийкстры по переводу нормальной записи выражений в обратную польскую нотацию - http://algolist.manual.ru/syntax/revpn.php - отпадет необходимость разбираться с yacc....


 
Юкс   (2004-03-04 12:53) [7]

Спасибо большое!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.032 c
4-1073750512
tytus
2004-01-10 19:01
2004.03.28
Пуск-Программы .


1-1078393062
Бывающий
2004-03-04 12:37
2004.03.28
Как средствами ShellExecute распечатать документ?


11-1056886901
Ajax
2003-06-29 15:41
2004.03.28
8-ми битные BMP в KOL


6-1074061465
olegking
2004-01-14 09:24
2004.03.28
Как получить имена или ИП всех компов находящихся в сети


14-1078214320
Соловьев
2004-03-02 10:58
2004.03.28
Мир Интербейз 2-е изд.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский