|
Компьютерный хотите поспорить, что же круче: Intel или AMD? ....или обсудить новый софт? ....милости просим
![]() |
![]() |
|
Опции темы |
![]() |
#1 |
друг - капитан форума
|
![]() Нужна помочь! мне нужно написать прогу что переводит арифметическое выражение в польскую запись (польский запис укр.), а ни я ни мои знакомые об это ничего не знают впрытык... ЧТО ЭТО? Как она из себя выглядит эта запись? Народ помогите а то я зашел в тупик =((
|
![]() |
![]() |
![]() |
#2 |
Чмоки вас всех!
![]() |
![]() Обра́тная по́льская нота́ция (ОПН) (Обратная польская запись, Постфиксная нотация, Бесcкобочная символика Лукашевича, Польская инверсная запись, Полиз) — форма записи математических выражений, в которой операнды расположены перед операторами.
Описание Отличительной особенностью обратной польской нотации является то, что все аргументы (или операнды) расположены перед знаком операциии. В общем виде запись выглядит следующим образом: Запись набора операций состоит из последовательности операндов и знаков операций. Операнды в выражении при письменной записи разделяются пробелами. Выражение читается слева направо. Когда в выражении встречается знак операции, выполняется соответствующая операция над двумя последними встретившимися перед ним операндами в порядке их записи. Результат операции заменяет в выражении последовательность её операндов и её знак, после чего выражение вычисляется дальше по тому же правилу. Результатом вычисления выражения становится результат последней вычисленной операции. Например, рассмотрим вычисление выражения 7 2 3 * - (эквивалентное выражение в инфиксной нотации: 7-2*3). Первый по порядку знак операции — «*», поэтому первой выполняется операция умножения над операндами 2 и 3 (они стоят последними перед знаком). Выражение при этом преобразуется к виду 7 6 - (результат умножения — 6, — заменяет тройку «2 3 *»). Второй знак операции — «-». Выполняется операция вычитания над операндами 7 и 6. Вычисление закончено. Результат последней операции равен 1, это и есть результат вычисления выражения. Очевидное расширение обратной польской записи на унарные, тернарные и операции с любым другим количеством операндов: при использовании знаков таких операций в вычислении выражения операция применяется к соответствующему числу последних встретившихся операндов. Особенности обратной польской записи следующие: Порядок выполнения операций однозначно задаётся порядком следования знаков операций в выражении, поэтому отпадает необходимость использования скобок и введения приоритетов и ассоциативности операций. В отличие от инфиксной записи, невозможно использовать одни и те же знаки для записи унарных и бинарных операций. Так, в инфиксной записи выражение 5 * (-3 + 8) использует знак «минус» как символ унарной операции (изменение знака числа), а выражение (10 - 15) * 3 применяет этот же знак для обозначения бинарной операции (вычитание). Конкретная операция определяется тем, в какой позиции находится знак. Обратная польская запись не позволяет этого: запись 5 3 - 8 + * (условный аналог первого выражения) будет интерпретирована как ошибочная, поскольку невозможно определить, что «минус» после 5 и 3 обозначает не вычитание; в результате будет сделана попытка вычислить сначала 5 - 3, затем 2 + 8, после чего выяснится, что для операции умножения не хватает операндов. Чтобы всё же записать это выражение, придётся либо переформулировать его, либо ввести для операции изменения знака отдельное обозначение, например, «±»: 5 3 ± 8 + *. Так же, как и в инфиксной нотации, в ОПН одно и то же вычисление может быть записано в нескольких разных вариантах. Например, выражение (10 - 15) * 3 в ОПН можно записать как 10 15 - 3 *, а можно — как 3 10 15 - * Из-за отсутствия скобок обратная польская запись короче инфиксной. В случае реализации вычислений в этой нотации в автоматических вычислительных устройствах (калькуляторах) это повышает скорость работы за счёт уменьшения количества нажимаемых клавиш. Подробнее
__________________
Когда власть любви превзойдет любовь к власти, на земле воцарится мир. (с) Джимми Хендрикс ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#3 |
друг - капитан форума
|
![]() Спасибо красавица! Мог бы дотянутса - розцеловал бы! =) @}->-- @}->-- @}->--
|
![]() |
![]() |
![]() |
#4 |
Супер друг - полковник форума
Регистрация: Mar 2005
Сообщения: 2,113
![]() ![]() ![]() ![]() |
![]() Орленка все знает!
Умная блин! |
![]() |
![]() |
![]() |
#5 |
Чмоки вас всех!
![]() |
![]() э.... не буду присваивать чужую славу. в данном случае помог гугл (он на википедию выводит ибо соглашение у них)
__________________
Когда власть любви превзойдет любовь к власти, на земле воцарится мир. (с) Джимми Хендрикс ![]() ![]() ![]() ![]() |
![]() |
![]() |