![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Задача на вычисление выражения записанного в строке [D6, XP]
resuS © (2006-06-20 15:54:00)Нужно вычислить выражение без переменных, и записать ответ. Олимпиадная задачка. Но что-то не пойму, что в ней надо делать?
Вот примерный текст:
"Нап. прог. вычисляющюю значение выражения без переменных, в постфиксной форме (+-*/ целые числа).
Например
1012+7*5+45 выражение просматривается слева направо, если встречается число, то его значение(как целое) заносится в стек, а если встречается знак операции, то из стека извлекаются два последних элемента(это операнды данной опрации), над ними выполняется операция, и результат записывается в стек. В конце в стеке остается только одно число, значение этого выражения.
"
Что такое постфиксная форма? Нужно ли сначала выполнять */ а только потом +- или нет? Что значит "извлекаем два последних элемента(это операнды данной опрации)"?
Что-то странно она так записана...
resuS (2006-06-20 18:00:00) [1]Я оказывается не дочитал. Там еще следующая задача:
3. Для предыщей(тоест ту которая была в заглавии) программы составить модуль для работы с динамическими типами данных.
resuS (2006-06-20 16:16:00) [2]Спасибо Desdechado за полный ответ. Я просто записывал со слов одного человека. Вот и неправильно записал пример. Теперь, когда я узнал, что такое постфиксная запись - все сделаю.
Еще раз спасибо.
Desdechado (2006-06-20 16:00:00) [3]Постфиксная - означает, что сначала операнды, а потом операции с ними. Это еще именуется польской записью. Поэтому твой пример не попадает под это требование (или я его не понял).
Пример может выглядеть так:
10 15 + 18 - 2 * =
В итоге (в привычной инфиксной записи) имеем ((10+15)-18)*2=
Сергей М. (2006-06-20 15:56:00) [4]
> то-то не пойму
На то и "Олимпиадная задачка", чтобы ты "понял".