Mathexpr: различия между версиями
Перейти к навигации
Перейти к поиску
Alinap95 (обсуждение | вклад) |
Alinap95 (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
== | ==Парсинг выражения: заголовок функции== | ||
Математическое выражение реализуется классом Mathexpr. | |||
//////////////////картиночка///////////////////// | |||
Математическое выражение состоит из 2 частей: заголовка и тела (рисунок 1). Заголовок включает в себя имя функции и список аргументов, которые перечисляются в скобках. | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Члены класса Mathexpr | |||
|(конструкторы) | |||
|Создают математическое выражение на основе поданной строки: парсинг заголовка и тела формулы, первичное упрощение функции. | |||
|- | |||
|header | |||
|Заголовок математического выражения – строка до символа = | |||
|- | |- | ||
|body | |||
|Тело математического выражения – строка после символа =. Тело представляет собой указатель на единственный токен - корень дерева, которое отражает синтаксическую структуру выражения. | |||
|- | |- | ||
| | |operator() | ||
| | |Инициализирует аргументы математического выражения и вычисляет его значение. | ||
|- | |- | ||
| | |lexBody | ||
| | |Осуществляет лексический разбор входной строки с использованием алгоритма сортировочной станции и возвращает список, в котором выражение представлено в обратной польской нотации. | ||
|} | |} |
Версия 10:01, 21 апреля 2019
Mathexpr – подсистема, обрабатывающая введенные пользователем формулы. Функции подсистемы:
- Парсинг введенного выражения: лексический, синтаксический анализ, представление в виде списка токенов в обратной польской нотации.
- Упрощение выражения: вычисление инициализированных токенов, приведение списка к древовидной структуре.
- Вычисление выражения.
Парсинг выражения: заголовок функции
Математическое выражение реализуется классом Mathexpr.
//////////////////картиночка/////////////////////
Математическое выражение состоит из 2 частей: заголовка и тела (рисунок 1). Заголовок включает в себя имя функции и список аргументов, которые перечисляются в скобках.
(конструкторы) | Создают математическое выражение на основе поданной строки: парсинг заголовка и тела формулы, первичное упрощение функции. |
header | Заголовок математического выражения – строка до символа = |
body | Тело математического выражения – строка после символа =. Тело представляет собой указатель на единственный токен - корень дерева, которое отражает синтаксическую структуру выражения. |
operator() | Инициализирует аргументы математического выражения и вычисляет его значение. |
lexBody | Осуществляет лексический разбор входной строки с использованием алгоритма сортировочной станции и возвращает список, в котором выражение представлено в обратной польской нотации. |