Обратная польская запись

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Demm
Сообщения: 40
Зарегистрирован: 12 ноя 2004, 19:11

Помогите кто может!
Нужна реализация на с++ проги для вычисления значения выражения, представленного в обратной польской записи.
Может у кого есть...
DeeJayC
Сообщения: 497
Зарегистрирован: 17 фев 2004, 11:26
Откуда: Ленинград (который Город на Неве)
Контактная информация:

Венгерской?
"Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!" (c)

viel spass, DeeJayC
Demm
Сообщения: 40
Зарегистрирован: 12 ноя 2004, 19:11

Почему венгерской, она вроде польская!
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Польская
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
DeeJayC
Сообщения: 497
Зарегистрирован: 17 фев 2004, 11:26
Откуда: Ленинград (который Город на Неве)
Контактная информация:

Взято из MSDN:

Hungarian Notation
Charles Simonyi
Microsoft Corporation

Reprinted November 1999

Summary: Charles Simonyi’s explication of the Hungarian notation identifier naming convention. (10 printed pages)

A note from Dr. GUI: Long, long ago in the early days of DOS, Microsoft’s Chief Architect Dr. Charles Simonyi introduced an identifier naming convention that adds a prefix to the identifier name to indicate the functional type of the identifier.

This system became widely used inside Microsoft. It came to be known as “Hungarian notation” because the prefixes make the variable names look a bit as though they’re written in some non-English language and because Simonyi is originally from Hungary.
"Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!" (c)

viel spass, DeeJayC
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Нет, DeeJayC, не в тему. Обратная польская запись (известная также как нотация Лукашевича, или постфиксная) - это способ записи арифметических выражений, при котором для каждого элементарного подвыражения вначале записываются операнды, а затем знак операции. Ее основная особенность/преимущество - позволяет обойтись без скобок. Пара примеров (слева - стандартная (инфиксная) нотация, справа - польская; символ ^ означает поместить аргумент на вершину стека):
x+y ----> x^ y ^ +
(5*x+y)/(z-1) ----> 5^ x ^ * ^ z ^ 1 ^ - /

Demm, попробуй сам реализовать вычислитель. Если на вход тебе передается уже выражение в польской записи, это несложная задача.

См., например, http://algolist.manual.ru/maths/misc/revpn.php
DeeJayC
Сообщения: 497
Зарегистрирован: 17 фев 2004, 11:26
Откуда: Ленинград (который Город на Неве)
Контактная информация:

Ах, вот оно что. Но я никогда не слышал об этом, как о польской записи.
"Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!" (c)

viel spass, DeeJayC
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Век живи... :)
Demm
Сообщения: 40
Зарегистрирован: 12 ноя 2004, 19:11

Не спорю, задача не сложная, но я плохо знаю синтаксис С++.
Нам в инсте дали 1 семестр С++, раньше Pascal был. Я в принципе знаю как реализовать на паскале (и алгоритм знаю).
Одна проблема - С++ плохо знаю :(
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

Алгоритм вообще говоря он на то и алгоритм чтобы не меняться от языка к языку, а насчет синтаксиса - мот справочник почитаешь ;)
В SAD - все в SAD.
Ответить