Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Poyasnitelnaya_zapiska_2.doc
Скачиваний:
14
Добавлен:
16.11.2018
Размер:
770.05 Кб
Скачать

1.3. Выбор методов решения задачи и разработка основных алгоритмов предметной области

Для реализации подсчёта выражений (а так же это понадобится в вычислении интегралов, производных) был выбран алгоритм, который преобразует инфиксную запись числа (например (2+3)*4) в постфиксную (например 2 3 + 4 *) .В результате преобразований выражение получается без скобок, что дает возможность легко считать его аппаратно. Для преобразования в постфиксную запись был выбран «Алгоритм сортировочной станции», т. к. этот алгоритм имеет линейную сложность O(n), и может так же работать с функциями и переменными. ниже приведен пример алгоритма разбора.

Пока не все токены обработаны:

  • Прочитать токен.

  • Если токенчисло, то добавить его в очередь вывода.

  • Если токенфункция, то поместить его в стек.

  • Если токенразделитель аргументов функции (например запятая):

  • Пока токен на вершине стека не открывающая скобка, перекладывать операторы из стека в выходную очередь. Если в стеке не было открывающей скобки, то в выражении пропущен разделитель аргументов функции (запятая), либо пропущена открывающая скобка.

  • Если токеноператор op1, то:

  • Пока присутствует на вершине стека токен оператор op2, и

Либо оператор op1 лево-ассоциативен и его приоритет меньше чем у оператора op2 либо равен,

или оператор op1 право-ассоциативен и его приоритет меньше чем у op2,

переложить op2 из стека в выходную очередь;

  • положить op1 в стек.

  • Если токеноткрывающая скобка, то положить его в стек.

  • Если токензакрывающая скобка:

  • Пока токен на вершине стека не является открывающей скобкой, перекладывать операторы из стека в выходную очередь.

  • Выкинуть открывающую скобку из стека, но не добавлять в очередь вывода.

  • Если токен на вершине стекафункция, добавить ее в выходную очередь.

  • Если стек закончился до того, как был встречен токен открывающая скобка, то в выражении пропущена скобка.

  • Если больше не осталось токенов на входе:

  • Пока есть токены операторы в стеке:

  • Если токен оператор на вершине стекаоткрывающая скобка, то в выражении присутствует незакрытая скобка.

  • Переложить оператор из стека в выходную очередь.

  • Конец.

  • 2. Проектирование программного продукта

2.1. Разработка интерфейса пользователя

Разрабатываемая программа предназначена для пользователей, имеющих сравнительно небольшой навык в пользовании компьютером. Поэтому пользовательский интерфейс решено сделать максимально простым и понятным. Это позволит сократить время расчетов, что важно при решении лабораторных работ и при вычислениях на калькуляторе. Кроме того, именно интерфейс определяет структуру программы, поэтому разработку целесообразно начать с него.

2.1.1. Разработка диаграммы состояний интерфейса

Существует множество типов пользовательского интерфейса: примитивные, меню, со свободной навигацией, прямого манипулирования.

Из этого множества было принято решение использовать интерфейс со свободной навигацией (графический пользовательский интерфейс). Так же его называют WYSIWYG (What You See Is What You Get - что видишь, то и получишь). В отличие от интерфейса-меню, интерфейс со свободной навигацией обеспечивает возможность осуществления любых допустимых в конкретном состоянии операций, доступ к которым возможен через различные интерфейсные компоненты. Например, окна программ, реализующие интерфейс Windows обычно содержат:

– меню различных типов.

– различного вида компоненты ввода данных.

С учетом всего перечисленного выше был проанализирован процесс обработки и техническое задание и разработана диаграмма состояний интерфейса, изображённая на рисунке 2.

Рисунок 2– Диаграмма состояний интерфейса.

1 — Нажатие на кнопку «Закрыть»/Выход в главное меню

2 — Нажатие на кнопку «Справка»

3 — Нажатие на кнопку «Матрица»

4 — Нажатие на кнопку «Назад»/Выход в главное меню

5 — Нажатие на кнопку «Калькулятор»

6 — Нажатие на кнопку «Назад»/Выход в главное меню

5 — Нажатие на кнопку «Калькулятор»

6 — Нажатие на кнопку «Назад»/Выход в главное меню

7— Нажатие на кнопку «Анализ»

8— Нажатие на кнопку «Назад»/Выход в главное меню

9 — Нажатие на кнопку «Производная..»

10 — Нажатие на кнопку «Назад»/Переход на форму «Анализ»

11 — Нажатие на кнопку «Интеграл»

12 — Нажатие на кнопку «Назад»/Переход на форму «Анализ»

13 — Нажатие на кнопку «Выход»/Завершение работы программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]