Вычисление и обратный перевод арифметического выражения из Обратной Польской Записи (ОПЗ)
Вычисление выражения по ОПЗ с использованием стека
Рассмотрим алгоритм вычисления арифметического выражения по ОПЗ. Если встретился:
1. Символ, идентификатор, число, то помещаем весь этот набор в стек.
2. Оператор:
2а. Двухместная операция (+, -, *, / и тд) — выталкиваем из стека 2 верхних элемента, вычисляем результат применения к ним операции и этот результат помещаем на вершину стека.
2б. Одноместная операция (!, sin, cos, и тд) — из стека извлекаем верхнее значение, применяем к нему операцию и помещаем в стек.
Замечание: Читать ОПЗ слева направо. После того как весь алгоритм выполнен, в стеке должно остаться число — оно и будет результатом вычисления выражения.
Программа написана на PascalABC 3.0. Работает на Turbo Pascal 7.
Ссылка для скачивания: Программа обратного перевода из ОПЗ арифметического выражения
Вернуться назад