среда, 5 января 2011 г.

Справка по классам MathParser и CompiledObject

В качестве дополнения к предыдущему посту привожу здесь перевод справки по классам MathParser и CompiledObject

Класс flashandmath.as3.parsers.CompiledObject

Описание: Данный класс является вспомогательным для класса MathParser. Объекты этого класса хранят в себе результаты синтаксического анализа выражения (осуществляемого с помощью метода doCompile объекта класса MathParser) в форме, удобной для дальнейших вычислений. Объекты данного класса содержат три свойства, перечисленных ниже.

Конструктор класса

Конструктор класса вызывается стандартным способом и не принимает никаких аргументов: new CompiledObject();
Вам не придется вызывать конструктор класса напрямую, т.к. экземпляры данного класса, которые можно хоть как-то использовать, возвращаются методом doCompile объектами класса MathParser.

Общедоступных методов у этого класса нет.

Свойства

У объектов класса CompiledObject есть три общедоступных свойства:
instance.PolishArray:Array – данный массив представляет собой математическую формулу анализируемого выражения в Польской нотации.
instance.errorStatus:Number – данное свойство при обнаружении ошибок в анализируемом выражении содержит 1, а при отсутствии ошибок – 0.
instance.errorMes:String – данная строка содержит сообщение для пользователя, говорящее о том, где в пользовательском вводе обнаружена ошибка.

Класс flashandmath.as3.parsers.MathParser

Описание: Объекты класса MathParser (создаваемые уже Вами с помощью конструктора) осуществляют анализ строковых величин, представляющих математические формулы (обычно введенные пользователем), а затем вычисляют значение данных формул при заданных значениях переменных. Анализ выражений состоит в записи введенной формулы в форме, удобной для вычислений (в Польской нотации). Для успешного результата анализа выражений необходимо соблюдать простые синтаксические правила, описанные в конце.

Конструктор класса

Конструктор класса вызывается стандартным способом (с помощью ключевого слова new):
new MathParser(parameter1:Array)
Конструктор принимает один аргумент, являющийся массивом, элементами которого являются строки (представляющие собой имена переменных, входящих в анализируемое выражение). Например:
var procFun:MathParser = new Parser(["x", "y"]);
Объект procFun будет "понимать", что выражение содержит переменные x и y. Объекты класса MathParser также распознают константы e (основание натурального логарифма) и pi (число пи), поэтому не давайте переменным такие имена.
Заметьте, что имена переменных должны быть строковыми величинами:
var procFun:MathParser = new Parser(["x"]);
а не:
var procFun:MathParser = new Parser([x]);
Важно помнить порядок имен переменных в массиве, передаваемом в качестве аргумента конструктора, т.к. методы для расчета значений выражений будут ожидать, что Вы будете передавать значения переменных в том же порядке.

Общедоступные методы

У объектов класса MathParser есть три таких метода:
instance.doCompile(parameter1:String):CompiledObject – этот метод принимает в качестве аргумента строку (обычно это математическая формула, введенная пользователем) и возвращает экземпляр класса CompiledObject. При отсутствии синтаксических ошибок свойства возвращаемого объекта класса CompiledObject, содержат:
- PolishArray – формулу, записанную в Польской нотации;
- errorStatus = 0;
- errorMes = "".
Если же ошибка был найдена, то errorStatus = 1, а свойство errorMes содержит сообщение о месте нахождения ошибки, PolishArray тогда представляет пустой массив.

instance.doEval(parameter1:Array, parameter2:Array):Number – в качестве первого аргумента данный метод принимает свойство PolishArray объекта класса CompiledObject (который мы получили, использовав метод doCompile), а в качестве второго – массив численных значений переменных выражения; и возвращает численное значение выражения (записанного в массив PolishArray) при заданных значениях переменных.

myParser.doDeriv(myCompObj.PolishArray, [val]) – данный метод работает только для выражений с одной переменной. Он возвращает значение производной данного выражения при значении переменной равном значению val.

Общедоступных свойств у объектов данного класса нет.

Допустимый синтаксис

В анализируемых выражениях должен использоваться стандартный синтаксис, например: t^3+2.7*sin(pi*t)+e^(-t+1). В выражениях должны использоваться скобки вокруг аргументов функций, а также знак * для умножения, / – для деления и ^ – для возведения в степень.
Список функций и констант, которые анализатор "понимает":
- тригонометрические функции и обратные тригонометрические функции:
sin(), cos(), tan(), asin(), acos(), atan(). Например: tan(pi*t/3)+acos(t)
- натуральный логарифм – ln(), и основание натурального логарифма e.
Например: e^(2-t)*ln(t^2+1)
- квадратный корень – sqrt(), нахождение модуля – abs()
- выбор максимального значения – max(), выбор минимального значения – min() (оба работают для выбора из 2-х величин)
Например: max(sin(2*t), 0)
- для вычисления ближайшего меньшего целого, ближайшего большего целого и ближайшего целого используйте функции floor(), ceil() и round() соответственно.

Комментариев нет:

Отправить комментарий