Delphi, оцени строку формулы - PullRequest
0 голосов
/ 25 августа 2009

Дублирование

Мне нужна программа на Delphi, которая получает уравнение одной переменной из Edit1, например "F(x)=4*X+2*log(x)+4*power(X,2)"
, и получает переменную значения X из Edit2, а затем показывает результат F (X) в Edit3. Пожалуйста, помогите мне.

Спасибо.

Ответы [ 5 ]

4 голосов
/ 25 августа 2009

Вы также можете проверить JCL , который поставляется с оценщиком выражений в файле JclExprEval.pas . Это бесплатно и с открытым исходным кодом.

4 голосов
/ 25 августа 2009

Возможно, вам нужно взглянуть на этот компонент - TbcParser.

http://www.bestcode.com/html/tbcparser.html

В этот компонент включен исходный код.

1 голос
/ 25 августа 2009

Посмотрите на

http://www.efg2.com/Lab/Library/Delphi/MathFunctions/Parsers.htm

Также, если у вас установлены библиотеки JEDI и / или FastReport, вы можете использовать их анализаторы. Мы используем TParser10 из http://cc.embarcadero.com/item/15974, который является одним из самых быстрых из доступных, если не самый быстрый Это бесплатное и безупречно работает до D2007. Я слышал, что это работает и в D2009. Пока еще не проверено.

0 голосов
/ 25 августа 2009

Если вы хотите написать собственную реализацию и не использовать готовую библиотеку, это займет у вас некоторое время. Просто найдите «парсер формул». Я бы начал с токенизатора, а затем построил дерево разбора из токенов.

0 голосов
/ 25 августа 2009

Это сильно зависит от вашего десятичного разделителя. Используйте StrToFloat или в новых версиях Delphi - TryStrToFloat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...