LINUX.ORG.RU

вычесление функции, заданной в процессе работы программы


0

0

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

anonymous

_вычисление_ можно делать несколькими путями.

1.написать свой парсер.

2.слинковаться с каким-нибудь скриптовым языком и передавать ему выражение для вычисления.

3.Или использовать fork для bc

4.использовать библиотеку, например, JFormula - Math expressions API for Java,

5. Выдрать вычислитель из программы bc

6. скачать из многих мест в интернете. Тут поиск очень полезен.

anonymous
()
Ответ на: комментарий от anonymous

Насчет парсера то понятно что писать надо. Я вот не могу сообразить что дальше с этой строкой делать... :( Есть вроди идея сделать таблицу указателей на функции (типа +,-,*,\,^,sqr)... Тока вот дальше что-то сообразить не могу.

2,3,4 - не учтраивают по некоторым причинам.

5 посматрю обязательно.

6 поиск это хорошо... но для того чтоб что-то найти надо правильно сформулировать вопрос... а вот с этим проблемма... :(

anonymous
()
Ответ на: комментарий от anonymous

Ага! Инструменты flex и bison (или yacc) тебе в руки! Супер-инструменты, и в дальнейшем пригодятся. Про bison можно найти на ЛОРЕ в разделе Документация, а про flex искать придется.
А из раздела анекдотов - нужно было человеку для ПРОГРАММНОГО КОМПЛЕКСА (для кандидатской диссертации) сделать парсер математических функций, а программировал человек на Delphi. И вот что он сделал: на каждое выражение (строка) создает паскалевский модуль, компилирует его в DLL и подключает, после чего вызывает из него функцию (и все это в ран-тайме!). Вот так вот.

Ay49Mihas ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.