Você está na página 1de 62

CEFET-PR Centro Federal de Educao Tecnolgica do Paran

Departamento de Engenharia Industrial Eltrica nfase Eletrnica.


UFPR Universidade Federal do Paran
CURSO DE PROGRAMAO HP48G/GX
Anderson Juarez Moreira
Luciano da Silva Ribas
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Maiores informaes:
Luciano Ribas
R. Maurcio Nunes Garcia, n280 apt103
Jardim Botnico Curitiba-PR
CEP:80210-150
BRAZIL
Ou e-mail: ribas@nupes.cefetpr.br
Home-page: http://nupes.cefetpr.br/~ribas
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Dedico este trabalho ao meu Pai e a minha Me:
Hamilton Ribas Filho
Matilde Pereira de Silva Ribas
que me deram todo o apoio e incentivo impressindveis ao
sucesso deste curso. No poderia deixar de esquecer de
agrader a pacincia do meu irmo Cristiano e da minha
querida irmzinha Adriane.
Luciano Ribas
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Pai, inclina-nos a pensar sentindo, para que
no guardemos gelo no crebro, e induze-nos a
sentir pensando para que no tenhamos fogo
no corao.
Emmanuel
CURSO DE PROGRAMAO HP48G/GX
Introduo ao Curso
A idia de um curso de programao em HP48 surgiu devido falta de uma literatura especfica para a
calculadora, os manuais at ento encontrados tratavam o assunto de maneira superficial e eram geralmente
publicados em ingls.
Para o usurio extremamente frustrante possuir uma ferramenta poderosa e no saber como us-la. O
curso, nesse sentido, uma alternativa queles que pretendem solucionar os seus problemas de forma adequada.
Inicialmente o curso englobava operao e programao bsica, no entanto, a experincia no foi gratificante,
pois havia degraus muito grandes entre os conhecimentos de cada aluno em relao calculadora. Aps um
estudo sobre o contedo do curso, o mesmo foi separado em dois mdulos: - Operao - Programao.
Estes por sua vez so independentes entre si, pois a estrutura da calculadora permite que isto seja feito.
No h a pretenso de que todos se tornem bons programadores aps terminarem o curso. Mas, deve ficar
claro que os mtodos e ferramentas, fornecidos durante o curso, sero suficientes para que cada um possa aprimorar
suas noes de programao at tornar-se um bom programador.
Distribuio da memria
A HP48 tem dois tipos de memria:
- ROM (Read-only memory - memria somente de leitura): a parte da memria que no pode ser
alterada, pois guarda a programao interna da calculadora (conj. de comandos). A HP48G/GX tem 512kbytes
de ROM contra os 256kbytes da HP48S/SX e os 64kb de um AT286. Isto significa que a HP48 tem mais instrues
internas que a BIOS de um computador!
- RAM (Random-access memory - memria de acesso aleatrio): a parte da memria que podemos
modificar, gravar dados e apagar o seu contedo. Tambm conhecida como memria do usurio, pois nela que
ficam armazenados os programas e demais objetos criados pelo usurio.
escrita de palavras.
- [] + [ ] ativa os caracteres minsculos, e alguns caracteres especiais para o teclado numrico.
- [] + [ ] ativa os caracteres especiais em todo teclado alfanumrico.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Modos de exibio
Ao se realizar uma operao matemtica sobre um determinado nmero, freqentemente deseja-se obt-
lo sob um tipo de notao. A HP48 oferece os seguintes modos de exibio de nmeros:
- [STD] notao padro (todas as 12 casas decimais so mostradas).
- [FIX] notao com n casas decimais.
- [ENG] notao no formato de engenharia com n casas decimais.
- [SCI] notao no formato cientfico com n casas decimais.
Existem duas maneiras para se alterar o modo de exibio:
1. Processo Interativo:
- pressione [ ] [MODES]
- selecione o campo NUMBER FORMAT usando as setas de movimentao do cursor.
- pressione CHOOS para escolher o formato desejado e pressione OK
- se o formato desejado for o FIX, SCI, ou ENG aparecer um campo ao lado indicando o nmero de casas
decimais desejadas.
- finalmente pressione OK para confirmar o modo de exibio do display.
2. Processo Manual:
- pressione [ ] [MODES]
- digite o nmero de casas decimais caso queira utilizar os modos FIX, ENG ou SCI.
- pressione a tecla do menu correspondente ao formato desejado.
Apesar do primeiro processo ser muito mais intuitivo e fcil de ser executado iremos durante o decorrer
do curso utilizar o segundo processo para a maioria dos casos, pois ser neste formato (argumento + funo) que
iremos introduzir a programao. Alm disto, veremos mais adiante que estes menus (FIX, SCI, etc.) so na
verdade comandos, desta forma bom comearmos a tomar contato com eles.
Seguindo a mesma idia das calculadoras cientficas normais existem os modos das funes trigonomtricas:
[DEG], [RAD], [GRAD], que podem ser alteradas por processos semelhantes aos mencionados acima. Existem,
ainda os modos de exibio de vetores: [CYLI], [SPHER], [RE]; de exibio de nmeros binrios: [BIN], [DEC],
[OCT], [HEX] e o sinal de ponto [FM,].
Teclas Especiais:
Dentre as teclas que possuem funes especiais, veremos inicialmente as que merecem maior ateno,
pois sero imprescindveis no decorrer do curso:
[EDIT] - edita um nmero real, complexo ou binrio; ou ainda um programa, uma string, etc. Ou seja, edita o
objeto que estiver na primeira linha do stack (pilha) da calculadora.
[CMD] - apresenta na tela os quatro ltimos valores, programas, strings digitados.
[ARG] - retorna para o stack os argumentos utilizados pela ltima funo executada.
[CLEAR] ou [DEL] - limpa todas as linhas do stack.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
[DROP] ou [] - apaga a primeira linha do stack.
[ ] - entra no modo de entrada de um objeto algbrico.
[] - entra no modo de entrada de uma string.
Reset - auto-test - clear memory - off-clock:
Alm das combinaes normais das teclas existem outras combinaes importantes:
[ON]+[C] - Reseta a calculadora: ocorre um processo semelhante ao do computador quando se d um BOOT:
o stack e a tela grfica (pict) so reinicializados, bibliotecas so recarregadas na memria ou instaladas, o path
{HOME } selecionado, ocorrem processos a nvel de reorganizao de memria e de registradores da CPU.
indicado em casos em que a calculadora travou, e no responde s teclas normais de interrupo.
[ON]+[D] - Executa um programa interno da ROM da HP que verificar o perfeito funcionamento da calculadora,
testando o display (os pixels e a tenso), a sada serial e infra-vermelha, o clock, a RAM, a ROM, os cartes de
memria, etc.
[ON]+[A]+[F] - Apaga a calculadora!! Limpa a RAM (apenas a localizao dos programas na RAM, tornando-
os inacessveis)
[ON]+[SPC] - Desliga a calculadora e o circuito de clock. ( o relgio da calculadora para de funcionar )
Troca da bateria - travamento acidental
Quando for necessria a troca das pilhas da calculadora deve-se observar o seguinte:
- nunca misture pilhas fortes e pilhas fracas, nem de marcas diferentes pois podem ocorrer vazamentos,
danificando a sua calculadora.
- desligue a calculadora antes de trocar as pilhas e no aperte a tecla [ON] durante a troca das pilha, pois a
calculadora tentar se ligar, descarregando um capacitor interno que supre o circuito (refresh) que mantm a
memria RAM de sua calculadora.
- voc tem cerca de trs minutos para trocar as pilhas.
Se a calculadora por algum motivo qualquer travou e voc j tentou pressionar [ON]+[C] e no ocorre mais
nada, retire o apoio de borracha que fica na parte superior esquerda da calculadora e usando um palito de madeira
reset a calculadora, caso isto no funcione no resta outra soluo a no ser retirar as pilhas com a calculadora
ligada e pressionar [ON] (este procedimento, na pior hiptese, apagar todos os programas que estavam na
calculadora), a seguir deve-se coloc-las de volta na calculadora, e ligar a calculadora novamente. Se isto no
funcionou, ento ser preciso apelar para medidas mais drsticas: descarrecar o capacitor interno do circuito de
refresh que mantm a RAM. Para isso necessrio ligar a calculadora com as pilhas invertidas, o circuito de
proteo contra a inverso acidental das pilha se encarregar de descarregar o capacitor, eliminando qualquer
problema de software que tenha travado a calculadora.
Estrutura dos menus:
A calculadora HP48G/GX torna acessvel a maioria de seus comandos atravs de vrios menus. Estes
menus foram organizados de forma a agilizar as operaes bsicas de clculo e de programao, uma vez que
estes comandos foram agrupados de acordo com as suas aplicaes.
A estrutura dos menus da HP48, muito semelhante estrutura dos diretrios de um computador, pois
apresentam a forma de uma rvore. Veremos mais a fundo os diretrios em um tpico parte.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Alm dos menus que contm as funes bsicas de programao e de clculo, existem outros menus que
incorporam funes de edio de equaes [EQUATION], de resoluo de equaes [SOLVE], de plotagem de
grficos [PLOT], de manipulao de objetos algbricos [SYMBOLIC], de controle de alarmes e do clock [TIME],
de funes estatsticas [STAT], de controle e converso de unidades [UNIT], de comunicao de dados [I/O], de
controle sobre as bibliotecas e cartes de expanso [LIBRARY], de resoluo mltiplas equaes e biblioteca de
equaes [EQ LIB], de seleo dos flags internos da HP48 [MODES], de controle da memria e dos diretrios
[MEMORY], de exibio da tabela dos caracteres grficos [CHARS], etc.
Veremos nesta seo apenas uma introduo aos menus elementares e indispensveis ao nosso curso de
programao, sendo os restantes analisados oportunamente durante o decorrer do curso.
Gravando variveis:
Podemos armazenar programas, nmeros, strings e outros objetos. Para isso necessrio um comando
chamado STO (store - armazenar) que utilizado da seguinte maneira:
- Coloque o objeto a ser armazenado na primeira linha do stack.
- Digite entre os delimitadores nome da varivel que armazenar o objeto.
- Pressione a tecla [STO] para gravar o objeto na varivel.
Ou pelo por um mtodo mais direto e rpido: (para uma varivel j existente)
- Coloque o objeto a ser armazenado na primeira linha do stack.
- pressione a tecla [ ] e em seguida a tecla de menu correspondente varivel que guardar o objeto.
recuperando variveis:
Para recuperar um objeto armazenado em uma varivel podemos proceder de duas formas diferentes:
1) simplesmente pressionando [ ] e em seguida a tecla correspondente varivel do menu VAR que
contm o objeto.
2) dentro do modo algbrico digitar o nome da varivel e em seguida pressionando a tecla [RCL] (Recall
- chamar).
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Pilha
- Definio de Pilha
- Os comandos: EDIT, CLEAR, DROP, DUP,SWAP, ROT,ARG, UNDO, CMD
- Usando a Pilha em clculos
- Exerccios de clculos
- Pilha Interativa
- Usando a Pilha Interativa em clculos
- Construindo equaes com a Pilha
(Exerccios, equaes, clculos)
Definio de Pilha ou Stack:
O conceito de pilha simples: imagine uma pilha de pratos, cada prato corresponde a um determinado
nmero, quanto mais pratos colocarmos mais crescer a pilha, porm s podemos tirar da pilha o ltimo prato que
foi colocado. Dessa forma funciona a pilha (ou Stack) da calculadora HP: ao digitarmos um nmero e depois
outro, e mais outro, etc. Estamos na verdade empilhando nmeros, porm s temos acesso direto ao ltimo
nmero colocado, ou seja, a primeira linha do Stack. No Stack podemos empilhar nmeros, strings, programas,
matrizes, enfim, todos os tipos de objetos da calculadora.
Felizmente existem certos comandos que nos permitem acessar outras linhas do Stack. Estes comando so
geralmente desconhecidos pela maioria dos usurios da HP, porm so importantes ferramentas dentro da
programao, pois economizam tempo e tornam os programas mais fceis de entender.
O Stack da HP48 no tem um limite mximo de linhas, porem est sujeito a existncia de memria
disponvel para guardar os dados que ficam no Stack.
Comandos: EDIT, CLEAR, DROP, DUP, SWAP, ROT, ARG, UNDO, CMD
Estes comandos so considerados os mais teis durante a manipulao de objetos na pilha. Temos a
seguir um resumo dobre cada um deles:
[EDIT] edita o objeto que est na primeira linha do Stack.
[CLEAR] limpa todo o Stack (o mesmo que [DEL])
[DROP] apaga a primeira linha do Stack.
[DUP] duplica a primeira linha do Stack.
[SWAP] troca o contedo da primeira linha com o contedo da segunda linha.
[ROT] move o objeto da terceira linha para a primeira linha.
[ARG] devolve ao Stack os argumentos da ltima funo executada.
[UNDO] retorna o Stack anterior ltima operao.
[CMD] mostra na tela um menu mostrando as quatro ltimas entradas via teclado.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Usando a Pilha em Clculos:
Agora iremos desenvolver o Raciocnio do Stack, ou seja, vamos reaprender a lgebra e a programao
de outra forma, no mais limitada a uma nica linha ou expresso, mas agora, ilimitada como as linhas do Stack.
Vamos aprender a montar equaes e a resolver problemas de uma maneira muito mais simples e direta do que a
maneira a qual estamos habituados.
Aps dominar as operaes matemticas e as funes do teclado, temos condies de aprender a manipular
os objetos na pilha, resolvendo problemas e calculando expresses.
Exerccios de Clculos:
Utilizando as funes [DUP] ,[SWAP] e [ROT] encontre as respostas ao lado:
digite os objetos e encontre:
a) 10^22
{ HOME } b) 10^22-32
c) (10^22-32)
4: x apague o stack, redigite e encontre:
3: 32 a) 10*22+22/10
2: 22 b) (10*22+22/10)-x
1: 10 c) ((10*22+22/10)-x) +
((10*22+22/10)-x)/32
Ainda para os mesmos objetos do Stack, sem utilizar a calculadora, mostre a situao final do Stack para
cada seqncia de comandos:
a) SWAP + DUP - + SWAP /
b) ROT SWAP ROT + DUP ROT - / SWAP *
c) SWAP ROT DROP DUP ROT + * /
d) SIN + ROT COS - /
Pilha interativa:
Existe um sistema especial de edio e manipulao dos objetos armazenados no Stack, esta
funo chama-se Pilha Interativa, e est disponvel atravs do menu [ ] [ STACK] .
Para usar a Pilha Interativa proceda da seguinte forma:
1. pressione [ ] [ STACK].
2. use as setas do cursor para selecionar o objeto na linha desejada.
3. pressione [ENTER] ou [CANCEL] para sair da Pilha Interativa
4. para sair sem efetuar as mudanas feitas no Stack pressione [ ] [UNDO]
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
A seguir temos as opes de comando disponveis dentro da Pilha Interativa:
tecla: Descrio:
[ECHO] - Copia o contedo da linha corrente para a posio do
cursor na linha de comando.
[VIEW] - Mostra ou edita o objeto na linha corrente usando o
modo de apresentao mais adequado.
[ ] [VIEW] - Mostra ou edita o objeto especificado pelo nome na
linha corrente usando o formato correto.
[PICK] - Copia o contedo do nvel corrente para o nvel 1.
[ROLL] - Move o contedo da linha corrente para o nvel 1.
[ROLD] - Move o contedo do nvel 1 para a linha corrente.
[ LIST] - Cria um objeto lista contendo todos os objetos desde
o nvel 1 at o nvel corrente.
[DUPN] - Duplica uma poro do stack que vai desde o nvel 1 a
at a linha corrente para a parte superior a linha corrente, deslocando
para cima o que j existia nesta poro do stack.
[DROPN] - Apaga uma poro do stack que vai desde o nvel 1 a
at o nvel corrente.
[ ] - Apaga o objeto no nvel corrente
Objetos
- Definio de Objetos
- Lista dos Objetos
- Criao de Objetos
Definio de Objetos:
Os elementos bsicos de Informao que a calculadora HP48 utiliza se chamam objetos. A calculadora
HP48 pode armazenar e manipular diversos tipos de objetos. Os objetos so estruturas de dados internas da
HP48, por ex: nmero real, complexo, matriz, list, etc.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Lista dos objetos:
Nome do Objeto tipo: Nome do Objeto tipo
nmero real 0 diretrio 15
nmero complexo 1 library 16
string 2 backup objeto 17
matriz real 3 inicio funes 18
matriz complexa 4 inicio comandos 19
listas 5 Objetos de sistema:
nome global 6 sistema binrio 20
nome local 7 extend real 21
programa 8 extend complex 22
objeto algbrico 9 matriz linkada 23
inteiro binrio 10 character 24
objetos grficos 11 objeto CODE 25
targged objeto 12 Library data 26
objeto unidade 13 External objeto 26-31
XLIB name 14
Criao dos objetos:
Muitas das operaes da calculadora HP48 so as mesmas para todos os tipos de objetos; por exemplo:
usa-se o mesmo procedimento para armazenar um nmero real, uma matriz ou um programa. Algumas operaes
se aplicam somente a um tipo particular de objeto - por exemplo, no se pode extrair a raiz quadrada de um
programa.
Agora iremos fazer um breve resumo dos objetos mais importantes da calculadora, sendo que os veremos
em detalhes mais tarde.
- Nmeros Reais: (-9.99999999999x10
499
at 9.99999999999x10
499
)
- Nmeros Complexos: (forma retangular (x,y) e forma polar (r, ) )
- Nomes: so utilizados para identificar as variveis. Para introduzir um nome necessrio pressionar a tecla [
]
- Objetos Algbricos: os objetos algbricos, como os nomes, so delimitados por marcas ( ). Os objetos
algbricos representam expresses matemticas na forma extensa. O aplicativo Equation Writer ajuda a introduzir
e a manipular os objetos algbricos, mostrando-os como se fossem impressos num livro.
- Programas: os programas so seqncias de comandos e outros objetos encerrados pelos delimitadores << e
>>.
- Cadeias de Caracteres ou Strings: so seqncias de caracteres, utilizadas normalmente para representar
textos em um programa. So delimitadas por . Exemplo: isto um exemplo de uma string
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
- Listas: as listas so seqncias de objetos agrupados, delimitados por chaves, por exemplo: { eu sou uma
string 32 << DROP >> }. As listas permitem que se agrupem objetos para que possamos manipul-los como
se fossem um s.
- Objetos Grficos: armazenam os grficos que podem ser obtidos pelo traado de equaes ou pelo desenho
artstico do usurio. Os objetos grficos tambm podem ser armazenados em variveis e manipulados na pilha,
onde aparece da seguinte forma: Graphic n x m (onde n o nmero de colunas e m o nmero de linhas que
compem o objeto grfico)
- Objetos de Unidades: consta de um nmero real combinado com uma unidade ou uma expresso de unidades,
por exemplo: 3_m, 27,2_m*kg/s^2
- Objetos de Diretrios: a calculadora HP48 utiliza objetos para especificar estruturas hierrquicas de diretrios
armazenados. Os objetos de diretrios sero vistos em um tpico parte.
- Objetos Adicionais:
objetos de segurana: permitem armazenar toda a memria da HP
objetos biblioteca: uma biblioteca um diretrio de comandos e operaes que no esto incorporados
na calculadora.
objetos XLIB: so objetos que fazem referncia a uma biblioteca.
objetos EXTERNAL: so endereos que apontam instrues internas.
objetos CODE: so programas em linguagem avanada (de mquina).
Diretrios
- Estrutura em rvore de um diretrio
- Os comandos: STO, RCL, EDIT, PURGE, VIEW
Estrutura em rvore de um diretrio
Os objetos criados pelo usurio devem ser armazenados, e para isso so usadas as variveis. Os comandos
relacionados ao armazenamento e a recuperao de objetos, como j foram vistos, so: STO (armazena o obj. na
varivel), RCL (recupera o contedo da varivel para o stack), [EDIT] (permite a visualizao e a edio do
objeto), PURGE (apaga a varivel indicada), [VIEW] (ativa o modo de edio mais apropriado para o objeto)
Depois de armazenados em variveis, natural que exista uma desorganizao na ordem das variveis, ou
seja, programas de clculos, de grficos, equaes, jogos, aparecem todos misturados no mesmo menu. Para
solucionar este problema utilizamos um menu diferente para cada programa, atravs de diretrios diferentes, ou
seja, um jogo, ou um utilitrio possuem diretrios diferentes.
O diretrio principal da HP48 o { HOME }, no entanto podemos criar outros diretrios no interior
deste, formando uma estrutura conhecida como rvore de um diretrio.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
{ HOME }
{ CALC } {GRAPH} {SOUND} {JOGOS}
[PRG1] [PRG2] [A] [B] [WAV1] [WAV2] [TETRIS] [ANTS]
Memria
- Comandos do menu MEMORY
- Comandos dos sub-menus DIR e ARITH
Comandos do menu MEMORY
As funes do Menu [ MEMORY] servem para manipular objetos armazenados em variveis, atravs
dele podemos copiar, mover, criar e editar variveis.
A estrutura do menu MEMORY a seguinte:
[ MEMORY]
[EDIT] [CHOOSE] [VEHK] [NEW] [COPY] [MOVE] [RCL] [PURG]
[EDIT] - usado para modificar o contedo de uma varivel total ou parcialmente.
[NEW] - utilizado para criar novas variveis ou diretrios. (para criar um novo diretrio o campo object deve
estar vazio)
[COPY] - copia variveis de um diretrio para outro ou com outro nome no mesmo diretrio.
[MOVE] - move variveis de um diretrio para outro.
Os subdiretrios EDIT, NEW, COPY e MOVE possuem as seguintes funes internas:
[EDIT] - edita o objeto presente no campo selecionado
[CANCL] - cancela a operao
[OK] - executa a operao
[RESET] Delete Value - limpa o campo selecionado
Reset All - restaura todos os campos s seus valores default
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Comandos do Menu [ MEMORY]
[MEM] - retorna a memria livre disponvel ao usurio.
[BYTES] - retorna o nmero de bytes que ocupa na memria o objeto colocado no nvel 1 do stack. (retorna ainda
o checksum do objeto)
[NEWOB] - cria outra cpia do objeto na memria.
[DIR]
[PATH] [CRDIR] [PGDIR] [VARS] [TVARS] [ORDER]
[PATH] - retorna o caminho dos diretrios desde {HOME} at o diretrio corrente.
[CRDIR] - cria um diretrio a partir de um nome para o diretrio
[PGDIR] - apaga um diretrio e todo o seu contedo
[VARS] - retorna uma lista contendo o nome de todas as variveis do diretrio
[TVARS] - retorna uma lista contendo o nome de todas as variveis com um determinado tipo de contedo.
[ORDER] - ordena as variveis de acordo com uma lista que contm os nomes das variveis em suas novas
posies.
Comandos do sub-menu ARITH
As funes do sub-menu ARITH podem otimizar em muito um programa, pois reduzem o nmero de
operaes ao se trabalhar com variveis. Abaixo temos um resumo de suas funes:
- STO+ : soma, quando possvel, o objeto do nvel 2 ao o contedo da varivel indicada no nvel 1,
armazenando o resultado na prpria varivel.
- STO- : subtrai, quando possvel, o objeto do nvel 2 ao o contedo da varivel indicada no nvel 1,
armazenando resultado na prpria varivel.
- STO* e STO/ : so anlogas as anteriores, e executam a multiplicao e a diviso.
- INCR : incrementa em 1 o contedo da varivel indicada, retornando o novo valor da varivel para a
pilha.
- DECR : Decrementa em 1 o contedo da varivel indicada, retornando o novo valor da varivel para a
pilha.
- SINV : calcula a recproca (1/x) do contedo da varivel indicada, armazenando na prpria varivel o
novo valor.
- SNEG : inverte o sinal do contedo da varivel indicada.
- SCON : calcula o conjugado do contedo da varivel indicada, caso seja complexa, armazenando na
prpria varivel o novo valor.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Sistema de Unidades
- Menus de Unidades
- Operaes com Unidades
- Converso de Unidades
- Os comandos: UBASE, UFACT, UVAL
A seguir temos um resumos das principais operaes de gerenciamento de sistemas de unidades na
calculadora HP:
[ UNITS] - apresenta vrios diretrios que contm o catlogo das unidades utilizadas em grandezas fsicas
como a massa, a velocidade, a luminosidade, etc. Permite que sejam criados objetos com unidades, e que seja feita
converses entre unidades consistentes.
[ UNITS] - contm comandos para a converso de objetos com unidades.
O menu [ UNITS] :
- Para criar um objeto com unidade, digite o valor e em seguida pressione a tecla correspondente unidade
desejada, o objeto pode tambm ser criado atravs da linha de comando usando a tecla _.
- Podemos incluir prefixos quando estamos criando um objeto com unidade, por exemplo: 1_uA que eqivale a
0.000001_A
- Para utilizar a converso rpida utilize o procedimento:
- coloque no nvel 1 do stack o objeto que se deseja converter
- encontre nos menus de unidades a unidade destino da converso
- e pressione [ ] [ unidade destino]
- Para executar a converso rpida entre sistemas de unidades que no se encontram no menu do catlogo de
unidades a soluo ou usar o comando [CONV] ou criar com um menu CST contendo um banco de novas
unidades definidas pelo usurio (para um caso no qual se precisa repetir a converso para diversos valores).
O menu [ UNITS]:
[CONV] - converte o objeto com a unidade do nvel 2 para a unidade indicada no nvel 1, desprezando o valor
numrico do objeto do nvel 1.
[UBASE] - converte o objeto de unidades para outro objeto que possui apenas as unidades base do SI. (muito
interessante)
[UVAL] - retorna apenas o valor numrico do objeto de unidades. (til para converses)
[UFACT] - fatora a unidade do objeto do nvel 2 envolvendo a unidade do obj. do nvel 1.
[UNIT] - combina o valor presente nvel 2 com a unidade do nvel 1, desprezando a o valor do nvel 1.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
SOLVER BSICO
Para resolver uma equao usando mtodos manuais seguimos o procedimento:
- Escrevemos a equao.
- Se possvel isolamos a varivel desconhecida.
- Substituimos os valores conhecidos.
- Calculamos o valor da varivel desconhecida.
Quando utilizamos o Solve, executamos um processo semelhante, porm no necessrio isolar a varivel
desconhecida na equao.
SOLVE
1) SOLVE EQUATION - utilizado para calcular uma varivel desconhecida em uma equao ou expresso
qualquer, quando usamos uma expresso o solve calcula o zero da mesma.
EQ: recebe a equao ou expresso que ser utilizada.
EDIT: edita o objeto do campo selecionado.
CHOOSE: Seleciona uma equao ou expresso que esteja armazenada em alguma varivel do diretrio
corrente. Se pressionado novamente, seleciona um novo diretrio para procurar as equaes ou expresses.
VARS: retorna uma lista com as variveis da equao corrente
EXPR: retorna ao stack o valor da expresso para um valor pr-determinado de varivel.
INFO: se pressionado aps a calculadora ter efetuado algum clculo no solve, retorna o status da varivel
e seu valor.
MENSAGENS:
a) Sign Reversal: a calculadora isolou 2 pontos que resultam sinais opostos quando aplicados a expresso
ou a equao, mas no encontrou um ponto, entre os dois, que possa zerar a funo, isto geralmente ocorre devido
a falta de preciso ou a descontinuidade da funo.
b) Extremum: a expresso ou a equao tende a zero para valores muito altos ou muito baixos, desta
forma o zero (raiz) obtido pela falta de preciso e portanto pode ou no ser um zero verdadeiro.
SOLVE POLINOMIAL
Utilizado para resoluo de polinmios de tipo: A
o
X
n
+ A
1
X
n-1
+ . . . + A
n-1
X
1
+ A
n
X
o =
0
Coeficientes [A
n
A
n-1
. . . A
1
A
o
]: campo utilizado para a entrada (ou resoluo) dos coeficientes do
polinmio.
Roots: campo utilizado para a resoluo (ou entrada) das razes do polinmio.
Symb: se o campo selecionado for coeficientes ao se pressionar [Symb], retorna para o stack o polinmio. Se
selecionarmos roots teremos no stack o produto das razes que resulta no polinmio em questo.
Solve: encontra os coeficientes partir das razes do polinmio e vice-versa, de acordo com o campo selecionado.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
SOLVE LINEAR SYSTEM
Utilizado para resolver sistemas de equaoes lineares da forma: A.X = B
a
1
x +

a
2
y +

a
3
z = b
1
a
4
x + a
5
y +

a
6
z = b
2
a
7
x + a
8
y +

a
9
z = b
3
a
1
a
2
a
3
x b
1
a
4
a
5
a
6
y
=
b
2
a
7
a
8
a
9
z b
3
A: campo utilizado para a entrada da matriz que possui os coeficientes das variveis.
B: campo utilizado para a entrada (ou clculo) dos coeficientes lineares do sistema.
X: campo utilizado para o clculo (ou entrada) do valor das variveis.
SOLVER AVANADO
( EQ LIB MES)
MULTI-EQUATION SOLVER
Utilizada para calcular variveis partir de um conjunto de equaes especificadas por uma lista:
{ EQ
1
EQ
2
EQ
3
EQ
4
. . . EQ
n
}
- esta lista deve ser armazanada em EQ (varivel que armazena as equaes que a calculadora
dever processar)
- em seguida devemos inicializar o programa M.E.S. apertando [MINIT}.
- para calcular pressionamos [MSOLV] e obtemos um menu da variveis.
- agora devemos colocar os valores nas variveis que j conhecemos, digitamos o valor e pressionamos
a tecla correspondente variavel.
- podemos calcular o valor de uma varivel pressionando + (varivel desejada).
* a tecla [ALL] limpa o contedo de todas as variveis e a combinao [ALL], faz com que a
calculadora encontre o valor de todas as variveis desconhecidas.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
PROGRAMAO
Fundamentos de Programao:
- Como introduzir e executar um programa.
- Como editar um programa.
- Como utilizar variveis locais.
- Programas que manipulam dados na pilha.
- Como utilizar sub-rotinas.
- Execuo de um programa passo-a-passo.
Um programa um objeto definido pelos delimitadores << e >>, e composto por comandos e outros
objetos. No exemplo seguinte calcularemos o volume de uma esfera, primeiro utilizando a calculadora normalmente
e depois utilizando um programa.
Exemplo: Clculo do Volume de uma Esfera.
O volume de uma esfera dado atravs da seguinte frmula: V = 4/3*pi*r^3
Para calcularmos o volume utilizando apenas as funes normais da calculadora, assumindo que j entramos
com o raio na pilha, procedemos do seguinte modo:
3 [y ] [ ] [*] 4 [*] 3 [-] [ NUM]
Se desejarmos calcular o volume de muitas esferas, podemos criar um programa. O programa seguinte
tambm assume que o raio j est na pilha:
<< 3 ^ * 4 * 3 / NUM >>
Como o programa um objeto, possvel coloc-lo na pilha e salv-lo em uma varivel. Para jogar o
programa na pilha depois de digit-lo pressione [ENTER]. Para armazen-lo em uma varivel, por exemplo:
VOL , pressione [], escreva o nome da varivel: VOL, e finalmente pressione a tecla [STO] para gravar o
programa. Agora calcule o volume de qualquer esfera simplesmente executando [VOL] (selecione o menu VAR e
pressione [VOL] ). Pode-se executar VOL quantas vezes quisermos, pois agora ele tem o mesmo efeito que um
comando incorporado.
VOL um programa do tipo mais simples que existe; uma srie de objetos e comandos, escritos na mesma ordem
em que se escreveria normalmente para calcular o volume de uma esfera.
Como Escrever um Programa
Para definirmos o comeo de um programa pressionamos [<< >>]. E aparecer o indicador PRG, que
indica o modo de entrada de programa. Neste modo, pressionando as teclas de comando escreve-se o nome do
comando pressionado. (Tambm podemos escrever os comandos com caracteres alfabticos).
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
O programa seguinte (chamado de SPH) calcula o volume de um segmento esfrico de raio r e altura h,
utilizando a seguinte frmula:
V = 1/3*pi*h^2*(3*r-h)
A partir de agora utilizaremos para fins didticos de um diagrama dos argumentos que so utilizados pelo
programa, que apropriado para mostrar como deve estar a pilha antes que se execute o programa e que resultados
este programa retorna para a pilha. Temos a seguir o diagrama da pilha para o programa SPH:
Argumentos: Resultados:
2: 2:
1: 1: volume
Este diagrama indica que SPH no usa argumentos da pilha e devolve o valor do setor esfrico ao nvel 1.
(SPH assume que j se tenha armazenado o valor do raio na varivel R e a altura na varivel H).
A listagem abaixo mostra o programa na coluna da esquerda, os comentrios na coluna da direita e como
escrever o programa na coluna do meio. (Lembre-se: para digitarmos um comando podemos pressionar a tecla
correspondente ou escrever o nome do comando)
Programa: Teclas: Comentrios:
<< [<< >>] Comea o programa.
1/3 [] 1 [/] 3 Comea a expresso algbrica
para calcular o volume.
*pi*H^2 [*] pi [*] H Multiplica por h .
[ Y
x
] 2
*(3*R-H) [*] [( )] Multiplica por 3r-h,
3 [*] R [-] completando o clculo e
H [] [ ] finalizando a expresso.
NUM [NUM] Converte a expresso para
um nmero.
>> Termina o programa.
[ENTER] Coloca o programa na pilha.
[] SPH [STO] Armazena o programa na varivel SPH.
Como Executar um Programa:
H vrias maneiras de executar o programa SPH:
- Escreva SPH na linha de comando e pressione [ENTER].
- Selecione o menu VAR e pressione SPH.
- Se o programa ou o nome do programa esto no nvel 1, ento pressione [EVAL].
Como exemplo, utilize SPH para calcular o volume de um setor esfrico de raio r=10 com uma altura de
h=3.
Armazene os dados nas variveis apropriadas ( 10 [] H [STO] 3 [] R [STO]). Depois selecione o menu
VAR e ao executar o programa deveremos encontrar no nvel 1 a resposta: 254.46004942
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Como Editar um Programa:
Vamos modificar o programa SPH de maneira que ele armazene o contedo do nvel 1 na varivel H e o
contedo da varivel do nvel 2 na varivel R.
Pressione [SPH] no menu VAR para jogar o programa na pilha, em seguida pressione [EDIT] para
editar. Desloque o cursor aps o primeiro delimitador de programa (<<) e insira os novos passos ao programa: H
STO R STO. O programa fica da seguinte forma:
<<
H STO
R STO
1/3*pi*H^2*(3*R-H)
NUM
>>
Salve esta nova verso do programa na varivel SPH2, pressionando [ENTER] para sair do modo de
edio de programas e digite a sequncia: SPH2 STO para gravar.
obs: Para abortar a edio de um programa pressione [CANCEL] e para confirmar o fim da edio de um
programa pressione [ENTER].
Como Utilizar Variveis Locais:
O programa SPH utiliza variveis globais para armazenar e utilizar os dados. As desvantagens de se
utilizar variveis globais so as seguintes:
- Depois da execuo do programa necessrio apagar as variveis globais inteis para liberar o menu
VAR e a memria do usurio.
- Deve-se armazenar explicitamente os dados em variveis globais antes de se executar o programa,
ou fazer com que o prprio programa execute STO.
Veremos como as variveis locais corrigem as desvantagens das variveis globais. As variveis locais so
variveis temporrias criadas por um programa. Existem somente enquanto se est executando o programa e no
podem ser utilizadas fora do programa que as criou. Nunca aparecem no menu VAR.
Para criar variveis locais, devemos utilizar a seguinte sequncia de comandos e objetos, chamados de
estruturas de varivel local:
1. O comando (pressione [ 0 ])
2. Um ou mais nomes de variveis.
3. Uma expresso algbrica ou um programa que utilizar as variveis locais.
Esta estrutura tem a seguinte aparncia:
<< nome1 nome2 . . . nome
n
<< programa >> >>
ou
<< nome1 nome2 . . . nome
n
expresso algbrica >>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Quando se executa o comando em um programa, tomam-se n valores da pilha que so assumidos
pelas variveis nome1 nome2 . . . nome
n
. Por exemplo, considere a seguinte pilha:
4:
3: 10
2: 6
1: 20
onde:
a) a cria a varivel local a=20.
b) a b cria as variveis locais a=6 e b=20.
c) a b c cria as variveis locais a=10, b=6 e c=20.
Agora vamos calcular o volume de um setor esfrico utilizando variveis locais, abaixo temos o diagrama dos
argumentos do programa:
Argumentos: Resultados:
2: r 2:
1: h 1: volume
Programa: Comentrios:
<<
r h Cria as variveis locais r e h
para guardar o raio e a altura
da esfera.
<<
1/3* *h^2*(3*r-h) Procedimento para a estrutura
de variveis locais no qual as
variveis locais so vlidas.
NUM Converte a expresso para
um nmero.
>>
>>
[ENTER] Coloca o programa na pilha.
[] SPHVL [STO] Armazena o programa na varivel SPHVL.
Para executar o programa entre com os dados na pilha e chame o programa, por exemplo: raio=10 e altura=3.
Entre com os dados da seguinte forma: 10 [ENTER] 3 [ENTER] , execute o programa: VAR SPHVL
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Programas que Manipulam Dados na Pilha
Os programas anteriores SPH e SPHVL utilizam variveis para armazenar e recuperar dados. Um mtodo
de programao alternativa manipula nmeros na pilha, sem armazan-los em variveis. Este mtodo geralmente
tem um tempo de execuo mais rpido. Porm o mtodo de manipulao da pilha tem vrias desvantegens:
- Quando se escreve um programa, deve-se localizar a posio dos dados na pilha. Por exemplo os
argumentos devem ser duplicados se forem utilizados por mais de um comando.
- Um programa que manipula dados da pilha geralmente mais difcil de ler e entender que um programa
que utiliza variveis.
O programa SPHSTACK utiliza o mtodo de manipulao da pilha para calcular o volume de um setor esfrico.
Argumentos: Resultados:
2: r 2:
1: h 1: volume
Programa: Comentrios:
<<
DUP Duplica o nmero do nvel 1 da pilha.
ROT Move o nmero que se encontra no
nvel 3 para o nvel 1.
3 * Multiplica o raio por 3.
SWAP - Troca os nmeros do nvel 1 (altura)
pelo 2 (raio) e calcula 3r-h.
SWAP SQ * Troca a cpia da altura pelo nvel 1,
acha a raiz quadrada da altura e
multiplica por 3r-h.
pi * 3 / Multiplica por pi e divide por 3,
completando o clculo.
NUM Converte a expresso para
um nmero.
>>
[ENTER] Coloca o programa na pilha.
[] SPHSTACK [STO] Armazena o programa na varivel SPHSTACK.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Execuo de um Programa Passo-a-Passo
mais fcil compreender como funciona um programa se o rodarmos passo-a-passo, observando o efeito
de cada comando. Este procedimento geralmente utilizado para corrigir erros de programao dentro de um
programa e tambm para ajudar a enteder como programas escritos por outras pessoas funcionam, por isso este
procedimento chamado de DEBUG.
As operaes para executar o DEBUG esto contidas no menu PRG RUN.
Comandos do DEBUG:
DBUG: toma como argumento o nome, ou o programa a ser executado passo-a-passo, comeando a execuo do
programa e depois suspendendo como se fosse executado o comando HALT.
SST: executa o prximo comando do programa suspenso.
SST: igual a SST, porm executa subrotinas do programa principal passo-a-passo tambm.
NEXT: mostra no display o prximo comando a ser executado.
HALT: suspende a execuo de um programa na posio do comando HALT.
CONT: retorna a execuo de um programa suspenso.
KILL: cancela a execuo e o processamento passo-a-passo de todos os programas suspensos.
Exemplo de execuo passo-a-passo:
1. Coloque o programa ou o nome do programa no nvel 1.
2. Pressione [PRG] [NEXT] RUN DBUG.
3. opcional: pressione NEXT para mostrar o prximo comando.
4. Pressione SST para executar cada passo do programa.
obs:
- para abandonar a execuo do programa pressione KILL
- para continuar a executar at o fim do programa normalmente pressione CONT.
Se for necessrio executar passo-a-passo um programa a partir de um determinado ponto no seu interior,
basta colocarmos um comando de parada: HALT. Executamos o programa normalmente, e ele ir parar quando
chegar no comando HALT, passando o controle ao DEBUG. A partir da, podemos executar passo-a-passo o
programa seguindo os tens 2, 3 e 4 descritos acima.
ESTRUTURAS CONDICIONAIS E TESTES:
Veremos comandos e estruturas que permitem aos programas fazer perguntas e tomar decises:
- estruturas de comparao e funes lgicas: que permitem que um programa faa um teste
para verificar se existe uma condico especfica.
- estruturas de programas chamadas de estruturas lgicas: usam os resultados de um teste
para tomar decises.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Exemplo: Estruturas Condicionais e Testes
O programa abaixo usa um teste dentro de uma estrutura condicional para executar a seguinte tarefa:
Se os dois nmeros da pilha tem o mesmo valor, elimine um dos dois e armazene o outro na varivel V1. Caso
contrrio, os dois nmeros so diferentes, armazena o nmero do nvel 1 em V1 e o nmero do nvel 2 em V2
Programa: Comentrios:
<<
DUP2 Duplica os nmeros dos nveis 1 e 2 da pilha.
IF Comea a estrutura de teste condicional.
SAME Verifica se os dois nmeros so iguais.
THEN Executa somente se o teste retornou verdadeiro.
DROP Apague um e armazena o outro
V1 STO na varivel V1
ELSE Executa somente se o teste retornou falso.
V1 STO Armazene o nmero do nvel 1 em V1 e
V2 STO o nmero do nvel 2 em V2.
END Termina a estrutura condicional.
>>
[ENTER] Termina a digitao do programa.
[] TST [STO]Grava o programa da pilha em TST.
Comandos de Testes
Um teste uma seqncia de comandos que devolvem um resultado verdadeiro (1) ou falso (0). Por
exemplo, digite 10 5 >, voc ir obter 1 significando que a condio do teste verdadeira, ou seja que 10 maior
do que 5; da mesma forma podemos digitar 5 10 >, neste caso obteremos 0 indicado que a nossa suposio falsa.
Os comandos utilizados nos testes podem se classificar em:
- funes de comparao.
- funes lgicas.
- comandos de teste dos flags
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Funes de Comparao:
< menor que
> maior que
< menor ou igual
> maior ou igual
== igual
= diferente
SAME igual (+ rpido que ==)
Funes Lgicas:
AND retorna 1 se os dois argumentos so V.
OR retorna 1 se um ou os dois argumentos so V.
XOR retorna 1 se um ou outro V mas no os dois.
NOT retorna 1 se o argumento for F.
ESTRUTURAS CONDICIONAIS:
As estruturas condicionais permitem a calculadora tomar uma deciso baseada em um resultado de um ou
mais testes. As estruturas condicionais so:
- IF ... THEN ... END.
- IF ... THEN ... ELSE ... END.
- CASE ... END.
A Estrutura IF ... THEN ... END
IF ... THEN ... END executa uma sequncia de comandos (clusula verdadeira) se a condio for verdadeira
(clusula de teste). Sua sintaxe a seguinte:
IF clusula de teste THEN clusula verdadeira END
A clusula de teste (condio de teste) pode ser uma sequncia de comandos (por exemplo: A B >) ou um
algbrico (por exemplo: A>B). No caso de ser um algbrico a expresso avaliada automaticamente para um
nmero, no necessitando do EVAL ou de NUM.
Exemplo 1:
Os dois programas seguintes fazem um teste do valor no nvel 1. Se o valor positivo tranforma-se em
negativo. O primeiro programa usa uma sequncia de comandos como clusula de teste:
<< DUP IF 0 > THEN NEG END >>
O valor na pilha deve ser duplicado porque o comando > extrai dois argumentos da pilha (a cpia do valor feita
pelo DUP)
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
A seguinte verso usa um algbrico como clusula de teste:
<< x << IF x>0 THEN x NEG END >> >>
Exemplo 2:
Este programa multiplica dois nmeros se ambos so diferentes de zero:
Programa: Comentrios:
<<
x y Cria variveis locais x e y que contm os
dois nmeros da pilha.
<<
IF Comea a estrutura de teste condicional.
x=0 Verifica se o nmero diferente de zero,
deixando o resultado do teste na pilha.
y=0 Verifica se o nmero diferente de zero,
deixando o resultado do teste na pilha.
AND Verifica se os dois testes so verdadeiros.
THEN Executa somente se o teste retornou verdadeiro.
x y * Se AND devolver verdade, multiplica os dois nmeros.
END Termina a estrutura condicional.
>>
>>
O seguinte programa tem o mesmo efeito que o anterior:
<< DUP2 IF AND THEN * ELSE DROP2 END >>
Como funciona a estrutura IF...THEN...END: IF comea a clusula do teste, deixando o resultado do teste na
pilha. THEN extrai o resultado do teste da pilha. Se o valor diferente de zero, executa-se a clusula verdadeira.
Caso contrrio, a execuo do programa continua aps o comando END.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
A Estrutura IF...THEN...ELSE...END
IF...THEN...ELSE...END executa uma seqncia de comandos (clusula verdadeira) se o teste verdadeiro e
outra (clusula falsa) se o teste falso. Sua sintaxe a seguinte:
IF clusula de teste THEN clusula verdadeira ELSE clusula falsa END
Se a clusula de teste for um algbrico (por exemplo: A>B), a expresso avaliada automaticamente para um
nmero, no necessitando do EVAL ou de NUM.
Exemplo 1:
O seguinte programa toma um valor da pilha e calcula sin(x)/x. Porm em x=0 a diviso estar errada,
por isso o programa devolve o valor limte 1 neste caso:
<< x << IF x=0 THEN x SIN x / ELSE 1 END >>
Exemplo 2:
Este programa, como o exemplo 2 para IF...THEN...END, multiplica dois nmeros se ambos so diferentes
de zero. Porm o programa devolve a cadeia ZERO se algum dos dois 0.
Programa: Comentrios:
<<
n1 n2 Armazena nas variveis locais os nveis 1
e 2 da pilha.
<<
IF Comea a estrutura de teste condicional.
n1=0 AND Verifica se ambos os nmeros so diferentes
n2=0' de zero, deixando o resultado do teste na pilha.
THEN Executa somente se o teste retornou verdadeiro.
n1 n2 * Se AND devolver verdade, multiplica os dois nmeros.
ELSE Executa somente se o teste retornou falso.
ZERO Devolve a cadeia ZERO
END Termina a estrutura condicional.
>>
>>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
O seguinte programa tem o mesmo efeito:
<< DUP2 AND IF THEN * ELSE DROP2 ZERO END >>
Como funciona a estrutura IF...THEN...ELSE...END: IF comea a clusula do teste, deixando o resultado do
teste na pilha. THEN extrai o resultado do teste da pilha. Se o valor diferente de zero, executa-se a clusula
verdadeira. Caso contrrio, se executa a clusula falsa. Depois da execuo da clusula apropriada, a execuo
do programa continua aps o comando END.
A Estrutura CASE...END
A estrutura CASE...END permite executar uma srie de casos (testes). O primeiro teste que tem um
resultado verdadeiro causa a execuo da correspondente clusula verdadeira, finalizando a estrutura CASE...END.
Opcionalmente, pode-se incluir aps o ltimo teste uma clusula de default que se executar se todos os testes
forem falsos.
A estrutura CASE...END tem a seguinte sintaxe:
CASE
clusula de teste1 THEN clusula verdadeira1 END
clusula de teste2 THEN clusula verdadeira2 END
. . .
clusula de testen THEN clusula verdadeiran END
clusula default (opcional)
END
Exemplo 1:
O seguinte programa armazena o argumento do nvel 1 em uma varivel chamada STR se o argumento for
uma cadeia; numa varivel chamada LIST se o argumento for uma lista e em PRG se o argumento for um
programa.
Programa: Comentrios:
<<
y Armazena o argumento na variveis local y.
<<
CASE Comea a estrutura do case.
y TYPE 2 SAME Case 1: se o argumento do tipo cadeia,
THEN y STR armazene-o na varivel STR
STO END
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
y TYPE 5 SAME Case 2: se o argumento do tipo lista,
THEN y LIST armazene-o na varivel LIST
STO END
y TYPE 8 SAME Case 3: se o argumento do tipo programa,
THEN y PRG armazene-o na varivel PRG
STO END
END Termina a estrutura case.
>>
>>
Como funciona a estrutura CASE...END: Ao executar CASE, se calcula a clusula teste1. Se o teste verdadeiro,
se executa a clusula do test1, e a execuo salta para END. Se a clusula teste falsa, a execuo passa para a
prxima clusula teste. A execuo na estrutura CASE continua at que todas as clusulas teste tenham sido
avaliadas como falsas. Opcionalmente, pode-se incluir uma clusula de default, que executada caso todas as
outras clusulas tenham sido avaliadas como falsas.
O Comando IFT (if-Then-End)
O comando IFT toma dois argumentos: o resultado de um teste no nvel 2 e um objeto no nvel 1 ( a
clusula verdadeira). O objeto do nvel 1 executado se o resultado do teste verdadeiro.
Exemplo: O programa abaixo extrai um nmero da pilha e retorna a cadeia POSITIVO se o nmero for
positivo:
<< 0 > POSITIVO IFT >>
A funo IFTE
A funo IFTE toma trs argumentos: o resultado de um teste no nvel 3, e os objetos dos nveis 2 e 1. O
objeto do nvel 2 (correspondente a clusula verdadeira) executado se o resultado do teste verdadeiro. Caso
contrrio, o objeto do nvel 1 (a clusula falsa) executado.
Exemplo1: O programa abaixo extrai um nmero da pilha e retorna a cadeia POSITIVO se o nmero for
positivo e NEGATIVO caso o nmero seja negativo:
<< 0 > POSITIVO NEGATIVO IFTE >>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Exemplo2: Podemos utilizar a funo IFTE dentro de um algbrico: O programa abaixo calcula sin(x)/x se x
diferente de zero. Se x zero, o programa devolve 1:
<< x IFTE( x=0 , S N(x)/x , 1 ) >>
ESTRUTURAS ITERATIVAS:
As estruturas iterativas executam uma parte de um programa repetidamente. Existem dois tipois bsicos
de laos:
- Para um lao definido, o programa especifica previamente quantas vezes ser executada a clusula do
lao.
- Em um lao indefinido, o programa utiliza um teste para determinar se deve executar novamente a
clusula do lao.
Estruturas Iterativas Definidas
Fazem parte das estruturas interativas definidas as seguintes variaes:
- START...NEXT e START...STEP.
- FOR...NEXT e FOR...STEP.
A Estrutura START...NEXT
START...NEXT executa uma parte do programa um determinado nmero de vezes. Sua sintaxe :
incio fim START clusula do lao NEXT
Exemplo: O programa seguinte cria uma lista que contm dez cpias da cadeia ABC:
<< 1 10 START ABC NEXT 10 LIST >>
Como funciona START...NEXT: START toma dois nmeros da pilha (incio e fim) e os armazena como
valores inicial e final para o contador do lao. Depois, executa a clusula do lao. NEXT incrementa o contador
em 1 e verifica se este valor menor ou igual ao fim. Se , executa novamente a clusula do lao.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
A Estrutura START...STEP
START...STEP funciona exatamente da mesma forma que o START...NEXT, exceto que permite especificar
um incremento diferente de 1. Sua sintaxe :
incio fim START clusula do lao incremento STEP
Exemplo: O programa seguinte toma um nmero x da pilha e calcula o quadrado deste nmero x/3 vezes:
<< DUP x << x 1 START x SQ -3 STEP >>
Como funciona START...STEP: START toma dois nmeros da pilha (incio e fim) e os armazena como valores
inicial e final para o contador do lao. Depois, executa a clusula do lao. STEP toma o incremento da pilha e
incrementa o contador com este valor. O incremento pode ser positivo ou negativo. Se positivo, executa novamente
a clusula do lao quanto o contador menor ou igual ao fim. Se o incremento negativo, executa o lao quando
o contador maior ou igual ao fim.
A Estrutura FOR...NEXT
Um lao FOR...NEXT executa uma parte de um programa um nmero especificado de vezes, utilizando uma
varivel local como contador das iteraes. Pode-se utilizar esta varivel dentro do lao. Sua sintaxe :
incio fim FOR contador clusula do lao NEXT
Exemplo1: O programa seguinte coloca na pilha os quadrados dos nmero inteiros de 1 a 10:
<< 1 10 FOR j j SQ NEXT >>
Exemplo2: O programa seguinte calcula o fatorial de um nmero da pilha:
<< 1 1 ROT FOR j j * NEXT >>
Como funciona FOR...NEXT: FOR toma dois nmeros da pilha (incio e fim) e os armazena como valores
inicial e final para o contador de iteraes, depois cria uma varivel local contador como contador de iteraes.
Depois, se executa a clusula do lao. NEXT incrementa o contador em 1 e verifica se este valor menor ou igual
ao fim. Se , executa novamente a clusula do lao. Ao sair do lao o contador apagado, ou seja ele s existe
dentro da clusula do lao.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
A Estrutura FOR...STEP
FOR...STEP funciona exatamente da mesma forma que FOR...NEXT, exceto que permite especificar um incremento
diferente de 1 ao contador. Sua sintaxe :
incio fim FOR contador clusula do lao incremento STEP
Exemplo: O programa seguinte calcula os quadrados dos inteiros mpares de 1 a 15:
<< 1 21 FOR j j SQ 2 STEP >>
Como funciona FOR...STEP: FOR toma dois nmeros da pilha (incio e fim) e os armazena como valores
inicial e final para o contador de iteraes, depois cria uma varivel local contador como contador de iteraes.
Depois, executa a clusula do lao. STEP toma o incremento da pilha e incrementa o contador com este valor, e
verifica se o valor do contador menor ou igual ao fim. Se , executa novamente a clusula do lao. Ao sair do
lao o contador apagado, ou seja ele s existe dentro da clusula do lao.
Estruturas Iterativas Indefinidas
Fazem parte das estruturas interativas definidas as seguintes variaes:
- DO...UNTIL...END.
- WHILE...REPEAT...END.
A Estrutura DO...UNTIL...END
DO...UNTIL...END executa repetidamente um lao enquanto a clusula de teste retornar um valor falso. Como se
executa primeiramente a clusula do lao e depois a clusula do teste, executa-se ao menos uma vez o lao. Sua
sintaxe a seguinte:
DO clusula do lao UNTIL clusula de teste END
Exemplo: O programa seguinte calcula n + 2n + 3n + ... para um valor de n. O programa para quando a soma
exceder 10000, e devolve a soma e o coeficiente de n:
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Programa: Comentrios:
<<
DUP 1 n s c Duplica n e armazena o valor em n e
s; inicializa o contador c com 1.
<<
DO Comea a estrutura do.
c INCR Incrementa o contador em 1 e
devolve para a pilha o novo valor de c.
n * s STO+ Calcula c*n, e soma o produto a s.
UNTIL Comea a estrutura de teste.
s 10000 > Repete o lao at que s>10000.
END Termina a clusula de teste.
s c Coloca na pilha s e c.
>>
>>
Como funciona DO...UNTIL...END: DO comea a clusula do lao. UNTIL finaliza a clusula do lao e
comea a clusula de teste. A clusula de teste deixa o resultado do teste na pilha. END extrai o resultado deste
teste da pilha. Se o valor zero, executa novamente a clusula do lao; caso contrrio, a execuo do programa
continua aps o END.
A Estrutura WHILE...REPEAT...END
WHILE...REPEAT...END avalia repetidamente um teste e executa a clusula do lao se o teste verdadeiro.
Como a clusula do teste ocorre antes da clusula do lao, nunca se executa um lao sem antes verificar se a
clusula do teste verdadeira. Sua sintaxe a seguinte:
WHILE clusula de teste REPEAT clusula do lao END
Exemplo: O programa seguinte realiza uma diviso por dois sobre o nmero que est na pilha repedidamente
sempre que o resultado da diviso seja divisvel por um nmero par.
<< WHILE DUP 2 MOD 0 == REPEAT 2 / DUP END DROP >>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Como funciona WHILE...REPEAT...END: WHILE executa-se a clusula do teste e devolve o resultado do
teste para a pilha. REPEAT toma os valores da pilha. Se o valor diferente de zero, continua a execuo do lao;
caso contrrio, a execuo do programa continua aps o END.
PROGRAMAS INTERATIVOS:
Para escrevermos programas interativos necessitamos de comandos especficos que permitam a
comunicao do programa com o usurio. Estes comandos possuem funes especficas, e so basicamente de
dois tipos:
- de entrada: inform, choose
- de sada: disp, msgbox
COMANDOS DE SADA :
DISP
Mostra em uma determinada linha da tela um objeto especificado. Por exemplo:
3: Isto um teste mostrar na primeira linha do display a
2: 1 string Isto um teste
1: DISP
<< 1 100 FOR n mostrar na segunda linha do display
n 2 DISP uma contagem de 1 at 100.
NEXT
>>
<< DUP
SIZE 1 SWAP
FOR n mostrar na tela da calculadora uma
DUP n n SUB letra por vez de uma string
1 DISP
NEXT
>>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
CLLCD
Limpa a tela da calculadora. Exemplo:
<< CLLCD EU SEI PROGRAMAR 1 DISP >> mostra um messagem na tela.
<< 1 1000 FOR n calcula e mostra o seno
CLLCD n SIN 1 DISP dos nmeros de 1 a 1000.
NEXT
>>
BEEP
Emite um beep com uma frequncia e uma durao especificadas. Exemplo:
<< 600 .7 BEEP emite um beep de 600Hz durante .7s
1300 .2 BEEP emite um beep de 1300Hz durante .2s
>>
<< CLLCD 1 20000
FOR f
f 1 DISP exibe na tela o valor da freq. do beep
f .3 BEEP emite um beep com uma freq. f durante .2s
20 STEP
>>
FREEZE
Congela uma determinada rea do display:
1 FREEZE - rea de status
2 FREEZE - rea da pilha
4 FREEZE - rea do menu
<< ABC
DEF
GHI CLLCD 1 DISP
3 FREEZE congela a rea do status+pilha (3=1+2)
>>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
WAIT
Provoca uma pausa na execuo do programa em n segundos. (se n=-1 espera at que uma tecla qualquer
seja pressionada, retornando a posio da tecla pressionada)
<< 700 .4 BEEP << Pressione qualquer tecla...
800 .2 BEEP 1 DISP 3 FREEZE -1 WAIT
.4 WAIT A tecla pressiona : SWAP +
900 .5 BEEP 1 DISP
>> >>
MSGBOX
Utilizado para mostrar mensagens curtas ao usurio: erros, procedimentos, etc.
<< Clculo terminado e verificado MSGBOX >>
COMANDOS DE ENTRADA:
KEY
Retorna o resultado de um teste para verificar se alguma tecla est sendo pressionada, em caso afirmativo
retorna tambm a posio da tecla pressionada (linha, coluna). Exemplo:
<< WHILE
KEY NOT
REPEAT
Nenhuma tecla pressionada 1 DISP
END
A tecla pressionada foi: SWAP + 1 DISP
3 FREEZE
>>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
INFORM
Cria uma estrutura de entrada de dados no padro dos menus da HP. Utilizando este comando podemos
inserir dados atravs de menus e janelas, utilizando comandos eles associados (EDIT, CANCEL, OK, RESET,
CALC, TYPES). Os argumentos para a utilizao do comando so os seguintes:
stack:
5: conhecendo o inform - pequena string que ser exibida no topo da caixa.
4: { A= B= C= } - lista de strings contendo a identificao dos campos.
3: { 1 5 } - lista contendo o nmero de campos por linha e a distncia
entre a identificao e o campo.
2: { 0 0 0 } - valores assumidos pelos campos quando se d um RESET
1: { 1 2 3 } - valores defaut (iniciais)
Este comando retorna o valor 0 se a entrada foi cancelada e 1 se a entrada foi confirmada, neste caso o
comando retorna uma lista, na 2 linha do stack, contendo os novos contedos dos campos apresentados.
CHOOSE
O comando CHOOSE utilizado quando necessitamos que o usurio faa uma escolha dentro de um
programa. O comando gera um menu de barras, contedo as opces, ou objetos desejados. O comando utilizado
com os seguintes argumentos:
3: Escolha a opo: - pequena string que ser exibida no topo da caixa.
2: { LER GRAVAR << 1 >> C } - lista contendo as opes (objetos).
1: 1 - posio inicial da barra sobre o menu.
A barra deve ser deslocada at o objeto desejado e em seguida pressionada a tecla ENTER ou OK para
efetuarmos a escolha, ou CANCEL para cancelarmos. Se a funo foi cancelada teremos como resposta o valor
0 no stack. Se a funo foi confirmada temos o valor 1 como resposta, e na segunda linha do stack, teremos a
opo (objeto) selecionada.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
COMANDOS GRFICOS:
TELA GRFICA:
A maneira de acessar um determinado pixel na tela grfica da HP atravs de um par de coordenadas:
(-6.5, 3.2) (6.5, 3.2) { #0 #0 } { #130 #0}
(-6.5, -3.1) (6.5, -3.1) { #0 #63 } { #130 #63 }
coordenadas - plot coordenadas - grob
Observe que as coordenadas do pixel so dadas em forma de uma lista contendo dois binrios inteiros, o
primeiro idicando a coluna e o segundo indicando a linha. Estas coordenadas so a forma mais coveniente de se
trabalhar com objetos grficos. J as coodenadas do plot so definidas atravs da varivel PPAR e indicam pontos
na tela de uma funo matemtica traada atravs do plot, por isso seu uso no muito til pois freqntemente
alteradas.
COMANDOS GRFICOS:
PICT
Varivel na qual est armazenado o objeto grfico corrente.
PDIM
Dimensiona o tamanho da tela grfica de acordo com a coordenada do canto inferior direito da nova tela,
colocadas nos nveis 2 e 1 do stack ( altura largura).
LINE
Desenha uma linha na tela grfica corrente entre dois pontos colocados no stack.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
TLINE
Desenha uma linha na tela grfica corrente entre dois pontos colocados no stack, trocando o estado de
cada ponto encontrado no caminho (on-off xor).
BOX
Desenha um retngulo na tela grfica usando duas coordenadas no stack que indicam a diagonal do
retngulo.
ARC
Desenha um arco na tela grfica centrado na coordenada presente no nvel 4 do stack, com um raio
especificado no nvel 3, com o ngulo inicial e final indicados nos nveis 2 e 1 respectivamente.
PIXON
Liga o pixel da tela grfica ndicado no nvel um do stack.
PIXOFF
Desliga o pixel da tela grfica ndicado no nvel um do stack.
PIX?
Retorna 1 se o pixel da tela grfica indicado no nvel um do stack estiver ligado, e zero se estiver desligado.
PVIEW
Mostra a tela grfica corrente a partir de um ponto especificado (geralmente {#0#0}).
PXC
Converte as coordenadas de pixel para coordenadas do tipo plot.
CPX
Converte as coordenadas do tipo plot para coordenadas de pixel.
GROB
Converte o objeto (nvel 2) para o objeto grfico usando o nmero real n (de 0 a 3 no nvel 1 do stack) para
especificar o tamanho do caracter. O objeto grfico resultante uma string cujo tamanho do caracter pequeno
(n=1), mdio (n=2) ou grande (n=3). Para n=0 o tamanho do caracter o mesmo que para n=3, exceto para
objetos algbricos e unidades, o objeto grfico resultante neste caso ser uma tela do Equation Writer.
BLANK
Cria um objeto grfico em branco a partir da largura e da altura especificadas nos nveis 2 e 1
respectivamente.
GOR
Sobrepe o objeto grfico presente no nvel 1 do stack ao objeto grfico presente no nvel 3 do stack, a
partir da coordenada especificada no nvel 2 do stack.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
GXOR
Sobrepe, usando um XOR lgico, o objeto grfico presente no nvel 1 do stack ao objeto grfico presente
no nvel 3 do stack, a partir da coordenada especificada no nvel 2 do stack.
SUB
Extrai uma regio do objeto grfico presente no nvel trs definida por duas coordenadas presentes nos
nveis 2 e 1 do stack que definem a diagonal do retngulo extrado.
REPL
Insere o objeto grfico presente no nvel 1 do stack ao objeto grfico presente no nvel 3 do stack, a partir
da coordenada especificada no nvel 2 do stack.
LCD
Mostra o objeto grfico do nvel 1 no display-stack.
LCD
Retorna para o nvel 1 o objeto grfico que est sendo mostrado na tela.
SIZE
Para um objeto grfico presente no nvel 1, retorna a largura (nvel 2) e a altura (nvel 1) em pixels.
ANIMATE
Toma a partir do nvel 2 at n+1 uma sequncia de grobs e do nvel 1:
o nmero de grobs (n)
uma lista contendo 4 tens:
a) o nmero de grobs.
b) uma lista contendo as coordenadas de pixel ( #nx #ny ) do canto superior esquerdo da regio onde a
animao ser feita.
c) o delay (em segundos) entre cada quadro da animao.
d) o nmero de vezes que a seqncia de animao ser repetida (0 para repetir indefinidamente, at que
uma tecla seja apertada).
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
ANALISE DE TCNICAS DE PROGRAMAO
O objetivo deste mdulo fornecer idias para a construo de programas corretos, inteligveis e de fcil
manuteno. Para isto o primeiro passo estudado ser a decomposio do problema e criao de um algortimo. A
partir destes quesitos busca-se um mtodo que fornea:
- Programas corretos.
- Programas bem estruturados.
- Programas manutenveis.
- Controle do programa desde o projeto..
Para programas de grande porte seriam necessrios ainda documentao, comentrios e controle da
qualidade do programa. No entanto, os programas desenvolvidos para a HP48 so de pequeno porte, mdio porte
ocasionalmente para a HP48GX, portanto os tens acima so suficientes para a obteno de um bom programa.
so utilizados procedimentos bsicos de programao na confeco de pequenos programas, tais como:
- Visualizao do problema.
- Criao do algortimo.
- Criao do fluxograma.
- Criao do programa.
Para programas maiores e mais complexos existem vrios mtodos de programao, mas usaremos o
mtodo de modularizao devido a sua alta eficincia e ao fato de trabalharmos com programao estruturada. O
mtodo de modularizao segue os seguintes passos:
- Visualizao do problema.
- Criao do algortimo.
- Diviso do problema em mdulos.
- Criao de um fluxograma modular.
- Implementao e teste de cada mdulo.
- Implementao do programa principal.
A modularizao est englobada no que chamamos de programao estruturada, que associada a vrios
conceitos:
- Programao sem o uso de GO TO.
- Uso exclusivo de concatenao (seqncia), selao (if then else), repetio (while do).
- Desenvolvimento de programas do tipo TOP-DOWN (refinamento sucessivo).
No entanto, nenhum dos tens acima , e nem o conjunto, fornecem a idia exata do que vem a ser programao
estruturada. Ento vamos defin-la:
- Programao estruturada aquela na qual so satisfeitas as acertivas pr-determinadas, construindo o
programa com um fluxo lgico que seja consistente dentro de cada trecho do programa (mdulos).
Vamos analisar agora alguns programas interessantes, buscando fixar e desenvolver o uso dos comandos de
programao. Ser proveitoso digit-los e execut-los no modo DEGUG (passo-a-passo). Os programas abaixo
foram transferidos da HP para o computador pelo kermit utilizando translate code igual a 3.
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
1-Calculo da Determinante de uma Matriz qualquer.
%%HP: T(3)A(D)F(.);
\<<
IFERR
WHILE
CALCULO DO DET {
MATRIZ } { 1 2 }
{ } { } INFORM
REPEAT EVAL DUP
SIZE EVAL SWAP 1 -
\-> m c l
\<< 0 1 c
FOR x 1 0 l
FOR y m y
1 + x y +
IF DUP
4 / DUP 1 >
THEN IP
c * -
ELSE
DROP
END 2
\->LIST GET *
NEXT +
NEXT 0 1 c
FOR x 1 0 l
FOR y m y
1 + x y -
IF DUP
1 <
THEN
DUP c / IP 1 + c *
+
END 2
\->LIST GET *
NEXT +
NEXT -
DET: SWAP +
MSGBOX m
\>>
END
THEN CLEAR ERRN
DOERR
END
\>>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
2-Agenda de Telefones e Aniversrios.
%%HP: T(3)A(D)F(.);
DIR
AGEN
\<< CLLCD BIB
AGENDA A.J.M
{ PROCURAR
INCLUIR
EXCLUIR } 1
CHOOSE 0 ==
IF
THEN UPDIR
KILL
END DUP
PROCURAR ==
IF
THEN CLEAR S
KILL
END
INCLUIR ==
IF
THEN CLEAR E
KILL
END CLEAR D
\>>
BIB
DIR
D
\<< CLLCD
FONE
EXCLUSO
VARS DUP SIZE 0 ==
IF
THEN
CLEAR
NO H
CADASTRO
MSGBOX UPDIR UPDIR
KILL
END 1
\<< +
\>> DOSUBS
1 CHOOSE 0 ==
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
IF
THEN
UPDIR UPDIR KILL
END UPDIR
OBJ\-> DUP FONE PURGE
UPDIR ANIV PURGE
UPDIR UPDIR
\>>
S
\<< CLLCD
PROCURA (\Ga + INICIAL)
FONE VARS DUP SIZE
0 ==
IF
THEN
UPDIR UPDIR
N\195O H
CADASTRO.
MSGBOX CLEAR KILL
END 1
\<< +
\>> DOSUBS
1 CHOOSE 0 ==
IF
THEN
UPDIR UPDIR KILL
END DUP
DUP SWAP +
:
F: + SWAP
OBJ\-> EVAL DUP NOVAL
\=/
IF
THEN +
ELSE DROP
END

A: + ANIV SWAP
OBJ\-> DUP NOVAL \=/
IF
THEN +
ELSE DROP
END
MSGBOX UPDIR UPDIR
\>>
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
E
\<< ANIV
INCLUS\195O (FONE,ANIV\->STRING)
{ NOME: FONE:
ANIV: } { 1 3 } {
} { } INFORM 0 ==
IF
THEN
UPDIR UPDIR KILL
END OBJ\->
DROP ROT DUP +
DUP E == SWAP DUP
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
S == SWAP DUP D
== SWAP DUP ANIV
== SWAP FONE ==
OR OR OR OR 1 ==
IF
THEN
CLLCD CLEAR
VARIVEL
RESERVADA.
UPDIR UPDIR MSGBOX
KILL
END DUP
EVAL TYPE 6 \=/
IF
THEN
CLEAR UPDIR UPDIR
NOME J USADO
OU INVLIDO.
(USE VARIVEL)
MSGBOX KILL
END DUP
ROT SWAP STO VARS
SORT ORDER UPDIR
FONE STO VARS CLLCD
A.J.M. 3
DISP
ORDENANDO...
5 DISP SORT ORDER
UPDIR UPDIR
\>>
FONE
DIR
CEFET
2247735
LUCIANO
2626133R33
END
ANIV
DIR
CEFET
NOVAL
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
LUCIANO
NOVAL
END
END
END
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
COMUNICAO SERIAL
PARMETROS
Antes de iniciarmos a transferncia de dados preciso ajustar os parmetros de comunicao serial da
calculadora:
PORT: seleciona o modo de comunicao ( Wire para HP-PC ou Infrared para HP-HP).
TYPE: seleciona o protocolo de comunicao (Kermit ou XModem).
FMT: seleciona o formato dos dados (ASCII ou Binary).
XLAT: seleciona o tipo de traduo de caracteres usado no formato ASCII.
CHK: seleciona o metodo de verificao de erros (checksum) usado na transferncia.
BAUD: seleciona a velocidade de transferncia de dados (1200 2400 4800 ou 9600).
PARITY: seleciona o tipo de mtodo para gerar a paridade durante a comunicao.
OVRW: habilita ou no a gavao (overwrite) de variveis j existentes.
COMUNICAO HP-HP
Podemos transferir qualquer tipo de objeto entre duas calculadoras HP atravs da comunicao por
infravermelho. Para a estabelecer a transferncia de programas entre duas calculadoras seguimos os seguintes
passos:
1- Entre no menu de comunicao I/O (pressione [ ] [I/O] )
2- Selecione [Transfer...]
3- Configure os parmetros do mesmo modo nas duas calculadoras:
(imprescindvel: port=IR )
(recomendado: type=Kermit fmt=Bin Xlat=None chk=1 )
4- Pressione [NEXT] [OK]
5- Entre novamente no menu de comunicao I/O (pressione [ ] [I/O] )
6- Selecione [Send to HP 48...] na calculadora que ir mandar os programas.
7- Pressione [CHOOS] e selecione os programas que sero enviados pressionando a tecla [_chk], caso o programa
esteja em outro diretrio pressione novamente [CHOOS] e selecione o novo diretrio.
8- Antes de mandar o programa pressionando [SEND] necessrio entrar em [Get from HP 48] na calculadora
que ir receber.
9- Finalmente podemos mandar o programa pressionando [SEND]
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
COMUNICAO HP-PC
A transferncia entre a calculadora e o computador praticamente igual ao processo descrito acima, com
algumas modificaes:
1- Entre no menu de comunicao I/O (pressione [ ] [I/O] )
2- Selecione [Transfer...]
3- Configure os parmetros do mesmo modo nas duas calculadoras:
(imprescindvel port=Wire )
(recomendado type=Kermit fmt=Bin Xlat=None chk=1 )
(recomendado baud=9600 parity=None )
4- Pressione [NEXT] [OK]
5- Entre novamente no menu de comunicao I/O (pressione [ ] [I/O] )
6- Selecione [Send to HP 48...] no caso da calculadora ir mandar os programas.
7- Pressione [CHOOS] e selecione os programas que sero enviados pressionando a tecla [_chk], caso o programa
esteja em outro diretrio pressione novamente [CHOOS] e selecione o novo diretrio.
8- Antes de mandar o programa pressionando [SEND] necessrio preparar o computador para receber.
9- Finalmente podemos mandar o programa pressionando [SEND]
10- No caso em que a calculadora deve receber o programa, deve-se entrar em [Get from HP 48] e atravs do
computador mandar o programa.
KERMIT
Para utilizar a transferncia de programas do computador para a calculadora necessrio conhecer os
seguintes comandos do Kermit:
help ou h - mostra o help do programa.
ta porta1 - roda um programa de inicializao automtica da porta 1
ta porta2 - roda um programa de inicializao automtica da porta 2
set por 1 - utiliza a porta serial 1 para a transferncia.
set bau 9600 - configura a velocidade de transmisso.
send [programa] - manda o [programa] para a calculadora.
recv - prepara o computador para receber um programa.
* Para configurar a serial:
ta porta1
* Para mandar:
send [nome do programa]
* Para receber:
recv
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
COMANDOS DE TRANSFRENCIA DE DADOS:
Para escrevermos programas que realizem uma comunicao serial (com o protocolo Kermit ou Xmode)
precisamos conhecer os seguintes comandos:
SEND: transfere os objetos para serial cujos nomes esto no stack em forma de lista.
RECV: recebe dados via comunicao serial.
SERVER: entra no modo de servidor.
KGET: recebe um objeto cujo nome enviado em forma de string.
FINISH: envia uma mensagem de trmino de transferncia de dados ou do modo server.
RECN: recebe um objeto mudando o seu nome para outro que esta indicado no stack.
PKT: envia um comando via serial em forma de string.
KERRM: obtem o cdigo do ltimo erro ocorrido durante a transmisso de dados.
COMANDOS DE COMUNICAO SERIAL:
Algumas vezes precisamos receber informaes de um circuito eletrnico ou de algum outro tipo de
dispositivo que no permite a comunicao bidirecional, ou seja a calculadora ou s transmite dados ou s recebe
dados. Por isso devemos conhecer os seguinte comandos de comunio serial que nos fornecem um controle maior
sobre a serial da calculadora.
OPENIO: abre a porta serial, ou seja habilita a recepo de dados e a sua armazenagem num buffer
de no mximo 255 caracteres.
CLOSEIO: fecha a porta serial , ou seja desabilita a recepo de dados limpando o buffer.
XMIT: envia para a serial da calculadora uma string. (transmisso de dados)
SRECV: obtm uma string de um tamanho especificado do buffer. (recepo de dados)
STIME: especifica o tempo de intervalo entre as tentativas de transferncia de dados.
SBRK: envia para a serial um sinal de Break (parada)
BUFLEN: obtm a quantidade de caracteres recebidos e guardados no buffer de comunicao serial e um
numero que indica se ocorreu algum tipo de erro durante a recepo dos dados. (0 se ocorreu e 1 se nada ocorreu
de errado).
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Legendas
legenda Descrio legenda Descrio
[array] Vetor ou matriz real ou complexa. PICT Objeto grfico atual.
date Data na forma MM.DDAAAA ou DD.MMAAAA. point Ponto {#n #m} de tela ou (x,y) de plot eq.
{dim} Lista de dimenso da formao. lc.p linha, coluna e plano de tecla.
nome Nome global. (r,) Nmero complexo na forma polar.
grob Objeto grfico. string Cadeia de caracteres.
hms Formato horas minutos segundos (H.MMSSs). symb Expresso, equao ou nome tratado como algebrico.
index Nmero real especificando um elemento de um obj. V/F Resultado de um teste (verdadeiro ou falso).
LID Nmero de biblioteca. time Tempo na forma HH.MMSSs.
{list} Lista de objetos. [vector] Vetor real ou complexo.
m n Nmero real ou inteiro positivo. x y Nmero real.
[matriz] Matriz real ou complexa. x_unit Objeto de unidade.
#n Inteiro binrio. (x,y) Nmero complexo na forma retangular.
obj Qualquer objeto. z Nmero real ou complexo.
Guia de Referncia dos Comandos
Comando Descrio Entrada Sada
ABS Valor Absoluto. z |z|
ACK Reconhecimento de alarme vencido no display.
ACKALL Reconhecimento de todos os alarmes passados no display.
ACOS Arco-cosseno. z acos(z)
ACOSH Arco-cosseno hiperblico. z acosh(z)
ALOG Antilogartimo comum (base 10). z 10^z
AND AND lgico ou binrio. #n1 #n2 #n1 AND #n2
APPLY Devolve expresses avaliadas como argumentos a nomes locais
sem avaliar. nome {symb ...}
ARC Desenha um arco em PICT com um ponto central especificado,
raio, e ngulo de incio e fim. point xr x1 x2
ARCHIVE Faz uma cpia de segurana do diretrio HOME :n: name
ARG Devolve o ngulo polar O. z x
ARRY Separa uma formao [array] z1 ... zn {dim}
ARRY Cria uma formao z1 ... zn {dim} [array]
ASIN Arcosseno. z asin(z)
ASINH Arcosseno Hiperblico. z asinh(z)
ASN Liga uma objeto a uma tecla do modo de usurio. obj lc.p
ASR Rotao aritmtica para direita de 1 bit. #n1 #n2
ATAN Arcotangente. z atan(z)
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
ATANH Arcotangente hiperblica. z atanh(z)
ATTACH Liga uma biblioteca ao diretrio atual LID
AUTO Auto-escala o eixo y
AXES Fixa as coordenadas de interseco dos eixos. point
BAR Seleciona o traado BAR. point
BARPLOT Plota o diagrama de barra dos dados de DAT.
BAUD Fixa a taxa de transferncia. nbaud
BEEP Emite um beep nfreq ndurao
BESTFIT Seleciona o modo de traado que produz o maior valor absoluto
do coeficiente de correlao LR.
BIN Fixa a base binria.
BINS Ordena os elementos na coluna de variveis independentes de
DAT em n+2 casas. xmin xcolunas nbins [[b1]...[bn]][b<b>]
BLANK Cria um objeto grfico vazio. #ncolunas #nlinhas grob
BOX Desenha um quadrado a partir de dois cantos opostos. point1 point2
BUFLEN Devolve o nmero de caracteres no buffer da serial. n
BYTES Devolve o checksum e o tamanho em bytes de um objeto. obj #nchecksum xtam
BR Converte binrio para real. #n n
CASE Comea a estrutura CASE... THEN ... END ... END
CEIL Devolve o nmero inteiro seguinte. x n
CENTR Fixa o centro da tela do plot no ponto. point
CF Desativa um flag especfico. m
%CH Calcula o variao percentual. xinicial yfinal x%
CHR Converte o cdigo de um caracter em uma cadeia de um caracter. n string
CKSM Fixa o tipo de checksum de E/S. nchecksum
CLEAR Apaga todos os dados no stack. obj1...objn
CLKADJ Ajusta o clock da calculadora em ticks. (1/8192 seg) nmarcas
CLLCD Limpa a tela.
CLOSEIO Fecha a porta serial.
CLUSR Igual a CLVAR
CLVAR Apaga todas as variveis de usurio no diretrio atual.
CL Apaga DAT.
CNRM Calcula a norma da coluna de uma matriz. [array] xnormacoluna
COLCT Une termos semelhante de uma expresso. symb1 symb2
COL Seleciona as colunas de estatstica independente e dependentes nind ndepen
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
COMB Calcula as combinaes de n elementos tomados de m em n n m Cn,m
CON Cria uma matriz constante. {dim} z [array]
CONIC Seleciona o modo de traado cnico.
CONJ Devolve o conjugado de um complexo. [array] [array*]
CONT Continua a execuo de um programa.
CONVERT Executa converso de unidades. x1_unit1 x2_unit2 x3_unit2
CORR Calcula o coeficiente de correlao. xcorrelacion
COS Cosseno. z cos(z)
COSH Cosseno hiperblico. z cosh(z)
COV Calcula a variana. xcovariana
CR Retorno do carro/salto de linha.
CRDIR Cria um diretrio. nome
CROSS Produto vetorial de vetores. [vetor1] [vetor2] [vetor3]
CPX Converso de unidades do usurio a coordenadas na tela. (x,y) {#n #m}
CR Converso de nmero complexo em real. (x,y) x y
DATE Devolve a data corrente. date
DATE+ Soma a uma data um determinado nmero de dias. date ndias date2
DATE Ajusta a data corrente. date
DDAYS Nmero de dias entre duas datas. date1 date2 ndias
DEC Fixa o modo decimal.
DECR Decrementa e devolve o valor de uma varivel especificada. nome x
DEFINE Cria uma varivel ou funo definida pelo usurio. symb
DEG Fixa o modo de graus.
DELALARM Apaga um alarme da lista de alarmes do sistema. nalarme
DELAY Fixa o tempo entre as linhas impressas. x
DELKEYS Desativa as ligaes de programas s teclas do modo usurio. lc.p
DEPND Especifica o nome da varivel dependente para o plot. nome
DEPTH Devolve o nmero de objetos do stack. n
DET Determinante de uma matriz. [matriz] xdet
DETACH Desconecta uma biblioteca do diretrio atual. LID
DISP Mostra o objeto na linha especificada. obj nlinha
DO Comea a estrutura DO...UNTIL...END.
DOERR Aborta a execuo de um programa, mostra a msg de erro. string
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
DOT Produto escalar de dois vetores. [array] [array] x
DRAW Traado da funo em EQ.
DRAX Traado dos eixos.
DROP Elimina o objeto do nvel 1 do stack. obj
DROPN Elimina n objetos do stack. obj1...objn n
DROP2 Elimina dois objetos do stack. obj1 obj2
DTAG Apaga todas as etiquetas do objeto. :tag:obj obj
DUP Duplica o objeto do nvel 1 do stack. obj obj obj
DUPN Duplica n objetos do stack. obj1...objn n obj1...objn obj1...objn
DUP2 Duplica os objetos dos nveis 1 e 2 do stack. obj1 obj2 obj1 obj2 obj1 obj2
DR Converso de graus em radianos. xgraus xrad
e Constante simblica e (2.71828182846).
ELSE Comea a estrutura ELSE.
END Acaba estruturas de programas.
ENG Fixa o modo de engenharia. ncasas
EQ Separa equaes nos lados direito e esquerdo. symb1=symb2 symb1 symb2
ERASE Apaga PICT.
ERRM Retorna a ltima mensagem de erro. mensagem de erro
ERRN Devolve o nmero do ltimo erro. #n
ERRO Apaga o timo nmero da mensagem de erro.
EVAL Avalia um objeto obj . . .
EXP Eleva a potncia exponencial o objeto do nvel 1. z e^z
EXPAN Expande o objeto algbrico. symb1 symb2
EXPFIT Fixa o modelo de regresso para a curva exponencial.
EXPM Exponencial naturalo menos 1. x e^x-1
FC? Comprova se o flag especificado est desativado. mflag T/F
FC?C Comprova se o flag est desativado, se no o ativa. mflag T/F
FINDALARM Devolve o alarme da hora especificada. date nalarm
FINISH Termina com o modo server do Kermit.
FIX Seleciona o modo FIX. ncasas
FLOOR Inteiro seguinte mais pequeno. x n
FOR Comea a estrutura FOR ... NEXT ou FOR ... STEP
FP Devolve a parte fracionria de um nmero. x FP(x)
FREE Libera a memria ligada. { name/LID } nporta T/F
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
FREEZE Congela uma determinada rea do display. n
FS? Comprova se o flag especificado est ativo. mflag T/F
FS?C Comprova se o flag especificado est ativo, se no o ativa. mflag T/F
FUNCTION Seleciona o traado de grficos no modo FUNCTION.
GET Obtem elementos de uma formao ou lista. [array] index z
GETI Obtem elementos de uma formao ou lista e incremente o ndice. [array] index1 [array] index2 z
GOR Sobrepe o grfico do nvel 1 sobre o do nvel 3 no ponto especif. grob1 point grob2 grob3
GRAD Seleciona o moo radianos.
GRAPH Ativa o modo grfico.
GROB Converte uma cadeia de caracteres em um objeto grfico. string nsize grob
GXOR Usa um OR-exclusivo para sobrepor dois grficos. grob1 point grob2 grob3
HALT Suspende a execuo de um programa.
HEX Fixa o modo hexadecimal.
HMS+ Soma em formato HMS. hms1 hms2 hms3
HMS- Subtrao no formato HMS. hms1 hms2 hms3
HMS Converte HMS para o formato decimal. hms x
HMS Converte um nmero decimal para o formato hms. x hms
HOME Seleciona o diretrio HOME.
i Constante simblica i.
IDN Cria uma matriz identidade de um tamanho especificado. n [matriz]
IF Comea a estrutura de deciso IF...THEN..[ELSE]...END
IFERR Comea a estrutura de erro IFERR...THEN..[ELSE]...END
IFT Comando IFT/THEN T/F objverd
IFTE Comea a estrutura de deciso IFTE...THEN..[ELSE]...END T/F objverd objfalso
IM Devolve a parte imaginria de um nmero. (x,y) y
INCR Incrementa e devolve o valor da varivel especificada. nome x
INV Inverso. z 1/z
IP Parte inteira de um nmero. x IP(x)
ISOL Isola a varivel especificada de um lado da equao. symb1 nome nome=symb2
KEY Devolve um nmero indicando a ltima tecla pressionada. 0 ou lc.p 1
KILL Aborta todos os programas suspensos na memria.
LAST Igual a LASTARG
LASTARG Devolve o ltimo argumento da pilha.
LCD Obtem a imagem atual do display em forma de tela grfica. grob
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
LCD Mostra um objeto grfico. grob
LINE Traa uma linha entre dois pontos. point1 point2
LIST Cria uma lista a partir dos objetos do stack. obj1...objn n {obj1...objn}
LIST Separa uma lista. {obj1...objn} obj1...objn n
LN Logartmo neperiano. z LN(z)
LNP1 Logartmo neperiano de (x+1). x LN(x+1)
LOG Logartmo base 10. z LOG(z)
MAX O maior nmero entre dois. x y MAX(x,y)
MEM Memria disponvel ao usurio. x
MENU Cria um menu de usurio. { obj... }
NEG Negativo do argumento do nvel 1. z -z
NEWOB Cria uma nova cpia do objeto. obj obj
NOT NOT lgico ou binrio. #n1 NOT #n1
NUM Devolve o cdigo do primeiro caractere da string. string n
NUM Avalia objetos no modo numrico. obj
OBJ Devolve os componentes do objeto na pilha.
OCT Fixa a base octal.
OFF Desliga a calculadora.
OR OR lgico ou binrio. #n1 #n2 #n1 OR #n2
ORDER Reordena os diretrios. { name .... }
OVER Duplica o objeto do nvel 2. obj1 obj2 obj1 obj2 obj1
PATH Devolve o caminho do diretrio atual. { HOME name ... }
PDIM Muda o tamanho da tela grfica. #nlargura #naltura
PERM Permutao de n objetos tomados de m em m. n m P n,m
PGDIR Elimina um diretrio. nome
PICK Copia o objeto do nvel n para o nvel 1. obj1...objn n obj1...objn obj1
PICT Devolve a PICT para o nvel 1. PICT
PIXOFF Apaga um determinado ponto da tela grfica. point
PIXON Acende um determinado ponto da tela grfica. point
PIX? Verifica se um determinado ponto da tela grfica est aceso. point T/F
POS Devolve a posio de um objeto em uma lista ou string. {obj ....} objproc npos
PURGE Apaga um ou mais variveis. nome
PUT Insere em uma lista ou formao um determinado objeto. [array1] indez z [array2]
PUTI Igual a PUT, porm incrementa o ndice. [array1] indez z [array2] indez2
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
PVIEW Mostra a tela grfica a partir de um determinado ponto. point
PXC Converso de unidades de pontos para unidades de usurio. { #n #m } (x,y)
Q Converte nmeros a suas fraes equivalentes. x symb
Q Compara coecientes e tenta por o nmero sob forma de pi*a/b x symb
RAD Fixa o mode radianos
RAND Devolve um nmero aleatrio 0 < x < 1. x
RCL Devolve o contedo de uma varivel para a pilha. nome obj
RCLALARM Devolve um alarme da lista de alarmes do sistema. nalarm { alarm }
RCLF Devolve o estado dos flags do sistema e do usurio. { #system #user }
RCLKEYS Devolve a lista da ligaes das teclas de usurio. {obj lc.p... objn lc.pn}
RCLMENU Devolve a posio da pgina do menu atual. x
RCWS Obtm o tamanho do maior inteiro binrio. n
RDM Redimensiona uma formao. [array1] {dim} [arry2]
RE Devolve a parte real de um nmero (x,y) x
RECN Recebe um programa via Kermit e o guarda na varivel especific. nome
RECV Recebe um programa via Kermit. (entre HP-HP ou PC-HP)
REPL Adiciona em uma lista, string, objeto grfico ou PICT o objeto
especificado no nvel 1, na posio no nvel 2. obj1 objpos obj2 obj3
RESTORE Restaura um Backup armazenado via Kermit. :n: nome
ROLL Move o objeto do nvel n para o nvel 1. obj1...objn n obj1...objn obj1
ROLLD Move o objeto do nvel 1 para o nvel n. obj1...objn n objn obj1...objn-1
ROT Move o objeto do nvel 3 para o nvel 1. obj1 obj2 obj3 obj2 obj3 obj1
RB Converso de real para binrio. n #n
RC Converso de real para complexo. x y (x,y)
RD Converso de radianos para graus. xrad xgraus
SAME Testa a igualdade de dois objetos. obj1 obj2 T/F
SCI Fixa o modo cientfico.
SCONJ Conjuga o contedo de uma varivel. nome
SEND Envia um programa, um diretrio, ou uma lista de programas e
diretrios via Kermit. (entre HP-HP ou HP-PC) { nome1 nome2 ... }
nome
SERVER Seleciona o modo servidor via Kermit.
SF Habilita o flag indicado. m
SIGN Devolve o sinal do nmero. z1 z2
SIN Calcula o seno de um nmero. z sin(z)
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
SINH Calcula o seno hiperblico de um nmero. z sinh(z)
SINV Atualiza o contedo de uma varivel com a sua inversa. nome
SIZE Obtem o tamanho do objeto. obj n ou {dim}
SNEG Nega o contedo de uma varivel nome
SQ Eleva ao quadrado o objeto do nvel 1. z z^2
START Comea a estrutura START...NEXT ou START...STEP
STD Seleciona o modo standar.
STEP Termina o lao definido incrementando o contador em n. n
STEQ Armazena a equao em EQ symb
STO Armazena um objeto em uma varivel especificada. obj nome
STOALARM Armazena um alarme na lista de alarmes do sistema. time nalarm
STOF Restaura os flags do sistema e do usurio. { #system #user }
STOKEYS Faz mltiplas ligaes de objetos a teclas de usurio. {obj lc.p... objn lc.pn}
STO+ Atualiza o valor da varivel com o valor especificado (soma). z nome
STO- Atualiza o valor da varivel com o valor especificado (subtrao). z nome
STO* Atualiza o valor da varivel com o valor especificado (multiplic). z nome
STO/ Atualiza o valor da varivel com o valor especificado (diviso). z nome
STR Executa objetos contidos em cadeias. string
STR Converte o objeto do nvel 1 em uma cadeia de caracteres. obj string
STWS Fixa o tramanho das palavras em binrio. n
SUB Extrae parte de uma lista, cadeia, mastriz, obj grficos ou PICT obj1 ninicio nfim obj2
SWAP Troca de posio os objetos dos nveis 1 e 2. obj1 obj2 obj2 obj1
SYSEVAL Avalia um objeto do sistema interno da calculadora a partir de um
endereo especificando o incio do objeto external ou code. #n BUM
TAG Liga a um objeto do nvel 2 uma etiqueta identificando o obj. obj tag :tag: obj
TAN Tangente. z tan(z)
TANH Tangente Hiperblica. z tanh(z)
TICKS Devolve a hora como inteiro binrio em unidades de TICKS. #ticks
TIME Devolve a hora atual como um nmero no formato HMS. time
TIME Atualiza o clock da calculadora. time
TLINE Desenha uma linha entre dois pontos usando XOR. point1 point2
TMENU Cria um menu de usurio temporrio. { obj1 ... objn }
TSTR Converte a data e a hora para o formato de string: date time data time data time
TVARS Devolve uma lista das variveis de um determinado tipo. ntipo { global ... }
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
TYPE Devolve o nmero identificando o tipo do objeto. obj ntipo
UBASE Converte o objeto de unidades em unidades bsicas do SI. x_unit y_base-unts
UFACT Fatora uma determinada unidade em um objeto de unidades. x1_unit1 x2_unit2 x3_unit2*unit3
UNIT Pega a unidade do objeto do nvel 2 e coloca no obj do nvel 1. x_units y y_units
UNTIL Comea a estrutura UNTIL.
UPDIR Sobe um diretrio do nvel atual.
UVAL Devolve a parte numrica de um objeto de unidade. x_unts x
VARS Devolve a lista de variveis do diretrio atual. { global ...}
VTYPE Devolve o nmero do tipo do obj armazenado na varivel. nome ntipo
V2 Cria um vetor a partir de dois nmeros. x1 x2 [x1 x2]
V3 Cria um vetor a partir de trs nmeros. x1 x2 x3 [x1 x2 x3]
V Separa um vetor em seus componentes. [ x1 x2] x1 x2
WAIT Detm a execuo de um programa por n segundos. n
XOR Ou-exclusivo lgico ou binrio. #n1 #n2 #n1 XOR #n2
! Fatorial de um nmero. n n!
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
Index
A
ANALISE DE TCNICAS DE PROGRAMAO 42
C
COMANDOS DE ENTRADA 37
COMANDOS DE SADA 35
COMANDOS DE COMUNICAO SERIAL 51
COMANDOS DE TRANSFRENCIA DE DADOS 51
COMANDOS GRFICOS 39
COMUNICAO HP-HP 49
COMUNICAO HP-PC 50
COMUNICAO SERIAL 49
D
Diretrios 13
E
ESTRUTURAS CONDICIONAIS 26
ESTRUTURAS CONDICIONAIS E TESTES 24
ESTRUTURAS ITERATIVAS 31
Execuo de um Programa Passo-a-Passo 24
F
Fundamentos de Programao 19
G
Guia de Referncia dos Comandos 52
I
Introduo ao Curso 5
L
Legendas 52
M
Memria 14
O
Objetos 11
P
Pilha 9
PROGRAMAO 19
PROGRAMAS INTERATIVOS 35
Programas que Manipulam Dados na Pilha 23
Curso de Programao HP48G/GX Luciano Ribas / Anderson Juarez
S
Sistema de Unidades 16
SOLVER AVANADO 18
SOLVER BSICO 17
V
Variveis Locais 21

Você também pode gostar