- •Оглавление
- •1. Теоретическая часть .1 История разработки вопроса разбора математических выражений
- •.2 Обратная польская нотация
- •.3 Вычисления на стеке
- •.4 Преобразование из инфиксной нотации
- •2. Практическая часть .1 Постановке задачи
- •.2 Описание входного языка
- •Программа распознаватель арифметический выражение
- •2.3 Описание выходной информации
- •.4 Алгоритмические аспекты программы
- •2.5 Алгоритм программы
- •2.7 Работа с программой
- •Заключение
- •Литература
- •Приложение
2. Практическая часть .1 Постановке задачи
В рамках данного курсового проекта необходимо разработать программу - распознаватель арифметических выражений. Для эффективной организации процесса разработки и получения удовлетворительного результата мною были определены следующие требования к программе:
1. Программа должна получать входную информацию в виде строки арифметического выражения, представленного на обычном математическом языке.
2. Программа должна уметь различать приоритетность входных арифметических операций.
. Программа должна уметь вычислять сложные выражения, содержащие в себе несколько математических операторов.
. Программ должна вычислять результат введённого математического выражения.
. Программа должна демонстрировать пользователю этапы выполняемых ею математических операций и промежуточные результаты данных вычислений.
. Программа должна выполняться под управление ОС Windows.
.2 Описание входного языка
Программа разработана в соответствии со следующей спецификацией входной информации:
Входная информация - строка символов, являющаяся правильным математическим выражением, содержащая операнды и операторы.
Набор операторов входного языка приведён в следующей таблице:
Таблица 1
Операторы входного языка
№ |
Обозначение в программе |
Математическое обозначение |
Функция |
Правила использования |
1. 1 |
+ |
+ |
Сложение |
Складывает два операнда находящиеся справа и слева от оператора. |
2. 2 |
- |
- |
Вычитание |
Вычитает из операнда находящегося слева из операнда, находящегося справа от оператора. |
3. |
* |
* |
Произведение |
Умножает два операнда находящиеся справа и слева от оператора. |
4. |
/ |
: |
Частное |
Делит операнд, находящейся слева, на операнд, находящейся справа от оператора. |
5. |
^ |
ОснованиеСтепень |
Степень |
Возводит операнд, находящийся слева, в степень по операнду, находящемуся справа от оператора |
Набор символов входного языка, составляющих операнды, представлен в следующей таблице:
Таблица 2
Символы входного языка
№ |
Обозначение в программе |
Математическое обозначение |
Наименование |
1. |
1 |
1 |
Один |
2. |
2 |
2 |
Два |
3. |
3 |
3 |
Три |
4. |
4 |
4 |
Четыре |
5. |
5 |
5 |
Пять |
6. |
6 |
6 |
Шесть |
7. |
7 |
7 |
Семь |
8. |
8 |
8 |
Восемь |
9. |
9 |
9 |
Девять |
10. |
0 |
0 |
Ноль |
