Страница 1 из 2

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

Добавлено: 05 дек 2004, 16:39
Demm
Помогите кто может!
Нужна реализация на с++ проги для вычисления значения выражения, представленного в обратной польской записи.
Может у кого есть...

Добавлено: 05 дек 2004, 23:46
DeeJayC
Венгерской?

Добавлено: 06 дек 2004, 21:13
Demm
Почему венгерской, она вроде польская!

Добавлено: 06 дек 2004, 22:52
Romeo
Польская

Добавлено: 07 дек 2004, 11:31
DeeJayC
Взято из 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.

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

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

См., например, http://algolist.manual.ru/maths/misc/revpn.php

Добавлено: 07 дек 2004, 12:50
DeeJayC
Ах, вот оно что. Но я никогда не слышал об этом, как о польской записи.

Добавлено: 07 дек 2004, 13:18
Eugie
Век живи... :)

Добавлено: 07 дек 2004, 14:29
Demm
Не спорю, задача не сложная, но я плохо знаю синтаксис С++.
Нам в инсте дали 1 семестр С++, раньше Pascal был. Я в принципе знаю как реализовать на паскале (и алгоритм знаю).
Одна проблема - С++ плохо знаю :(

Добавлено: 07 дек 2004, 15:20
Kolinus
Алгоритм вообще говоря он на то и алгоритм чтобы не меняться от языка к языку, а насчет синтаксиса - мот справочник почитаешь ;)