terça-feira, 2 de agosto de 2011

Calculadoras HP - Método RPN

Bom, faz um tempo que to ensaiando pra falar sobre as HP. Digo "as HP" porque o modo RPN é utilizado na maior parte delas, principalmente nas mais vendidas (financeiras e científicas).

Vou tentar me aprofundar mais na científica 50g (gráfica) que é a que eu uso agora. Mas eu aprendi tudo o que eu sei dela na 48SX (faculdade em 1994 :/ velho é a mãe!) e em seguida tive uma 48GX sobre a qual desenvolvi a maior parte dos programinhas que fiz.

Resolvi vender a 48GX e comprar a 49g+ porque era mais nova... Não foi o melhor negócio que fiz. O teclado não era tão com quanto o das 48 e depois que fui roubado, comprei a 50g.

Pra mim, a maior dificuldade de adaptação à 49g+ e à 50g foi que o layout do teclado mudou bastante (principalmente a posição do Enter e das letras alfabéticas). E depois de sair da universidade, não tinha um uso tão intensivo da calculadora que permitisse me adaptar ao novo teclado.

Tudo bem. Deixemos de firulas. Na verdade elas são as mesmas e acredito ser capaz de dar algumas e boas dicas sobre a 50g. Faço tudo o que fazia nas anteriores, só demoro mais um pouco.

Neste primeiro post sobre a HP, gostaria de falar sobre o modo de operação escolhido pela HP (sim, o modo não é criação dela). Chama-se RPN Reverse Polish Notation ou Notação Polonesa Reversa ou ainda notação pós-fixada.



Bom, nem vou entrar na história disso. Quem quiser saber o porque do nome, aí vai o link (se bem que aqui é mais massa).

Basicamente o operador vem depois dos números.
Ex.: 3+4 fica 3 4 +

Qual a vantagem? Basicamente agiliza processos de cálculo. Pra mim, na utilização da calculadora no dia a dia, facilita na digitação e soma de listas de números.

Como a HP 50g armazena todos os números digitados e aceitos com Enter em sua tela (que a HP denomina de pilha), podemos checar a lista antes de somar. E para somar todos estes números, basta ir apertando o +.

Cálculos mais complexos são divertidos nesse tipo de notação.

Vejamos alguns exemplos:

2*4-2       >       2 [Enter] 4 * 2 -
Note que depois que o primeiro número é adicionado à pilha com o [Enter], os próximos números são aceitos diretamente após as funções.

(1-5*6)/2       >       1 [Enter] 5 [Enter]  6 * - 2 /
Aqui o 1 é colocado na pilha e deixado de lado até que a conta 5*6 seja feita.

Na verdade, a essência é essa que está aí. O resto é tornar-se redundante:

RAIZ((3-5)*8+4*7^9)       >       3 [Enter] 5 - 8 * 7 [Enter] 9 ^ 4 * + [Raiz]
Note que no final, inverti a posição do 4 para evitar utilizar mais um [Enter]. Senão ficaria assim:
3 [Enter] 5 - 8 * 4 [Enter] 7 [Enter] 9 ^ * + [Raiz]

Sejamos práticos. O principal exercício aqui, é ter em mente a sequencia em que se encontram os números para se definir a função a seguir. E a dica é começar de dentro pra fora da equação.

Fica muito mais fácil no começo realizar essas operações e prestar atenção como vai se comportando a pilha (tela).

Resolvendo a raiz positiva do polinômio ax^2+bx+c
x=(-b+raiz(b^2-4ac))/(2a)       >       b [SQ] 4 [Enter] a * c * - [Raiz] b - 2 [Enter] a * /

Mole né? Então, mole mas sobe.

Acho que o principal agora é tentarem um pouco e darem sugestão de como posso tornar mais fácil de entender. Ou coloquem dúvidas. Vai que eu respondo né?

2 comentários:

  1. Sérgio, Como posso fazer cálculos com números que estejam em outros níveis maiores da pilha? Tipo no nível 3 acima, e sem interferir nos números de baixo (níveis 1 e 2)???

    ResponderExcluir
  2. Olá, Gisa
    Então. Pode se utilizar alguns comandos de manipulação da pilha, como o ROT, SWAP, ROLL, OVER, etc
    Vou criar uma nova postagem sobre esse assunto. Valeu por participar :)

    ResponderExcluir

"Be cool" quando for escrever seu comentário. Seja construtivo!