Главная страница
    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-1073987601
_lordtime_
2004-01-13 12:53
2004.03.28
Есть ли возможность узнать время старта Windows?


6-1074410616
SergP
2004-01-18 10:23
2004.03.28
Как прочитать текст странички из окна эксплорера?


3-1077286652
Крутыш
2004-02-20 17:17
2004.03.28
SyBase!!!


14-1077709070
Inkotex
2004-02-25 14:37
2004.03.28
Компонент.


14-1077629077
raymond
2004-02-24 16:24
2004.03.28
Друзья, как мне скопировать копию рабочего стола в буфер?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский