Парсинг математических формул

Компоненты   21 Октябрь 2010  Автор статьи: admin 

Бывает такое, что в своей программе на Delphi требуется работать с математическими формулами или функциями. В данном случае подразумевается то, что у нас имеется переменная f := ’(sin(1)^2*7*b)/(5-b*6+6+a)-pi*b’ и нам необходимо получить результат этой функции в формате extended в зависимости от переменных a и b.

Прекрасно позволяет справиться с этой задачей компонент, имеющий простое банальное название «TParser».

[note] Скачать компонент TParser[/note]

Несмотря на то, что компонент довольно старый (к сожалению новых и более лучших аналогов я не нашел), его вполне просто можно установить и на Delphi 2010.

Использовать этот компонент тоже очень просто и удобно.

Достаточно привести пример его использования:

1
2
3
4
5
6
7
8
parser1.Variable[’a’]:=2.122;
// присваиваем переменной a значение 2.122
parser1.Variable[’b’]:=3.067;
// присваиваем переменной b значение 3.067
Parser1.Expression:=(sin(1)^2*7*b)/(5-b*6+6+a)-pi*b’;
// указываем нашу функцию
showmessage(floattostr(Parser1.Value));
// выводим результат функции

Научиться программировать

  • на Delphi

  • на Java

  • на C++