Notação Polonesa Reversa – RPN

Todo o usuário de calculadora HP já ouviu o mantra: ah, use em RPN! Ah, em RPN é mais fácil! Mas, de onde surgiu isso?

Em 1920, o matemático polonês Jan Łukasiewicz inventa a notação polonesa. Ele inventou este método para facilitar a visualização das fórmulas de lógica proposicional.

Esse sistema caracterizava-se pela ausência de parênteses na notação. Embora não tenha feito sucesso na lógica, ele continua sendo utilizado até hoje em algumas linguagens de programação (a linguagem LISP sendo a mais proeminente).

Em meados da década de 50, Burks, Warren e Wright propõem a notação polonesa reversa, e a notação foi reinventada independentemente por F. L. Bauer e E. W. Dijkstra, como uma forma de reduzir o acesso à memória em programas computacionais, bem como fazer a utilização do recurso da pilha. Estes algoritmos foram enriquecidos pelo trabalho do filósofo e cientista computacional Charles Hamblin, na década de 50.

A notação polonesa ganhou destaque na década de 70, por sua adoção nas calculadoras HP. As calculadoras de maior sucesso da empresa, a financeira 12-C e a gráfica 48 são baseadas em notação polonesa reversa. A calculadora 19B, financeira, foi rejeitada pelo mercado por não ter o modo RPN. As calculadoras gráficas atuais, desde a 49 até a 50-G, permitem o uso em algébrico como em RPN.

Utilizando RPN

Para entender o modo RPN, precisamos entender o que é a pilha. Pilha é um modo de entrada e organização de dados. Veja a figura ao lado: O último dado que entra é o primeiro dado que sai (conhecido como LIFO – Last In First Out). Uma conta simples, como um 3+2, seria feita em RPN desta maneira: 3 <ENTER> 2+: ao pressionarmos ENTER, o 3 irá para a pilha, ao pressionarmos o 2 +, ele se somará ao último valor da pilha. Bom, para quê todo este trabalho, podemos pensar ? Porque, aparentemente trabalhoso em contas pequenas, este método será de grande valia ao programarmos a calculadora, bem como em contas grandes. Um exemplo ?[ (5+3)/2]*6. Em RPN, a conta seria feita dessa maneira: 5<ENTER>3+ 2/ 6*. Em um total de 8 botões pressionados. Em modo algébrico, seria: <BOTÃO BRANCO> <-> (para aparecer o parênteses) <BOTÃO BRANCO> <->5+3<SETA DIREITA> (para ir ao segundo parêntese>/2<SETA DIREITA> (para sair fora do parêntese>*6. Um total de 14 botões pressionados para se realizar a mesma conta.

Como aprender a utilizar o modo RPN? Só conheço uma maneira: praticando. Não adiantar ter medo: a prática irá levar a um maior conhecimento e domínio da técnica. Boas eram as antigas 48: pela falta do método algébrico, forçavam o usuário a dominar RPN.

Alguns links interessantes:

http://www.xnumber.com/xnumber/rpn_or_adl.htm – comparação entre os métodos algébrico e RPN (em inglês);

http://www.ime.usp.br/~pf/mac0122-2003/aulas/rpn-calculator.html – aula sobre RPN, com implementação em um programa de C (em português);

http://www.hpmuseum.org/hp35.htm – primeira calculadora da HP em RPN. No momento de seu lançamento, a maioria das calculadoras provia somente as 4 funções básicas.

Post escrito no Word 2007, pela dica da minha querida professora (e amiga) Camila Soares, que acaba de ser vencida pela mobilidade e comprou seu primeiro smartphone, um E71. Parabéns pela aquisição, Camila!

Anúncios

10 comentários sobre “Notação Polonesa Reversa – RPN

  1. Ótimo post. Só precisa mudar o título para Notação Polonesa Reversa, hehehe. Se empolgou com o R de RPN e lascou um Rotação 😉

  2. Oi Mau…
    Legal essa ferramenta do Word, não é?… eu, pelo menos, gostei… 🙂
    Quanto a minha mais recente aquisição, obrigada pelos parabéns… :D… ele chega amanhã… não vejo a hora!!! rsrsrs
    Aliás estarei esperando posts pobre ele, hem… rsrs
    Abração…

  3. Excelente comparação dos métodos!!

    Eu mesmo confesso ser viciado em modo algébrico, mas praticando por curiosidade o modo RPN percebí a precisão maior nas contas e a economia na quantidade de botões para uma mesma operação…

    E viva o RPN \o/\o/\o/\o/

    Abraço!

  4. Olá amigos tenho uma linda 49g gostaria de aprender a fazer formulas onde passa visualizar mais de uma variavel ex:(2*5)/4 vejam gostaria que na formula aparecesse os resultados 10 e 2,5
    A formula que monto fica sempre assim:
    <>
    Observem que ou vou ter a resposta direta 2,5 e não vou visualizar a primeira resposta 10

  5. Mauro,

    Quando vou fazer uma equação complexa de limites com x tendendo a um número qualquer mas sendo negativo (ex: -1), a calculadora não me permite continuar até o fim. Sendo assim não consigo chegar ao resultado certo.

    O que eu faço?

  6. Marcelo, pode colocar um exemplo para eu tentar aqui na minha calculadora?
    Normalmente, isto é causado por algum registrador que está acionado.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s