Sei sulla pagina 1di 48

CURSO DE PROGRAMAO HP48G/GX

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:

O site da Eletrnica Manual HP48G/GX

- 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.

Organizao do teclado:
O teclado da HP48 dispe de vrios "nveis". Cada tecla tem uma funo primria que aparece impressa em branco na prpria tecla - por exemplo, [ENTER], [+], [<-]. Trs dentre as teclas primrias redefinem as aes das demais teclas. Estas teclas, e suas combinaes principais so as seguintes: - [ ] (chamada de shift esquerdo), ativa as definies em roxo sobre as teclas. - [ ] (chamada de shift direito), ativa as definies em verde sobre as teclas. - [] (chamada de tecla Alpha), ativa os caracteres impressos em branco correspondentes s teclas usadas na escrita de palavras. - [] + [ ] ativa os caracteres minsculos, e alguns caracteres especiais para o teclado numrico. - [] + [ ] ativa os caracteres especiais em todo teclado alfanumrico.

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]
http:www.li.facens.br/eletronica 2

O site da Eletrnica Manual HP48G/GX

- 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. [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 infravermelha, 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 )
http:www.li.facens.br/eletronica 3

O site da Eletrnica Manual HP48G/GX

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. 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.

http:www.li.facens.br/eletronica 4

O site da Eletrnica Manual HP48G/GX

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).

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
http:www.li.facens.br/eletronica 5

O site da Eletrnica Manual HP48G/GX

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.

Usando a Pilha em Clculos:


Agora iremos desenvolver o "Racioccio 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 b) 10^22-32 c) (10^22-32) ap ague o stack, redigite e encontre: a) 10*22+22/10 b) (10*22+22/10)-x c) ((10*22+22/10)-x) + ((10*22+22/10)-

{ HOME }

4: 3: 2: 1: x)/32

'x' 32 22 10

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 - /

http:www.li.facens.br/eletronica 6

O site da Eletrnica Manual HP48G/GX

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] A seguir temos as opes de comando disponveis dentro da Pilha Interativa: tecla: [ECHO] Descrio: - 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.
http:www.li.facens.br/eletronica 7

O site da Eletrnica Manual HP48G/GX

Lista dos objetos: Nome do Objeto tipo: nmero real 0 nmero complexo 1 string 2 matriz real 3 matriz complexa 4 listas 5 nome global 6 20 nome local 7 programa 8 objeto algbrico 9 inteiro binrio 10 objetos grficos 11 targged objeto 12 objeto unidade 26-31 XLIB name

Nome do Objeto diretrio library backup objeto inicio funes inicio comandos Objetos de sistema: sistema binrio extend real extend complex matriz linkada character objeto CODE Library data External objeto 14

tipo 15 16 17 18 19

21 22 23 24 25 26

13

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.99999999999x10499 at 9.99999999999x10499) - 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, mostrandoos 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" - 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.
http:www.li.facens.br/eletronica 8

O site da Eletrnica Manual HP48G/GX

- 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. { HOME } { CALC } [PRG1] [PRG2] {GRAPH} [A] [B] {SOUND} {JOGOS}

[WAV1] [WAV2] [TETRIS] [ANTS]

http:www.li.facens.br/eletronica 9

O site da Eletrnica Manual HP48G/GX

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: [ [EDIT] [CHOOSE] [PURG] [VEHK] MEMORY] [COPY] [MOVE] [RCL]

[NEW]

[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

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] [PATH] [CRDIR] [PGDIR] [VARS] [CRDIR] [PGDIR] [VARS] [TVARS] [ORDER]

retorna o caminho dos diretrios desde {HOME} at o diretrio corrente. cria um diretrio a partir de um nome para o diretrio apaga um diretrio e todo o seu contedo retorna uma lista contendo o nome de todas as variveis do diretrio
http:www.li.facens.br/eletronica 10

O site da Eletrnica Manual HP48G/GX

[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.

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.

http:www.li.facens.br/eletronica 11

O site da Eletrnica Manual HP48G/GX

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.

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.

http:www.li.facens.br/eletronica 12

O site da Eletrnica Manual HP48G/GX

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: AoXn + A1Xn-1 + . . . + An-1X1 + AnXo = 0 Coeficientes [An An-1 . . . A1 Ao]: 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.

SOLVE LINEAR SYSTEM


Utilizado para resolver sistemas de equaoes lineares da forma: A.X = B a1 x + a2y + a3z = b1
http:www.li.facens.br/eletronica 13

O site da Eletrnica Manual HP48G/GX

a4 x + a5y + a6z = b2 a7 x + a8y + a9z = b3 a1 a4 a7 a2 a5 a8 a3 a6 a9 x y z b1 b2 b3

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: { 'EQ1' 'EQ2' 'EQ3' 'EQ4' . . . 'EQn' } - 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.

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.

http:www.li.facens.br/eletronica 14

O site da Eletrnica Manual HP48G/GX

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). 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: 2: Resultados: 2:

http:www.li.facens.br/eletronica 15

O site da Eletrnica Manual HP48G/GX

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: << '1/3 *pi*H^2 *(3*R-H)' Teclas: [<< >>] ['] 1 [/] 3 [*] pi [*] H [ Yx ] 2 [*] [( )] 3 [*] R [-] H [] [ ] [NUM] Comentrios: Comea o programa. Comea a expresso algbrica para calcular o volume. Multiplica por h .

NUM >>

Multiplica por 3r-h, completando o clculo e finalizando a expresso. 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

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: <<
http:www.li.facens.br/eletronica 16

O site da Eletrnica Manual HP48G/GX

'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: << ou <<

nome1 nome2 . . . nomen << programa >> >> nome1 nome2 . . . nomen 'expresso algbrica' >>

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: 2: 1: 10 6 20

http:www.li.facens.br/eletronica 17

O site da Eletrnica Manual HP48G/GX

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: 2: r 1: h Resultados: 2: 1: volume

Programa: <<

Comentrios:

r h
<< '1/3* *h^2*(3*r-h)'

Cria as variveis locais r e h para guardar o raio e a altura da esfera. Procedimento para a estrutura de variveis locais no qual as variveis locais so vlidas. Converte a expresso para um nmero.

NUM
>> >> [ENTER] ['] SPHVL [STO]

Coloca o programa na pilha. 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

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:

http:www.li.facens.br/eletronica 18

O site da Eletrnica Manual HP48G/GX

- 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: 2: r 1: h Resultados: 2: 1: volume

Programa: << DUP ROT 3 * SWAP SWAP SQ *

Comentrios:

Duplica o nmero do nvel 1 da pilha. Move o nmero que se encontra no nvel 3 para o nvel 1. Multiplica o raio por 3. Troca os nmeros do nvel 1 (altura) pelo 2 (raio) e calcula 3r-h. Troca a cpia da altura pelo nvel 1, acha a raiz quadrada da altura e multiplica por 3r-h. Multiplica por pi e divide por 3, completando o clculo. Converte a expresso para um nmero. Coloca o programa na pilha.

pi

NUM
>> [ENTER]

['] SPHSTACK [STO] Armazena o programa na varivel SPHSTACK.

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
http:www.li.facens.br/eletronica 19

O site da Eletrnica Manual HP48G/GX

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.

Exemplo: Estruturas Condicionais e Testes


http:www.li.facens.br/eletronica 20

O site da Eletrnica Manual HP48G/GX

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: << DUP2 IF SAME THEN DROP 'V1' STO ELSE 'V1' STO 'V2' STO END >> [ENTER] ['] TST [STO] Termina a digitao do programa. Grava o programa da pilha em TST. Duplica os nmeros dos nveis 1 e 2 da pilha. Comea a estrutura de teste condicional. Verifica se os dois nmeros so iguais. Executa somente se o teste retornou verdadeiro. Apague um e armazena o outro na varivel V1 Executa somente se o teste retornou falso. Armazene o nmero do nvel 1 em V1 e o nmero do nvel 2 em V2. Termina a estrutura condicional. Comentrios:

Comandos de Testes
Um teste uma sequncia 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

Funes de Comparao:
< > menor que maior que

http:www.li.facens.br/eletronica 21

O site da Eletrnica Manual HP48G/GX

< > == = SAME

menor ou igual maior ou igual igual diferente igual (+ rpido que ==) retorna 1 se os dois argumentos so V. retorna 1 se um ou os dois argumentos so V. retorna 1 se um ou outro V mas no os dois. retorna 1 se o argumento for F.

Funes Lgicas:
AND OR XOR NOT

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) 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:
http:www.li.facens.br/eletronica 22

O site da Eletrnica Manual HP48G/GX

Programa: <<

Comentrios:

x y
<< IF 'x=0' 'y=0' AND THEN x y * END >> >>

Cria variveis locais x e y que contm os dois nmeros da pilha. Comea a estrutura de teste condicional. Verifica se o nmero diferente de zero, deixando o resultado do teste na pilha. Verifica se o nmero diferente de zero, deixando o resultado do teste na pilha. Verifica se os dois testes so verdadeiros. Executa somente se o teste retornou verdadeiro. Se AND devolver verdade, multiplica os dois nmeros. 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.

A Estrutura IF...THEN...ELSE...END
http:www.li.facens.br/eletronica 23

O site da Eletrnica Manual HP48G/GX

IF...THEN...ELSE...END executa uma sequncia 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
<< IF 'n1=0 AND n2=0' THEN n1 n2 * ELSE "ZERO" END >> >>

Armazena nas variveis locais os nveis 1 e 2 da pilha. Comea a estrutura de teste condicional. Verifica se ambos os nmeros so diferentes de zero, deixando o resultado do teste na pilha. Executa somente se o teste retornou verdadeiro. Se AND devolver verdade, multiplica os dois nmeros. Executa somente se o teste retornou falso. Devolve a cadeia "ZERO" Termina a estrutura condicional.

O seguinte programa tem o mesmo efeito: << DUP2 AND IF THEN * ELSE DROP2 "ZERO" END >>

http:www.li.facens.br/eletronica 24

O site da Eletrnica Manual HP48G/GX

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
<< CASE y TYPE 2 SAME THEN y 'STR' STO END y TYPE 5 SAME THEN y 'LIST' STO END y TYPE 8 SAME THEN y 'PRG' STO END END >>

Armazena o argumento na variveis local y.

Comea a estrutura do case. Case 1: se o argumento do tipo cadeia, armazene-o na varivel 'STR' Case 2: se o argumento do tipo lista, armazene-o na varivel 'LIST' Case 3: se o argumento do tipo programa, armazene-o na varivel 'PRG' Termina a estrutura case.
http:www.li.facens.br/eletronica 25

O site da Eletrnica Manual HP48G/GX

>> 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 >> 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.
http:www.li.facens.br/eletronica 26

O site da Eletrnica Manual HP48G/GX

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.

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.

http:www.li.facens.br/eletronica 27

O site da Eletrnica Manual HP48G/GX

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.

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.
http:www.li.facens.br/eletronica 28

O site da Eletrnica Manual HP48G/GX

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: Programa: << DUP 1 n s c << DO 'c' INCR n * 's' STO+ UNTIL s 10000 > END s 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
http:www.li.facens.br/eletronica 29

Comentrios:

Duplica n e armazena o valor em n e s; inicializa o contador c com 1. Comea a estrutura do. Incrementa o contador em 1 e devolve para a pilha o novo valor de c. Calcula c*n, e soma o produto a s. Comea a estrutura de teste. Repete o lao at que s>10000. Termina a clusula de teste. Coloca na pilha s e c.

O site da Eletrnica Manual HP48G/GX

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 >> 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" 2: 1 1: DISP << 1 100 FOR n mostrar na primeira linha do display a string "Isto um teste" mostrar na segunda linha do display
http:www.li.facens.br/eletronica 30

O site da Eletrnica Manual HP48G/GX

n 2 DISP NEXT >>

uma contagem de 1 at 100.

<<

DUP SIZE 1 SWAP FOR n DUP n n SUB 1 DISP NEXT

mostrar na tela da calculadora uma letra por vez de uma string

>>

CLLCD
Limpa a tela da calculadora. Exemplo: << CLLCD "EU SEI PROGRAMAR" 1 DISP >> mostra um messagem na tela.

<< 1 1000 FOR n CLLCD n SIN 1 DISP NEXT >>

calcula e mostra o seno dos nmeros de 1 a 1000.

BEEP
Emite um beep com uma frequncia e uma durao especificadas. Exemplo: << >> << CLLCD 1 20000 FOR f f 1 DISP f .3 BEEP 20 STEP >> 600 .7 BEEP 1300 .2 BEEP emite um beep de 600Hz durante .7s emite um beep de 1300Hz durante .2s

exibe na tela o valor da freq. do beep emite um beep com uma freq. f durante .2s

FREEZE
Congela uma determinada rea do display: 1 FREEZE - rea de status 2 FREEZE - rea da pilha 4 FREEZE - rea do menu << "ABC
http:www.li.facens.br/eletronica 31

O site da Eletrnica Manual HP48G/GX

DEF GHI" CLLCD 1 DISP 3 FREEZE >>

congela a rea do status+pilha (3=1+2)

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 800 .4 900 >> .4 BEEP .2 BEEP WAIT .5 BEEP << "Pressione qualquer tecla..." 1 DISP 3 FREEZE -1 WAIT "A tecla pressiona :" SWAP + 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 >>

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:
http:www.li.facens.br/eletronica 32

O site da Eletrnica Manual HP48G/GX

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: 2: 1: "Escolha a opo:" - pequena string que ser exibida no topo da caixa. { "LER" "GRAVAR" << 1 >> 'C' } - lista contendo as opes (objetos). 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.

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) coordenadas - plot

{ #0 #63 } { #130 #63 } coordenadas - grob

http:www.li.facens.br/eletronica 33

O site da Eletrnica Manual HP48G/GX

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.

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
http:www.li.facens.br/eletronica 34

O site da Eletrnica Manual HP48G/GX

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.

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.
http:www.li.facens.br/eletronica 35

O site da Eletrnica Manual HP48G/GX

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).

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 prdeterminadas, construindo o programa com um fluxo lgico que seja consistente dentro de cada trecho do programa (mdulos).
http:www.li.facens.br/eletronica 36

O site da Eletrnica Manual HP48G/GX

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 (passoa-passo). Os programas abaixo foram transferidos da HP para o computador pelo kermit utilizando translate code igual a 3.

http:www.li.facens.br/eletronica 37

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+xy+ 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+xyIF DUP 1< THEN DUP c / IP 1 + c * + END 2 \->LIST GET * NEXT + NEXT "DET:" SWAP + MSGBOX m \>> END THEN CLEAR ERRN DOERR END \>>

" 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 == 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

2-Agenda de Telefones e Aniversrios.


%%HP: T(3)A(D)F(.); DIR AGEN \<< CLLCD BIB

O site da Eletrnica Manual HP48G/GX 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 \>> 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

http:www.li.facens.br/eletronica 39

"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 LUCIANO NOVAL END END END

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]

COMUNICAO HP-PC
A transferncia entre a calculadora e o computador praticamente igual ao processo descrito acima, com algumas modificaes:

O site da Eletrnica Manual HP 48 G/GX

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

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.
http://www.li.facens.br/eletronica 42

O site da Eletrnica Manual HP 48 G/GX

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).

http://www.li.facens.br/eletronica 43

O site da Eletrnica Manual HP 48 G/GX

Legendas
legenda
[array] date {dim} 'nome' grob hms index LID {list} mn [matriz] #n obj

Descrio
Vetor ou matriz real ou complexa. Data na forma MM.DDAAAA ou DD.MMAAAA. Lista de dimenso da formao. Nome global. Objeto grfico. Formato horas minutos segundos (H.MMSSs). Nmero real especificando um elemento de um obj. Nmero de biblioteca. Lista de objetos. Nmero real ou inteiro positivo. Matriz real ou complexa. Inteiro binrio. Qualquer objeto.

legenda
PICT point lc.p (r,) "string" 'symb' V/F time [vector] xy x_unit (x,y) z

Descrio
Objeto grfico atual. Ponto {#n #m} de tela ou (x,y) de plot eq. linha, coluna e plano de tecla. Nmero complexo na forma polar. Cadeia de caracteres. Expresso, equao ou nome tratado como algebrico. Resultado de um teste (verdadeiro ou falso). Tempo na forma HH.MMSSs. Vetor real ou complexo. Nmero real. Objeto de unidade. Nmero complexo na forma retangular. Nmero real ou complexo.

Guia de Referncia dos Comandos


Comando
ABS ACK ACKALL ACOS ACOSH ALOG AND APPLY ARC ARCHIVE ARG ARRY ARRY ASIN ASINH ASN ASR ATAN ATANH ATTACH AUTO AXES BAR BARPLOT BAUD BEEP BESTFIT BIN BINS BLANK BOX BUFLEN BYTES BR

Descrio
Valor Absoluto. Reconhecimento de alarme vencido no display. Reconhecimento de todos os alarmes passados no display. Arco-cosseno. Arco-cosseno hiperblico. Antilogartimo comum (base 10). AND lgico ou binrio. Devolve expresses avaliadas como argumentos a nomes locais sem avaliar. Desenha um arco em PICT com um ponto central especificado, raio, e ngulo de incio e fim. Faz uma cpia de segurana do diretrio HOME Devolve o ngulo polar O. Separa uma formao Cria uma formao Arcosseno. Arcosseno Hiperblico. Liga uma objeto a uma tecla do modo de usurio. Rotao aritmtica para direita de 1 bit. Arcotangente. Arcotangente hiperblica. Liga uma biblioteca ao diretrio atual Auto-escala o eixo y Fixa as coordenadas de interseco dos eixos. Seleciona o traado BAR. Plota o diagrama de barra dos dados de DAT. Fixa a taxa de transferncia. Emite um beep Seleciona o modo de traado que produz o maior valor absoluto do coeficiente de correlao LR. Fixa a base binria. Ordena os elementos na coluna de variveis independentes de DAT em n+2 casas. Cria um objeto grfico vazio. Desenha um quadrado a partir de dois cantos opostos. Devolve o nmero de caracteres no buffer da serial. Devolve o checksum e o tamanho em bytes de um objeto. Converte binrio para real.

Entrada
z |z|

Sada

z z z #n1 #n2 'nome' {symb ...} point xr x1 x2 :n: name z [array] z1 ... zn {dim} z z obj lc.p #n1 z z LID point point nbaud nfreq ndurao

acos(z) acosh(z) 10^z #n1 AND #n2

x z1 ... zn {dim} [array] asin(z) asinh(z) #n2 atan(z) atanh(z)

xmin xcolunas nbins #ncolunas #nlinhas point1 point2 obj #n

[[b1]...[bn]][b<b>] grob n #nchecksum xtam n

http://www.li.facens.br/eletronica 44

O site da Eletrnica Manual HP 48 G/GX


CASE CEIL CENTR CF %CH CHR CKSM CLEAR CLKADJ CLLCD CLOSEIO CLUSR CLVAR CL CNRM COLCT COL COMB CON CONIC CONJ CONT CONVERT CORR COS COSH COV CR CRDIR CROSS CPX CR DATE DATE+ DATE DDAYS DEC DECR DEFINE DEG DELALARM DELAY DELKEYS DEPND DEPTH DET DETACH DISP DO DOERR DOT DRAW DRAX DROP DROPN DROP2 DTAG DUP DUPN DUP2 DR e ELSE END ENG Comea a estrutura CASE... THEN ... END ... END Devolve o nmero inteiro seguinte. Fixa o centro da tela do plot no ponto. Desativa um flag especfico. Calcula o variao percentual. Converte o cdigo de um caracter em uma cadeia de um caracter. Fixa o tipo de checksum de E/S. Apaga todos os dados no stack. Ajusta o clock da calculadora em ticks. (1/8192 seg) Limpa a tela. Fecha a porta serial. Igual a CLVAR Apaga todas as variveis de usurio no diretrio atual. Apaga DAT. Calcula a norma da coluna de uma matriz. Une termos semelhante de uma expresso. Seleciona as colunas de estatstica independente e dependentes Calcula as combinaes de n elementos tomados de m em n Cria uma matriz constante. Seleciona o modo de traado cnico. Devolve o conjugado de um complexo. Continua a execuo de um programa. Executa converso de unidades. Calcula o coeficiente de correlao. Cosseno. Cosseno hiperblico. Calcula a variana. Retorno do carro/salto de linha. Cria um diretrio. Produto vetorial de vetores. Converso de unidades do usurio a coordenadas na tela. Converso de nmero complexo em real. Devolve a data corrente. Soma a uma data um determinado nmero de dias. Ajusta a data corrente. Nmero de dias entre duas datas. Fixa o modo decimal. Decrementa e devolve o valor de uma varivel especificada. Cria uma varivel ou funo definida pelo usurio. Fixa o modo de graus. Apaga um alarme da lista de alarmes do sistema. Fixa o tempo entre as linhas impressas. Desativa as ligaes de programas s teclas do modo usurio. Especifica o nome da varivel dependente para o plot. Devolve o nmero de objetos do stack. Determinante de uma matriz. Desconecta uma biblioteca do diretrio atual. Mostra o objeto na linha especificada. Comea a estrutura DO...UNTIL...END. Aborta a execuo de um programa, mostra a msg de erro. Produto escalar de dois vetores. Traado da funo em EQ. Traado dos eixos. Elimina o objeto do nvel 1 do stack. Elimina n objetos do stack. Elimina dois objetos do stack. Apaga todas as etiquetas do objeto. Duplica o objeto do nvel 1 do stack. Duplica n objetos do stack. Duplica os objetos dos nveis 1 e 2 do stack. Converso de graus em radianos. Constante simblica e (2.71828182846). Comea a estrutura ELSE. Acaba estruturas de programas. Fixa o modo de engenharia. x point m xinicial yfinal n nchecksum obj1...objn nmarcas n

x% "string"

[array] 'symb'1 nind ndepen n m {dim} z [array] x1_unit1 x2_unit2 z z

xnormacoluna 'symb'2 Cn,m [array] [array*] x3_unit2 xcorrelacion cos(z) cosh(z) xcovariana

'nome' [vetor1] [vetor2] (x,y) (x,y) date ndias date date1 date2 'nome' 'symb' nalarme x lc.p 'nome' [matriz] LID obj nlinha "string" [array] [array]

[vetor3] {#n #m} x y date date2 ndias x

n xdet

obj obj1...objn n obj1 obj2 :tag:obj obj obj1...objn n obj1 obj2 xgraus

obj obj obj obj1...objn obj1...objn obj1 obj2 obj1 obj2 xrad

ncasas

http://www.li.facens.br/eletronica 45

O site da Eletrnica Manual HP 48 G/GX


EQ ERASE ERRM ERRN ERRO EVAL EXP EXPAN EXPFIT EXPM FC? FC?C FINDALARM FINISH FIX FLOOR FOR FP FREE FREEZE FS? FS?C FUNCTION GET GETI GOR GRAD GRAPH GROB GXOR HALT HEX HMS+ HMSHMS HMS HOME i IDN IF IFERR IFT IFTE IM INCR INV IP ISOL KEY KILL LAST LASTARG LCD LCD LINE LIST LIST LN LNP1 LOG MAX MEM MENU NEG NEWOB Separa equaes nos lados direito e esquerdo. Apaga PICT. Retorna a ltima mensagem de erro. Devolve o nmero do ltimo erro. Apaga o timo nmero da mensagem de erro. Avalia um objeto Eleva a potncia exponencial o objeto do nvel 1. Expande o objeto algbrico. Fixa o modelo de regresso para a curva exponencial. Exponencial naturalo menos 1. Comprova se o flag especificado est desativado. Comprova se o flag est desativado, se no o ativa. Devolve o alarme da hora especificada. Termina com o modo server do Kermit. Seleciona o modo FIX. Inteiro seguinte mais pequeno. Comea a estrutura FOR ... NEXT ou FOR ... STEP Devolve a parte fracionria de um nmero. Libera a memria ligada. Congela uma determinada rea do display. Comprova se o flag especificado est ativo. Comprova se o flag especificado est ativo, se no o ativa. Seleciona o traado de grficos no modo FUNCTION. Obtem elementos de uma formao ou lista. Obtem elementos de uma formao ou lista e incremente o ndice. Sobrepe o grfico do nvel 1 sobre o do nvel 3 no ponto especif. Seleciona o moo radianos. Ativa o modo grfico. Converte uma cadeia de caracteres em um objeto grfico. Usa um OR-exclusivo para sobrepor dois grficos. Suspende a execuo de um programa. Fixa o modo hexadecimal. Soma em formato HMS. Subtrao no formato HMS. Converte HMS para o formato decimal. Converte um nmero decimal para o formato hms. Seleciona o diretrio HOME. Constante simblica i. Cria uma matriz identidade de um tamanho especificado. Comea a estrutura de deciso IF...THEN..[ELSE]...END Comea a estrutura de erro IFERR...THEN..[ELSE]...END Comando IFT/THEN Comea a estrutura de deciso IFTE...THEN..[ELSE]...END Devolve a parte imaginria de um nmero. Incrementa e devolve o valor da varivel especificada. Inverso. Parte inteira de um nmero. Isola a varivel especificada de um lado da equao. Devolve um nmero indicando a ltima tecla pressionada. Aborta todos os programas suspensos na memria. Igual a LASTARG Devolve o ltimo argumento da pilha. Obtem a imagem atual do display em forma de tela grfica. Mostra um objeto grfico. Traa uma linha entre dois pontos. Cria uma lista a partir dos objetos do stack. Separa uma lista. Logartmo neperiano. Logartmo neperiano de (x+1). Logartmo base 10. O maior nmero entre dois. Memria disponvel ao usurio. Cria um menu de usurio. Negativo do argumento do nvel 1. Cria uma nova cpia do objeto. 'symb1=symb2' obj z 'symb1' x mflag mflag date ncasas x x { name/LID } nporta n mflag mflag [array] index [array] index1 grob1 point grob2 'symb1' 'symb2' "mensagem de erro" #n ... e^z 'symb2' e^x-1 T/F T/F nalarm

n FP(x) T/F T/F T/F z [array] index2 z grob3

"string" nsize grob1 point grob2

grob grob3

hms1 hms2 hms1 hms2 hms x

hms3 hms3 x hms

[matriz]

T/F objverd T/F objverd objfalso (x,y) 'nome' z x 'symb1' 'nome'

y x 1/z IP(x) 'nome=symb2' 0 ou lc.p 1

grob

grob point1 point2 obj1...objn n {obj1...objn} z x z x y { obj... } z obj

{obj1...objn} obj1...objn LN(z) LN(x+1) LOG(z) MAX(x,y) x -z obj

http://www.li.facens.br/eletronica 46

O site da Eletrnica Manual HP 48 G/GX


NOT NUM NUM OBJ OCT OFF OR ORDER OVER PATH PDIM PERM PGDIR PICK PICT PIXOFF PIXON PIX? POS PURGE PUT PUTI PVIEW PXC Q Q RAD RAND RCL RCLALARM RCLF RCLKEYS RCLMENU RCWS RDM RE RECN RECV REPL RESTORE ROLL ROLLD ROT RB RC RD SAME SCI SCONJ SEND SERVER SF SIGN SIN SINH SINV SIZE SNEG SQ START STD STEP NOT lgico ou binrio. Devolve o cdigo do primeiro caractere da string. Avalia objetos no modo numrico. Devolve os componentes do objeto na pilha. Fixa a base octal. Desliga a calculadora. OR lgico ou binrio. Reordena os diretrios. Duplica o objeto do nvel 2. Devolve o caminho do diretrio atual. Muda o tamanho da tela grfica. Permutao de n objetos tomados de m em m. Elimina um diretrio. Copia o objeto do nvel n para o nvel 1. Devolve a PICT para o nvel 1. Apaga um determinado ponto da tela grfica. Acende um determinado ponto da tela grfica. Verifica se um determinado ponto da tela grfica est aceso. Devolve a posio de um objeto em uma lista ou string. Apaga um ou mais variveis. Insere em uma lista ou formao um determinado objeto. Igual a PUT, porm incrementa o ndice. Mostra a tela grfica a partir de um determinado ponto. Converso de unidades de pontos para unidades de usurio. Converte nmeros a suas fraes equivalentes. Compara coecientes e tenta por o nmero sob forma de pi*a/b Fixa o mode radianos Devolve um nmero aleatrio 0 < x < 1. Devolve o contedo de uma varivel para a pilha. Devolve um alarme da lista de alarmes do sistema. Devolve o estado dos flags do sistema e do usurio. Devolve a lista da ligaes das teclas de usurio. Devolve a posio da pgina do menu atual. Obtm o tamanho do maior inteiro binrio. Redimensiona uma formao. Devolve a parte real de um nmero Recebe um programa via Kermit e o guarda na varivel especific. Recebe um programa via Kermit. (entre HP-HP ou PC-HP) Adiciona em uma lista, string, objeto grfico ou PICT o objeto especificado no nvel 1, na posio no nvel 2. Restaura um Backup armazenado via Kermit. Move o objeto do nvel n para o nvel 1. Move o objeto do nvel 1 para o nvel n. Move o objeto do nvel 3 para o nvel 1. Converso de real para binrio. Converso de real para complexo. Converso de radianos para graus. Testa a igualdade de dois objetos. Fixa o modo cientfico. Conjuga o contedo de uma varivel. Envia um programa, um diretrio, ou uma lista de programas e diretrios via Kermit. (entre HP-HP ou HP-PC) Seleciona o modo servidor via Kermit. Habilita o flag indicado. Devolve o sinal do nmero. Calcula o seno de um nmero. Calcula o seno hiperblico de um nmero. Atualiza o contedo de uma varivel com a sua inversa. Obtem o tamanho do objeto. Nega o contedo de uma varivel Eleva ao quadrado o objeto do nvel 1. Comea a estrutura START...NEXT ou START...STEP Seleciona o modo standar. Termina o lao definido incrementando o contador em n. #n1 "string" obj NOT #n1 n

#n1 #n2 { name .... } obj1 obj2 #nlargura #naltura n m 'nome' obj1...objn n point point point {obj ....} objproc 'nome' [array1] indez z [array1] indez z point { #n #m } x x

#n1 OR #n2 obj1 obj2 obj1 { HOME name ... } P n,m obj1...objn obj1 PICT

T/F npos [array2] [array2] indez2 (x,y) 'symb' 'symb' x obj { alarm } { #system #user } {obj lc.p... objn lc.pn} x n [arry2] x

'nome' nalarm

[array1] {dim} (x,y) 'nome' obj1 objpos obj2

obj3

:n: nome obj1...objn n obj1...objn n obj1 obj2 obj3 n x y xrad obj1 obj2 'nome' { 'nome1' 'nome2' ... } 'nome' m z1 z z 'nome' obj 'nome' z

obj1...objn obj1 objn obj1...objn-1 obj2 obj3 obj1 #n (x,y) xgraus T/F

z2 sin(z) sinh(z) n ou {dim} z^2

http://www.li.facens.br/eletronica 47

O site da Eletrnica Manual HP 48 G/GX


STEQ STO STOALARM STOF STOKEYS STO+ STOSTO* STO/ STR STR STWS SUB SWAP SYSEVAL TAG TAN TANH TICKS TIME TIME TLINE TMENU TSTR TVARS TYPE UBASE UFACT UNIT UNTIL UPDIR UVAL VARS VTYPE V2 V3 V WAIT XOR ! Armazena a equao em 'EQ' Armazena um objeto em uma varivel especificada. Armazena um alarme na lista de alarmes do sistema. Restaura os flags do sistema e do usurio. Faz mltiplas ligaes de objetos a teclas de usurio. Atualiza o valor da varivel com o valor especificado (soma). Atualiza o valor da varivel com o valor especificado (subtrao). Atualiza o valor da varivel com o valor especificado (multiplic). Atualiza o valor da varivel com o valor especificado (diviso). Executa objetos contidos em cadeias. Converte o objeto do nvel 1 em uma cadeia de caracteres. Fixa o tramanho das palavras em binrio. Extrae parte de uma lista, cadeia, mastriz, obj grficos ou PICT Troca de posio os objetos dos nveis 1 e 2. Avalia um objeto do sistema interno da calculadora a partir de um endereo especificando o incio do objeto external ou code. Liga a um objeto do nvel 2 uma etiqueta identificando o obj. Tangente. Tangente Hiperblica. Devolve a hora como inteiro binrio em unidades de TICKS. Devolve a hora atual como um nmero no formato HMS. Atualiza o clock da calculadora. Desenha uma linha entre dois pontos usando XOR. Cria um menu de usurio temporrio. Converte a data e a hora para o formato de string: "date time" Devolve uma lista das variveis de um determinado tipo. Devolve o nmero identificando o tipo do objeto. Converte o objeto de unidades em unidades bsicas do SI. Fatora uma determinada unidade em um objeto de unidades. Pega a unidade do objeto do nvel 2 e coloca no obj do nvel 1. Comea a estrutura UNTIL. Sobe um diretrio do nvel atual. Devolve a parte numrica de um objeto de unidade. Devolve a lista de variveis do diretrio atual. Devolve o nmero do tipo do obj armazenado na varivel. Cria um vetor a partir de dois nmeros. Cria um vetor a partir de trs nmeros. Separa um vetor em seus componentes. Detm a execuo de um programa por n segundos. Ou-exclusivo lgico ou binrio. Fatorial de um nmero. 'symb' obj 'nome' time { #system #user } {obj lc.p... objn lc.pn} z 'nome' z 'nome' z 'nome' z 'nome' "string" obj n obj1 ninicio nfim obj1 obj2 #n obj "tag" z z nalarm

"string" obj2 obj2 obj1 BUM :tag: obj tan(z) tanh(z) #ticks time

time point1 point2 { obj1 ... objn } data time ntipo obj x_unit x1_unit1 x2_unit2 x_units y

"data time" { global ... } ntipo y_base-unts x3_unit2*unit3 y_units

x_unts 'nome' x1 x2 x1 x2 x3 [ x1 x2] n #n1 #n2 n

x { global ...} ntipo [x1 x2] [x1 x2 x3] x1 x2 #n1 XOR #n2 n!

http://www.li.facens.br/eletronica 48

Potrebbero piacerti anche