Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

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

 
Юкс   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
4-1073549985
lex
2004-01-08 11:19
2004.03.28
Как на время работы программы заблокировать автозапуск CD?


7-1073349080
dolphin1
2004-01-06 03:31
2004.03.28
winsight spy++


9-1062407105
Spayker
2003-09-01 13:05
2004.03.28
Установка GlScene на Delphi7


1-1079016738
dimm22
2004-03-11 17:52
2004.03.28
Редактирование Hex файла. Как, чем, может исходники где есть.


9-1062001143
Ландграф Павел
2003-08-27 20:19
2004.03.28
Посмотрите мою игрушку (2D скролл-аркада на DelphiX c исходникам)