Задача «Счет по-татарски»
Арифметические выражения по-татарски произносятся не так, как по-русски. Сначала произносятся аргументы, а затем произносится операция. Т.е. А+В по-татарски будет «Аны Вга кушу» или «А В +».
Написать программу вычисления арифметического выражения, написанного на татарском языке.
Входные данные
Во входном файле INPUT.TXT записано арифметическое выражение длиной не более 100 символов, где числа и операции разделены пробелом.
Выходные данные
В выходной файл OUTPUT.TXT выведите значение вычисленного выражения с точностью до сотых долей. При делении если знаменатель равен 0, то выдать сообщение «деление на 0». Гарантируется, что результат и все промежуточные вычисления по модулю не превышают 1015 (ДЕСЯТЬ В ПЯТНАДЦАТОЙ СТЕПЕНИ).
Примеры
INPUT.TXT 1
OUTPUT.TXT 1.00
INPUT.TXT
2 4 + 4.0 /
OUTPUT.TXT 1.50
INPUT.TXT
6 20 4 2 – 2 1 * - / +
OUTPUT.TXT
Деление на 0
Разбор задачи №8 "Счет по-татарски"
Камско-Устьинского муниципального района РТ
Задача, как и №1, на применение стека. Только там записывали в стек количество открывающихся скобок, здесь записываем числа. Запрашиваем строку. Продвигаемся по строке до пробела, если далее цифра, то выделяем из строки число и запоминаем его, как очередной элемент массива. Если же после пробела знак действия, то выполняем его для предпоследнего и последнего элементов массива.
Результат заносим в ПРЕПОСЛЕДНИЙ элемент массива и номер текущего элемента уменьшаем на 1.
Если приходится делить на 0, то выдаём соответствующее сообщение и останавливаем работу программы.
Если деление на ноль не встретилось и строка закончилась, то в массиве останется один элемент, конечный результат выполнения всех действий выражения – его и выводим.
Для общности алгоритма нужно добавить 1 пробел в конце или начале строки.
Выделять числа из строковой переменной можно с помощью процедуры VAL, обработанные части строки можно отбрасывать или заменять пробелы какими-то заведомо не встречающимися в строке символами (буквами на пример).