Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso hp48
Curso hp48
Departamento de Engenharia Industrial Eltrica nfase Eletrnica. UFPR Universidade Federal do Paran
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
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
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
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.
Modos de exibio
Ao se realizar uma operao matemtica sobre um determinado nmero, freqentemente deseja-se obtlo 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.
[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.
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).
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)
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.
Exerccios de Clculos:
Utilizando as funes [DUP] ,[SWAP] e [ROT] encontre as respostas ao lado:
b) 10^22-32 x 32 22 10 c) (10^22-32) apague 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)-x)/32
4: 3: 2: 1:
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]
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
Lista dos objetos: Nome do Objeto nmero real nmero complexo string matriz real matriz complexa listas nome global nome local programa objeto algbrico inteiro binrio objetos grficos targged objeto objeto unidade XLIB name 14
tipo: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
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
tipo 15 16 17 18 19 20 21 22 23 24 25 26 26-31
- 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
Memria
- Comandos do menu MEMORY - Comandos dos sub-menus DIR e ARITH
[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] [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.
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.
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: 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.
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 EQ 2 EQ3 EQ 4 . . . 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. 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.
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.
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: 1: Resultados: 2: 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) NUM >> 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 .
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
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 . . . nomen. Por exemplo, considere a seguinte pilha: 4: 3: 2: 1: onde: cria a varivel local a=20. a) a cria as variveis locais a=6 e b=20. b) a b 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: 10 6 20
volume
Programa: <<
Comentrios: 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.
r h
NUM
>> >> [ENTER] [] SPHVL [STO]
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
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. SQ * 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.
SWAP SWAP
pi
NUM
>> [ENTER]
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.
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
Funes de Comparao:
< > < > == = SAME menor que maior que 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.
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 >> >>
Programa: <<
Comentrios:
x y
<< IF x=0
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.
y=0
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
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
<< IF n1=0 AND n2=0' THEN n1 ELSE ZERO END >> >> n2 *
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 >> 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
Comea a estrutura do case. Case 1: se o argumento do tipo cadeia, armazene-o na varivel STR
y TYPE 5 SAME THEN y LIST STO END y TYPE 8 SAME THEN y PRG STO END END >> >>
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.
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.
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.
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 >>
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 :
<< 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.
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:
Comentrios:
<< DO c INCR 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.
s STO+
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 >>
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 n 2 DISP NEXT mostrar na primeira linha do display a string Isto um teste
>>
<<
>>
CLLCD
Limpa a tela da calculadora. Exemplo: << CLLCD EU SEI PROGRAMAR 1 DISP >> mostra um messagem na tela.
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 DEF GHI CLLCD 1 DISP 3 FREEZE
>>
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: 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 2: { 1: { 0 1 0 2 0 3 entre a identificao e o campo. } - valores assumidos pelos campos quando se d um RESET } - 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}
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
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. 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).
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.
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 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
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
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: 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
Legendas
legenda Descrio
[array] date {dim} nome grob hms index LID {list} mn [matriz] #n obj 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.
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.
Entrada
z
Sada
|z|
z z z #n1 #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. ARCHIVE ARG ARRY ARRY ASIN ASINH ASN ASR ATAN 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.
point xr x1 x2 :n: name z [array] z1 ... zn {dim} z z obj lc.p #n1 z #n2 atan(z) x z1 ... zn {dim} [array] asin(z) asinh(z)
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. BLANK BOX BUFLEN BYTES B R CASE CEIL CENTR CF %CH CHR CKSM CLEAR CLKADJ CLLCD CLOSEIO CLUSR CLVAR CL CNRM COLCT COL 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. 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
[[b1]...[bn]][b<b>] grob
x% string
xnormacoluna symb2
COMB CON CONIC CONJ CONT CONVERT CORR COS COSH COV CR CRDIR CROSS C PX C R DATE DATE+ DATE DDAYS DEC DECR DEFINE DEG DELALARM DELAY DELKEYS DEPND DEPTH DET DETACH DISP DO DOERR
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.
n m {dim} z
Cn,m [array]
[array]
[array*]
x1_unit1 x2_unit2
x3_unit2 xcorrelacion
z z
nome [vetor1] [vetor2] (x,y) (x,y) [vetor3] {#n #m} x y date date ndias date date1 date2 ndias date2
nome symb
string
obj obj obj obj1...objn obj1...objn obj1 obj2 obj1 obj2 xrad
symb1 symb2
mensagem de erro #n
FINDALARM Devolve o alarme da hora especificada. FINISH FIX FLOOR FOR FP FREE 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.
ncasas x n
x { name/LID } nporta
FP(x) T/F
T/F T/F
grob grob3
[matriz]
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
#n1 OR #n2
T/F npos
PVIEW PX C Q Q RAD RAND RCL RCLALARM RCLF RCLKEYS RCLMENU RCWS RDM RE RECN RECV
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)
x nome nalarm obj { alarm } { #system #user } {obj lc.p... objn lc.pn} x n [array1] {dim} (x,y) nome [arry2] x
REPL Adiciona em uma lista, string, objeto grfico ou PICT o objeto especificado no nvel 1, na posio no nvel 2. RESTORE ROLL ROLLD ROT R B R C R D SAME SCI SCONJ 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.
obj1 objpos :n: nome obj1...objn n obj1...objn n obj1 obj2 obj3 n x y xrad obj1 obj2
obj2
obj3
obj1...objn obj1 objn obj1...objn-1 obj2 obj3 obj1 #n (x,y) xgraus T/F
nome
SEND Envia um programa, um diretrio, ou uma lista de programas e diretrios via Kermit. (entre HP-HP ou HP-PC) nome SERVER Seleciona o modo servidor via Kermit. SF SIGN SIN Habilita o flag indicado. Devolve o sinal do nmero. Calcula o seno de um nmero.
m z1 z z2 sin(z)
SINH SINV SIZE SNEG SQ START STD STEP STEQ STO STOALARM STOF STOKEYS STO+ STOSTO* STO/ STR STR STWS SUB SWAP
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. 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.
sinh(z)
n ou {dim}
z^2
n 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 obj2 obj2 obj1 string nalarm
SYSEVAL Avalia um objeto do sistema interno da calculadora a partir de um endereo especificando o incio do objeto external ou code. TAG TAN TANH TICKS TIME TIME TLINE TMENU TSTR TVARS 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.
#n obj tag z z
time point1 point2 { obj1 ... objn } data time ntipo data time { global ... }
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
S
Sistema de Unidades 16 SOLVER AVANADO 18 SOLVER BSICO 17
V
Variveis Locais 21