Introdução a programação HP50g

Neste post vemos como criar programas na calculadora HP50g. As informações aqui são também válidas para a calculadora HP48g.

Note que para programar a calculadora é necessário que ela esteja no modo RPN (notação polonesa reversa). Um dos primeiros posts deste curso explica o funcionamento do modo RPN.

Veja a lista de posts do Curso Calculadora HP50g em sequência.

Teorema de Pitágoras

O primeiro programa que criaremos é o teorema de Pitágoras. Vamos determinar o comprimento da hipotenusa de um triângulo retângulo a partir dos comprimentos dos catetos.

Sendo a, b, c a hipotenusa e os dois catetos do triângulo retângulo, sabemos que a2=b2+c2.

Portanto, tendo os dois valores dos catetos no topo da pilha, precisamos elevar cada um ao quadrado, somar eles e em seguida tirar a raiz quadrada para obtermos o valor da hipotenusa.

O passo inicial para criar um programa é colocar os marcadores de programação com as teclas [┌→] [+].

Para elevar o primeiro cateto ao quadrado podemos usar o comando SQ [←┐] [√]. Para elevar o segundo cateto ao quadrado precisamos primeiro trocar os dois elementos do topo da pilha com o comando SWAP (digite SWAP) para então elevar ao quadrado com SQ.

Agora somamos os dois quadrados dos catetos [+] e em seguida tiramos a raiz quadrada da soma [√]. Pressionamos [ENTER] para finalizar a edição do programa e colocá-lo na pilha.

A sequência toda de teclas esta a seguir.

[┌→] [+] [←┐] [√] [ALPHA]SWAP [←┐] [√] + [√] [ENTER]

Na tela vemos o programa escrito na forma a seguir.

« SQ SWAP SQ + √ »

É claro que esta não é a única forma de escrevermos este programa. Poderíamos, por exemplo, utilizar a potenciação ^ [YX] em vez do quadrado SQ ou da raiz √, obtendo o programa a seguir.

« 2 ^ SWAP 2 ^ + 0.5 ^ »

Agora, com o programa na pilha, vamos guardar ele em uma variável chamada “PITAG”.

[‘] [ALPHA]PITAG [ENTER] [STO]

Agora, para executar o programa, basta encontrar ele na lista de variáveis e pressionar seu botão correspondente. Podemos também digitar o nome do programa. Teste o seguinte:

[3] [ENTER] [4] [ENTER] [PITAG]

Paralelo de resistores

O segundo programa que criaremos é o paralelo de resistores. Vamos determinar a resistência equivalente de dois resistores em paralelo

Sendo REQ, R1 e R2 as resistências equivalente e dos dois resistores, sabemos que 1/REQ=1/R1+1/R2.

Tendo os dois valores dos resistores no topo da pilha, precisamos inverter cada um deles, somar os inversos e em seguida inverter a soma para obter a resistência equivalente.

Novamente, colocamos os marcadores de programação com as teclas [┌→] [+].

Invertemos a primeira resistência com o comando INV [1/X]. Para inverter a outra resistência precisamos trocar os dois elementos do topo da pilha com o comando SWAP (digite SWAP) e então inverter com o comando INV.

Somamos os dois inversos [+] e invertemos a soma INV. Pressionamos [ENTER] para finalizar a edição do programa e colocá-lo na pilha.

A sequência toda de teclas esta a seguir.

[┌→] [+] [1/X] [ALPHA]SWAP [1/X] + [1/X] [ENTER]

Na tela vemos o programa escrito na forma a seguir.

« INV SWAP INV + INV »

Novamente, claro que esta não é a única forma de escrevermos este programa. Pensando na equação REQ=R1∙R2/(R1+R2). Poderíamos, por exemplo, usar o comando DUP2 para copiar os valores das resistências, somar elas (R1+R2), dividir R2 por (R1+R2) e multiplicar R1 por R2/(R1+R2), obtendo o programa a seguir.

« DUP2 + / * »

Agora, com o programa na pilha, vamos guardar ele em uma variável chamada “PARAL”.

[‘] [ALPHA]PARAL [ENTER] [STO]

Agora, para executar o programa, basta encontrar ele na lista de variáveis e pressionar seu botão correspondente. Podemos também digitar o nome do programa. Teste o seguinte:

[1] [ENTER] [2] [ENTER] [PARAL]

Método para criar o programa

Escrever programas em RPN exige do programador uma visão bastante precisa do que está acontecendo com a pilha. É extremamente improvável inventar um programa enquanto digita e ele funcionar corretamente. Por isso um método para desenvolver os programas que simplifique a tarefa é importante. Vejamos a minha sugestão de como criar programas.

Como método para escrever os programas, ou melhor, para determinar o algoritmo, recomendo utilizar a calculadora para realizar as operações com valores quaisquer e anotar os passos com papel e caneta.

Em primeiro lugar definimos o número de valores de entrada e de saída. No teorema de Pitágoras, por exemplo, temos duas entradas (b e c, dois catetos) e uma saída (a, hipotenusa).

O programa deve ler da pilha apenas os valores de entrada e, após a execução, deixar na pilha apenas os valores de saída.

Conhecendo o número de entradas e saídas, limpamos a pilha e inserimos nela as entradas, com valores quaisquer.

Então executamos cada passo do cálculo na calculadora, enquanto anotamos esses passos.

Ao fim devem restar na pilha apenas os valores de saída do programa.

Agora que tem em mãos os passos, basta criar o programa na calculadora de acordo com os exemplos anteriores e guardar o programa em alguma variável.

Note que podemos inserir quebras de linha sempre que acharmos necessário com o comando [┌→] [.].

Exercícios

  • Calcule a área do círculo a partir do raio A=πR2
  • Calcule o perímetro do círculo a partir do raio C=2πR
  • Calcule o divisor de tensão entre dois resistores V2=VT∙R2/(R1+R2)
  • Calcule o divisor de corrente entre dois resistores I2=IT∙R1/(R1+R2)
  • Escreva outros programas simples que sejam úteis para você!

Comando úteis para estes exercícios:

  • DUP (copia o topo da pilha)
  • DUP2 (copia os dois valores no topo da pilha)
  • SWAP (troca os dois valores no topo da pilha)
  • DROP (descarta o topo da pilha)

Compartilhe e deixe sua sugestão!

Gostou do post? Foi útil? Clique abaixo e compartilhe com seus amigos!

Veja a lista de posts do Curso Calculadora HP50g.

Autor: Djones Boni

Engenheiro Eletricista e Eletrônico. Professor de Engenharia Eletrônica na UTFPR Toledo. Interesses: Sistemas eletrônicos embarcados e de tempo real.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *