Você está na página 1de 9

Programao na HP-12C Gisele M. V.

Menochi
A. Geloneze Neto

1

PARTE III
Programao na HP-12C

No incio voc poder achar que o tipo de raciocnio necessrio para programar com a
HP12C novo e difcil. Contudo, essa uma boa oportunidade para se desenvolver uma
das maiores qualidades das pessoas bem sucedidas: ser perseverante!.
Quando encontrar um problema que no sabe como comear a resolver, no desista e
nem culpe os geniais inventores da HP por seu insucesso... . Seja perspicaz, dialogue com o
problema, fique remoendo-o em sua cabea por um ou dois dias, sonhe com o problema,
leve-o para almoar, convide-o para ir ao cinema, certifique-se de que compreendeu toda a
terminologia usada no problema e, o mais importante, brinque com algumas idias sem
esperar pela soluo definitiva.
As pessoas no contam que resultados matemticos no surgem completos e prontos
das cabeas de gnios matemticos. Trabalho, pacincia, chutes, erros e, principalmente,
muita perseverana, fazem parte do dia a dia de qualquer pessoa empenhada em resolver
problemas.
medida que voc avanar nessas notas, encontrar muitos termos e idias novas.
Leia sempre com papel e lpis mo, pois, em muitos momentos, somente com a HP-12C
em mos no ser suficiente para voc compreender alguma terminologia ou mtodo novo
introduzido.

Introduo

Muitas vezes, ao resolvermos um problema, observamos que ele apresenta um certo padro.
Por exemplo, a seqncia de nmeros 1, 5, 9, 13, 17, 21, 25, 29, 33 apresenta o seguinte
padro: a partir do valor inicial 1, cada termo seguinte obtido somando-se 4 ao termo
anterior. Nesse exemplo reconhecemos um padro e fizemos uma descrio dele utilizando
noes bsicas de contagem.
Como voc sabe, a tarefa principal para resolver um problema utilizando a calculadora,
ou um computador, consiste em desenvolver um procedimento para produzir a soluo do
problema, ou seja, um algoritmo.
Um algoritmo a descrio de um padro de comportamento, que pode ser expresso
por um conjunto bem definido e finito de aes, que so consideradas primitivas e que
podem ser executadas.
Em nossa vida diria, encontramos algoritmos a todo instante: receitas de cozinha,
partituras musicais, instrues para o uso de aparelhos eletrnicos, etc.
Algoritmos constituem o cerne da programao e da cincia da computao.
Programar , basicamente, construir algoritmos.
O programador precisa dizer para o computador como resolver o problema passo a
passo. Na maioria das vezes, os algoritmos so descritos de uma maneira intermediria
entre uma descrio puramente verbal e uma linguagem de programao, que de fato daria
as condies de realizao do algoritmo passo a passo.




Programao na HP-12C Gisele M. V. Menochi
A. Geloneze Neto

2

A calculadora HP-12C

A calculadora uma mquina capaz de seguir uma espcie de algoritmo, chamado de
programa. Ela possui uma memria capaz de armazenar dados, uma unidade aritmtica
capaz de efetuar mudanas nos dados armazenados na memria, e capaz de comunicar-se
com o mundo exterior por meio de operaes de entrada e sada.
Infelizmente, a calculadora s capaz de seguir programas que estejam escritos em
linguagem de mquina, que geralmente bastante obscura e hermtica. O nosso papel o
de elaborar solues para os problemas (quando possvel), redigir um texto que contenha
instrues (comandos em linguagem de mquina) que devem ser executadas em uma ordem
especfica, de tal forma que esse programa possa ser implementado facilmente e a execuo
produza os resultados esperados.

O sistema de pilhas da HP-12C

O sistema operacional da HP-12C baseado no sistema de pilha, tambm designado por
Notao Polonesa Reversa (RPN).
A armazenagem em pilha ou, simplesmente, pilha, uma estrutura de armazenagem
que funciona de maneira anloga a um conjunto de pratos empilhados. Todos os locais de
armazenagem esto inicialmente vazios. Um dado colocado na base da pilha por meio de
uma instruo empurre que empurra qualquer item armazenado anteriormente para cima
na pilha. Apenas o item da base est acessvel em qualquer instante, e pode ser obtido e
retirado da pilha por meio de uma instruo puxe.
A calculadora armazena os dados em quatro registradores X, Y, Z, W. Assim, por
exemplo, quando digitamos um numeral, ele aparecer no visor e armazenado em X.
Acima do X temos a memria Y, acima da Y temos Z e acima da Z temos a T.
Se digitarmos um numeral ele ir para a memria X (visor). Se pressionarmos a tecla
ENTER, o contedo de X subir para Y, permanecendo uma cpia em X. Se digitarmos um
segundo numeral ele ir para X, substituindo a cpia do visor.
De modo anlogo o que estava em Y sobe para Z e o numeral que estava em Z sobe
para T. Estando um numeral em X, e outro em Y, ao acionarmos uma operao, por
exemplo, a operao de adio, o numeral em X adicionado ao nmero em Y, resultando
em um numeral que estar armazenado em X. O contedo de Z desce para Y e o de T desce
para Z.

As fases de elaborao de um programa

Para se trabalhar com programas preciso conceb-los e execut-los.

A concepo e criao de um programa compreendem as seguintes etapas:
1. reconhecimento das variveis;
2. elaborao e redao do programa;
3. introduo do programa na calculadora;

A execuo de um programa envolve os seguintes passos:
1. introduo do conjunto de variveis relativo ao problema nos registradores;
2. o acionamento da tecla <R/S>, aps a introduo do conjunto de dados relativo ao
problema, ativando o programa e apresentando os resultados.

Programao na HP-12C Gisele M. V. Menochi
A. Geloneze Neto

3


Vejamos alguns exemplos de como isso pode ser realizado.

EXEMPLO 1. Suponhamos que o nosso objetivo seja elaborar um programa que
determine o rendimento de uma unidade monetria, R
C
. Por exemplo, o rendimento de R$
1,00. Temos:

R
C
= (1 + i)
n
1

onde i representa a taxa de juros por perodo da capitalizao em sua forma porcentual e n
o nmero de perodos da capitalizao.

Soluo.

Em primeiro lugar precisamos reconhecer quais so as variveis. Para determinarmos o
valor do rendimento necessitamos dos valores da taxa de juros por perodo e o nmero de
perodos; diferentes valores para a taxa e o nmero de perodos resultam em distintos
valores dos rendimentos.
Logo, as nossas variveis so a taxa de juros, i, e o nmero de perodos, n. Uma soluo
seria automaticamente operacionalizada pela calculadora se fosse enviada uma mensagem
estabelecendo qual o valor de i e n.
Portanto, para cada conjunto de dados, ou seja, para cada valor atribudo taxa e ao
perodo, obteremos um correspondente rendimento, desde que a calculadora possa buscar
esses valores quando estiver processando a seqncia de operaes.
Sendo assim, definimos os registradores de armazenamento, onde guardaremos os
valores numricos que as variveis podem assumir para resolver o problema
considerado.
Costuma-se escolher, entre os registradores de armazenamento, as posies de R
0
a R
6
.
No se costuma colocar os valores que as variveis podem assumir nos demais
registradores (R
7
a R
9
), pois, em programas com muitas instrues, esses registradores
podero ser utilizados para expanso da memria de programao.
Em geral os valores que as variveis de natureza financeira podem assumir so
colocados nos endereos financeiros: <n>, <i>, <PV>, <FV> e <PMT>.
No exemplo considerado acima, vamos posicionar nossas variveis i e n nos
registradores financeiros:

i em <i> e n em <n>.

Para informar a calculadora sobre os endereos que armazenam dados, utilizamos a
tecla RCL e armazenamos i em <i> e armazenamos n em <n>.
Como a taxa se encontra na forma percentual temos:

R
C
= 1
100
1
(
,
\
,
(
j
+
n
i



A calculadora pode somente executar uma tarefa predeterminada. Ela no pode julgar,
tomar decises, ou modificar suas instrues. Portanto, seguindo os preceitos bsicos da
Programao na HP-12C Gisele M. V. Menochi
A. Geloneze Neto

4
matemtica elementar, e os preceitos bsicos do sistema operacional da HP-12 C, teramos
o seguinte procedimento a ser implementado e executado:
1. resolver os parnteses;
2. elevar o valor obtido em (1) ao expoente n;
3. subtrair 1 do resultado obtido em (2).

Em linguagem de mquina obteramos:

1 <ENTER> <RCL><i> <ENTER><100><><+> <ENTER><RCL><n> <y
x
> 1 <>

A redao que se pode elaborar para a resoluo de um problema no nica. Ela pode
se tornar bastante concisa devido ao conhecimento matemtico e o grau de habilidade do
programador em relao ao sistema operacional da calculadora. Costuma-se definir a
melhor redao como aquela que possui o menor nmero de instrues.


EXEMPLO 2. Suponhamos que o nosso objetivo seja elaborar um programa que
determine o Fator de Acumulao de Capital FAC das sries de pagamentos iguais:

FAC = [(1 + i)
n
1] i

Onde i representa a taxa de juros por perodo da capitalizao em sua forma porcentual e n
o nmero de perodos de prestaes.

Soluo.

Em primeiro lugar precisamos reconhecer quais so as variveis. Para determinarmos o
valor do FAC necessitamos dos valores da taxa de juros por perodo e o nmero de
perodos; diferentes valores para a taxa e o nmero de perodos resultam em distintos
valores do FAC.
Logo, as nossas variveis so a taxa de juros, i, e o nmero de perodos, n. Vamos
posicionar as variveis i e n nos registradores financeiros:

i em <i> e n em <n>.
Como a taxa se encontra na forma percentual temos:

FAC = i
i i i
n n

]
]
]
]
,
,

,
(
,
\
,
(
j
+ (
,
\
,
(
j

]
]
]
]
,
,

,
(
,
\
,
(
j
+ 1
100
1 100
100
1
100
1 .

Seguindo os preceitos bsicos da matemtica elementar, e os preceitos bsicos do
sistema operacional da HP-12 C, teramos o seguinte procedimento a ser implementado e
executado:
1. resolver os parnteses;
2. resolver os colchetes;
3. multiplicar o valor dos colchetes por cem;
4. dividir o resultado obtido em (3) pela taxa.

Em linguagem de mquina obtemos:

Programao na HP-12C Gisele M. V. Menochi
A. Geloneze Neto

5
1 <ENTER><RCL><i><ENTER><100><><+><ENTER><RCL>< n>
<y
x
>1 <><ENTER><RCL><i><><ENTER>100<x>.

Outra redao possvel seria a seguinte:

100<ENTER>1<ENTER><RCL><i><%><+><ENTER><RCL><n><y
x
>
<ENTER>1<><x><ENTER><RCL><i><>;


Introduo do programa na calculadora

A calculadora funciona de dois modos:

1. O modo EXECUO, em ingls RUN, onde a calculadora efetua normalmente as
operaes e processa o programa.
2. O modo PROGRAMAO, em ingls PROGRAM, onde a calculadora armazena
as operaes introduzidas.

O modo PROGRAMAO aquele em que a calculadora dever se encontrar para que
seja introduzido um programa. Passa-se de um modo para outro, pressionando-se as teclas

<F><P/R>.

Quando a calculadora se encontra no modo PROGRAMAO, surge no visor a
seguinte mensagem:

00 PRGM,

indicando que a calculadora se encontra no modo programao.

Para introduzir um programa na calculadora devemos seguir os seguintes passos:
1. Pressione as teclas <f><P/R> para acionar a calculadora no modo
PROGRAMAO;
2. Pressione as teclas <f><PRGM> para apagar os programas que se encontram na
calculadora.
3. Pressione as teclas referentes ao algoritmo.
4. Pressione as teclas <f><P/R> para a calculadora sair do modo PROGRAMAO e
retornar ao modo EXECUO.

Em relao ao segundo passo, um alerta deve ser dado. Se houver interesse em
preservar programas j introduzidos necessrio que se efetue operaes que explicaremos
em outra oportunidade (programas mltiplos).

Testando programas

A nossa sociedade se torna cada vez mais dependente do uso de computadores e, por esse
motivo, muito importante que os programas sejam confiveis, ou seja, no apresentem
erros.
A verificao de um programa tenta garantir que o programa esteja correto e pode ser
abordada por meio de testes ou por meio da demonstrao de correo.
Programao na HP-12C Gisele M. V. Menochi
A. Geloneze Neto

6
Os testes de programa tentam mostrar que valores particulares de dados de entrada
geram respostas aceitveis. Os testes de programa formam uma parte importante de
qualquer esforo de desenvolvimento de um programa, mas um fator bem conhecido, at
parte de folclore, que os testes podem provar a existncia de erros, nunca sua ausncia.
De forma a complementar os testes, cientistas da computao desenvolveram uma
abordagem matemtica para demonstrar que um programa est correto. A demonstrao
de correo usa as tcnicas de um sistema de lgica formal e se encontra alm dos nossos
recursos nessas notas.
Portanto, preste ateno nos programas que formula e troque idias com colegas e
pessoas mais experientes no uso da calculadora. necessrio testar, mas isso no
suficiente.

Para testar um programa siga os passos:
1. introduza o programa na calculadora;
2. introduza o conjunto de dados para proceder ao teste nos registradores de
armazenamento;
3. pressione <R/S> que comanda a execuo do programa (RUN = PROCESSE) e
tambm a interrupo (STOP = PARE).


Vamos testar o programa do exemplo 1.
Primeiramente introduzimos o programa:

<f><P/R><f><PRGM>1<ENTER><RCL><i><ENTER><100><><+><ENTER>
<RCL>< n> <y
x
> 1 <><ENTER><RCL>< f><P/R>.

Suponhamos i = 2 % e n = 3. Ento, introduzimos na calculadora:

<f><REG> 2 <i> 3 <n>.

Agora, para acionar o programa pressionamos

<R/S>.

Voc encontrar no visor

0,06121



Vamos testar o programa do exemplo 2.
Primeiramente introduzimos o programa:

<f><P/R><f><PRGM>1<ENTER><RCL><i><ENTER><100><><+><ENTER>
<RCL>< n> <y
x
> 1 <><ENTER><RCL><i><><ENTER>100<x>< f><P/R>.

Suponhamos i = 4 % e n = 5. Ento, introduzimos na calculadora:

<f><REG> 4 <i> 5 <n>.

Programao na HP-12C Gisele M. V. Menochi
A. Geloneze Neto

7
Agora, para acionar o programa pressionamos


<R/S>.

Voc encontrar no visor:

5,4163.



Otimizando os programas

A memria de programao de uma calculadora o nmero mximo de linhas de programa
que a calculadora comporta.
A memria da calculadora HP 12C se limita ao nmero de 99 linhas. Sendo assim,
s podemos rodar programas com, no mximo, 99 linhas.
Como dissemos anteriormente, a melhor redao aquela que apresenta o menor
nmero de instrues.
Portanto, uma questo se coloca: Como economizar instrues?
Resposta:
1. Tendo conhecimento matemtico e grau de habilidade do programador em relao
ao sistema operacional da calculadora;
2. sabendo que cada dgito, vrgula ou tecla de funo se constitui em uma instruo
que ocupa uma linha do programa na memria de programao da calculadora;
3. sabendo que a tecla ENTER pode ser suprimida em algumas situaes, ocorrendo
assim uma economia de espao na memria de programao. Essa tecla informa a
calculadora que a introduo de algarismos de um numeral foi encerrada; logo, a
calculadora desloca o contedo de sua pilha operacional para cima. Portanto,
quando um numeral introduzido em um registrador de armazenamento, se houver
necessidade de que esse nmero retorne ao visor no necessrio utilizar a tecla
ENTER, pois o nmero que se encontrava anteriormente no visor ser deslocado
para cima (para Y, Z ou W). Por exemplo, suponhamos que queiramos armazenar o
numeral 30 no registrador R
1
. Ento, ligamos a mquina, limpamos o visor e
introduzimos 30 em R
1
: <ON><CLX>30<STO>1<CLX>. Agora, queremos dividir
esse nmero por cinco. Logo, retornamos o nmero 30 no visor, aps pressionamos
a tecla referente ao nmero 5 (sem a necessidade da tecla ENTER), e pressionamos
a tecla relativa operao de diviso: <RCL> 1 5 <>.
4. considere agora a expresso: (200 + 5)
x
. Se redigirmos o programa, armazenando x
em R
1
:
200 5 <ENTER> <+><RCL><R
1
><y
x
>
ento a calculadora interpretar 2005. Logo, a redao correta nessa situao
200 <ENTER>5 <+><RCL><R
1
><y
x
>.


EXEMPLO 3. No exemplo 1 teramos a seguinte redao:

1 <RCL><i> 100><><+> <RCL><n> <y
x
> 1 <>

no lugar de
Programao na HP-12C Gisele M. V. Menochi
A. Geloneze Neto

8

1 <ENTER> <RCL><i> <ENTER><100><><+> <ENTER>
<RCL><n> <y
x
> 1 <>



EXEMPLO 4. No Exemplo 2 teramos a seguinte redao:

1<RCL><i><100><><+><RCL>< n> <y
x
> 1 <><RCL><i><>100<x>

no lugar de

1 <ENTER><RCL><i><ENTER><100><><+><ENTER><RCL>< n> <y
x
>
1 <><ENTER><RCL><i><><ENTER>100<x>.

EXEMPLO 5. No Exemplo 2 teramos a seguinte redao:

100<ENTER>1<RCL><i><%><+><RCL><n><y
x
> 1<-><x><RCL><i><>;

no lugar de

100<ENTER>1<ENTER><RCL><i><%><+><ENTER><RCL><n><y
x
><ENTER>

1<><x><ENTER><RCL><i><>;


EXEMPLO 6. Suponhamos que o nosso objetivo elaborar um programa que calcule a
taxa equivalente a outra dada, no regime de capitalizao composta:

i
a
= 100 x [(1 + i
b
%)
a/b
1]

onde i
a
= a taxa procurada em sua forma percentual ;
i
b
= a taxa dada em sua forma percentual ;
a = o nmero de dias da unidade de capitalizao da taxa procurada;
b = o nmero de dias da unidade de capitalizao da taxa dada.

Soluo.

Em primeiro lugar precisamos reconhecer quais so as variveis. Para essa frmula temos
as seguintes variveis a, b, i
a
.
Vamos posicionar as variveis nos seguintes registradores:

i
b
em <i> e a em <STO> 1 e b em <STO> 2.

Em linguagem de mquina obteramos o seguinte programa:

<f><P/R><f><PRGM>1<RCL><i><%><+><RCL> 1<RCL>2<><y
x
>
1<>100<x><f><P/R>.

Outras redaes possveis seriam:
Programao na HP-12C Gisele M. V. Menochi
A. Geloneze Neto

9

<f><P/R><f><PRGM>100<ENTER>1<RCL><i><%><+><RCL>1
<RCL>2<><y
x
> 1<><x><f><P/R>;

ou


<f><P/R><PRGM><RCL><i>100<> 1<+><RCL>1<RCL>2<><y
x
>
1<>100<x><f><P/R>;

EXEMPLO 7. Suponhamos que o nosso objetivo elaborar um programa que calcula o
percentual mximo de desconto (d %) que pode ser concedido na venda de mercadoria,
sabendo-se que o preo de venda o preo de custo acrescido de i %, ou seja,

d = {1 [1 (1 + i%)]} x 100

sendo :

d = o percentual de desconto;
i = o percentual de acrscimo.

Soluo.

Em primeiro lugar, precisamos reconhecer quais so as variveis. Nessa situao, temos
apenas a varivel i.
Vamos posicionar a varivel i no registrador financeiro:

i em <i> .

Em linguagem de mquina obteramos o seguinte programa:

<f><P/R><f><PRGM>1<RCL><i><%><+><1/x>1<x<>y><>100<x><f><P/R>.

Observe que x<>y se refere tecla (34).

Você também pode gostar