| |
| | | | |
Константин Колганов дата публикации 28-10-2002 12:44 Компонент MathParser
Компонент MathParser разбирает математические выражения и вычисляет их.
Математическое выражение может состоять из чисел (целых и действительных),
переменных (любая последовательность букв и цифр начинающаяся с буквы),
действий арифметики (плюс, минус, умножить, разделить, возвести в степень ),
функций (любая последовательность букв и цифр начинающаяся с буквы
и заканчивающаяся круглыми скобками) и скобки для задания приоритетов.
Переменные и функции чувствительны к регистру.
-
Свойства
-
Expression - тип String, математическое выражение, которое нужно вычислить.
Например
x^2+sin(exp(x))-b+2
Variables - тип TStrings, представляет набор переменных и их значений,
разделенных знаком =. Например
x=2
b=2
-
Методы
-
Execute - возвращает значение выражения, при данных значениях переменных.
Возвращаемое значение имеет тип Real.
-
Исключения
-
- EUntrueSequence - недопустима последовательность символов, например x(3);
- EUnknownSymbol - недопустимый символ, например @;
- EUndeclaredIdentifier- неизвестный идентификатор;
- EUnknownFunction - неизвестная функция;
-
Допустимые символы:
-
+ - плюс;
- - минус;
* - умножение;
/ - дделение;
^ - возведение в степень;
( ) -скобки;
1..9 - числа;
. или ,- разделитель дробной части;
-
Функции
-
- sin - синус;
- cos-косинус;
- tan-тангенс;
- exp-экспонента;
- ln - логарифм натуральный;
- sqrt - корень;
- arctan - арктангенс;
Скачать исходные коды: MathComp.zip (6К)
[Синтаксический анализ, разбор выражений, парсинг] [Математические функции]
Обсуждение материала [ 18-02-2009 16:08 ] 13 сообщений |
|
| | | | |
| |
Время на сайте: GMT минус 5 часов
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.
©
При использовании любых материалов «Королевства Delphi»
необходимо указывать источник информации.
Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются
собственностью их производителей.