Mathexpr: различия между версиями
Перейти к навигации
Перейти к поиску
Alinap95 (обсуждение | вклад) |
Alinap95 (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Mathexpr – подсистема, обрабатывающая введенные пользователем формулы. Функции подсистемы: | Mathexpr – подсистема, обрабатывающая введенные пользователем формулы. Функции подсистемы: | ||
* Парсинг введенного выражения: лексический, синтаксический анализ, представление в виде списка токенов в обратной польской нотации. | * Парсинг введенного выражения: лексический, синтаксический анализ, представление в виде списка токенов в обратной польской нотации. | ||
* Упрощение выражения: вычисление инициализированных токенов, приведение списка к древовидной структуре. | * [[Упрощение выражения]]: вычисление инициализированных токенов, приведение списка к древовидной структуре. | ||
* Вычисление выражения. | * Вычисление выражения. | ||
Версия 13:45, 21 апреля 2019
Mathexpr – подсистема, обрабатывающая введенные пользователем формулы. Функции подсистемы:
- Парсинг введенного выражения: лексический, синтаксический анализ, представление в виде списка токенов в обратной польской нотации.
- Упрощение выражения: вычисление инициализированных токенов, приведение списка к древовидной структуре.
- Вычисление выражения.
Парсинг выражения: заголовок функции
Математическое выражение реализуется классом Mathexpr.
Математическое выражение состоит из 2 частей: заголовка и тела. Заголовок включает в себя имя функции и список аргументов, которые перечисляются в скобках.
(конструкторы) | Создают математическое выражение на основе поданной строки: парсинг заголовка и тела формулы, первичное упрощение функции. |
header | Заголовок математического выражения, реализуемый классом Header – строка до символа =. |
body | Тело математического выражения – строка после символа =. Тело представляет собой указатель на единственный токен - корень дерева, которое отражает синтаксическую структуру выражения. |
operator() | Инициализирует аргументы математического выражения и вычисляет его значение. |
lexBody | Осуществляет лексический разбор входной строки с использованием алгоритма сортировочной станции и возвращает список, в котором выражение представлено в обратной польской нотации. |