Глобальный объект MathTranslator расширяет вычислительные возможности TechEditor. С его помощью можно проводить алгебраические, тригонометрические, матричные, дифференциальные, интегральные, символьные вычисления, а также работать с единицами измерения.
Объект MathTranslator рекомендуется использовать в приложениях к TechEditor для проведения точечных, "встраиваемых" вычислений. Так как данный объект работает преимущественно со строками текста, его также удобно использовать в качестве конвертера единиц измерения (например, предоставив конечным пользователям Вашего приложения возможность вводить данные в тех единицах измерения, которые им удобны).
Подпрограммы общего назначения
procedure Clear;
Процедура Clear
перезапускает MathTranslator
(удаляет все созданные до этого переменные, функции и т. п.). Рекомендуется перед выполнением обособленного цикла вычислений.
Пример использования:
begin
MathTranslator.Clear;
end;
procedure Add(Expression: string);
Процедура Add
добавляет в объект MathTranslator новое математическое выражение Expression. Выражение может содержать определение переменной или функции, или математическую формулу.
Пример использования:
begin
MathTranslator.Add('a=10'); // Add real variable 'a' with value 10.0
end;
Вычисление выражений
function Calculate(Expression: string): Double;
Функция Calculate
вычисляет выражение Expression и возвращает числовой результат.
Пример использования:
var
X: Double;
begin
MathTranslator.Add('a=10'); MathTranslator.Add('b=20'); X := MathTranslator.Calculate('a+b');
end;
function CalculateStr(Expression: string): string;
Функция CalculateStr
аналогична функции Calculate
, но возвращает результат в виде строки текста. Рекомендуется для вывода числового значения, например, непосредственно в отчет.
Пример использования:
var
Msg: string;
begin Msg := MathTranslator.CalculateStr('10+20-50');
ShowMessage('Result: ' + Msg);
end;
Работа с единицами измерения
При работе с единицами измерения через объект MathTranslator следует придерживаться следующих правил.
- В качестве десятичного разделителя используется точка:
60.2
,-70.90
- Единицы измерения отделяются от числового значения физической величины пробелом, например:
45.5 psi
,120.8 dm
- Единицы измерения указываются латинскими буквами с соответствующими префиксами:
N
,MPa
,mm
,kg
. - Физические величины, входящие в выражение, должны быть совместимы, т. е. иметь одинаковые размерности.
function Convert(Value: string; Units: string): Double;
Функция Convert
преобразует физическую величину Value в новые единицы измерения Units, и возвращает результат в новых единицах измерения.
Пример использования:
var
L: Double;
begin L := MathTranslator.Convert('155 cm', 'm');
ShowMessage('L=' + FloatToStr(L) + ' m'); // L=1.55 m
end;
function ConvertStr(Value: string; Units: string): string;
Функция ConvertStr
аналогична функции Convert
, но возвращает результат в виде строки текста. Рекомендуется для вывода числового значения, например, непосредственно в отчет.
Пример использования:
var
V: string;
begin V := MathTranslator.ConvertStr('0.25 MPa', 'Pa');
ShowMessage('P=' + V + ' Pa');
end;