Arquivo de junho 15, 2009

Ovo Stora!

Publicado: junho 15, 2009 em Smartphone

Para os descontentes com a Ovi Store, da Nokia, temos este novo blog (com um nome pra lá de engraçado!) Ovo Stora. São dezenas de programas, nenhum cracked, temas, etc. Algo muito bem coletado pela internet.

Ao responsável pelo blog, parabéns pelo seu trabalho! São trabalhos como o seu que merecem ser divulgados! Se puder citar seu nome, seria ótimo! Está adicionado ao blogroll!

Notação Polonesa Reversa – RPN

Publicado: junho 15, 2009 em Engenharia, HP 50g
Tags:,

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!