Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Janeiro de 2000
Operação e Manutenção
Curso de Programação HP48G/GX _________________________________________________PET-Civil
1 INTRODUÇÃO
1
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
2 MEMÓRIA
A HP48 possui dois tipos de memória:
URL:
http://www.contrib.andrew.cmu.edu/~drury/how2open.htm
2
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
3 OBJETOS
Objetos são elementos básicos de informação que a HP48 utiliza, sendo
estruturas de dados internas(string, número real, lista, etc.), a calculadora pode
armazenar e manipular diversos tipos de objetos, esses objetos são classificados
internamente pela calculadora de acordo com seu tipo, como mostra a tabela
abaixo.
1
O comando TYPE está contido no submenu de mesmo nome no menu .
3
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
2
Subrotinas: São subprogramas acionados por um programa principal, essa é uma técnica de
programação que será abordada durante o curso.
4
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
R OVER: Esse comando copia o elemento que esta no segundo nível da pilha
colocando-o no nível um.
Ex.:
Aperte a tecla
R ROT: O comando ROT move o elemento que esta no nível três, colocando-
o no nível um.
Ex.:
Aperte a tecla
Aperte a tecla
5
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
R ROLLD: Esse comando faz o inverso do ROLL, ou seja ele move o elemento
da posição um para a posição especificada, veja abaixo.
Ex.:
Aperte a tecla
Aperte a tecla
Aperte a tecla
6
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
7
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
5 MANIPULANDO TEXTOS
Paginar Inserir
6 DISPLAY
O display da HP48G é dividido em três áreas distintas:
8
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
Área de Status
Pilha
Linha de Comando
Menus
7 OPERAÇÕES
Na HP48 existem duas maneiras de realizar uma determinada operação, o
processo interativo e o processo manual.
Ex.: Para habilitarmos o Fraction Mark(vírgula ou ponto, por defaut ela vem
desabilitada ou seja, ponto), pelo processo interativo teríamos que pressionar
+ e colocar o cursor sobre campo correspondente e então
pressionar CHK.
Pelo processo manual faríamos + e então entraremos no
diretório FMT e acionaríamos FM,(que ficaria FM,).
9
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
8 NOTAÇÕES
A HP48 nos fornece quatro tipos de notações de formato de números, onde
podemos indicar sua precisão, são eles:
Alterando as notações:
^ Processo Interativo:
Ö Pressione +
^ Processo Manual:
Ö Pressione +
Ö Digite o número de casas decimais caso queira utilizar os modos FIX, ENG
ou SCI.
10
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
Formato Numérico
Medida de Ângulos
Sistema de Coordenadas
9 MENUS
A HP48 possui um sistema de menus onde são exibidos os
objetos(programas, variáveis, funções, etc.) e diretórios, que se localiza na base
do display, a estrutura de MENUS é parecida com a estrutura de diretórios de um
PC, apresentando-se na forma de uma árvore. A estrutura de diretórios será
vista em um item à parte, além dos MENUS que contém as funções básicas de
programação e de cálculo, existem outros MENUS com funções específicas:
11
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
3
Parte do MENU que excede o número de seis.
12
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
Diretório corrente
Variáveis
13
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
Além das funções acima que estão contidas em subdiretórios temos ainda os
comandos:
4
A função UCHK em todos os MENUS seleciona os objetos ou habilita campos.
14
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
5
Subtrai de um valor especifico.
15
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
6
Checagem da soma “Checksum”, resultado binário de 16 BIT de um cálculo de CRC (cycling
redundance check) do conteúdo de um objeto.
16
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
Modo Algébrico
7
Unidades que apresentam um a correlação entre si.
17
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
A unidade Poise será fatorada para que seja incluída a unidade centímetros
18
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
Onde:
NOME: É o nome do atalho(apenas quatro caracteres são visualizados).
DIR: Diretório que contém o programa.
PROGRAMA: Programa alvo do atalho.
Obs.: Observe que após a execução do programa você estará no diretório que
contém o programa alvo do atalho, caso você acesse os atalhos sempre do
mesmo diretório e queira retornar ao mesmo, coloque o nome do diretório no
final do programa atalho, que fica da seguinte forma:
Onde:
DIR_ORIG: Diretório origem.
Ou,
Ö Simplesmente crie uma lista com a formatação informada acima e salve com
o nome de CST.
Obs.: Observe que a ordem dos nomes na pilha é a mesma dos botões do MENU
CST, veja também que é criada uma variável com o nome CST, que contém a
lista, uma vez apagada essa variável o menu deixara de existir.
19
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
10 DIRETÓRIOS
Como já foi mencionado no item anterior a estrutura de diretórios da HP48 é
semelhante a de um PC, apresentando a forma de uma árvore, o diretório
principal da HP48 é o { HOME }, é como se representasse o drive (C:\), a partir
dele o usuário pode criar seus próprios diretórios, como nas outras funções há
duas maneiras de se fazer a mesma operação, pelo processo interativo e pelo
processo manual, as funções de manipulação de variáveis e diretórios estão
contidas na tecla , tais funções serão vistas em um item a parte.
Diretório principal
Subdiretório
Variável
8
SYSEVAL são endereços que levam diretamente a uma localização da ROM da HP48, muitas das
strings hexadecimais SYSEVAL são comandos de System-RPL. Uma vez que não há checagem de
argumentos, é fácil ocorrer perda total da memória RAM da HP48.
9
Evaluar é um termo do jargão dos programadores da HP48 e corresponde a executar.
20
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
11 ARMAZENANDO VARIÁVEIS
Podemos armazenar na HP48 programas, strings, valores, etc. Para tal
deveremos utilizar o comando N(store/armazenar), posteriormente
recuperando-os com o comando RCL(recall/chamar).
Ö Pressione a tecla .
Ö Em seguida pressione a tecla do MENU correspondente a variável.
21
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
12 COMPACTADORES
A HP48 como o PC tem problemas com espaço para os arquivos, no PC a
solução para economizar espaço no HD são os compactadores como o popular
Winzip e o excelente Winrar, na HP a solução é a mesma só que com outros
nomes: BZ o compactador UBZ o descompactador e o BZM que gera arquivos
auto descompactáveis e Self Extractor, esses programas são encontrados em
separado facilmente na Internet, a seguir veremos as limitações e como utilizar
cada um.
22
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
13 MANUTENÇÃO
A HP48 possui funções de manutenção e auto teste, que são essenciais para
o seu perfeito funcionamento, funções essas que a maioria dos usuários
desconhece, sem falar nos procedimentos manutenção que são praticamente
ignorados.
• Nunca misture pilhas fortes e pilhas fracas, nem de marcas diferentes pois
podem ocorrer vazamentos, danificando a sua calculadora.
23
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
^ : Testa a ROM.
^ : Teste da RAM.
10
No jargão dos usuários da HP48 esse termo designa as borrachas que ficam na parte de traz da
calculadora.
24
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX _________________________________________________PET-Civil
25
Gutemberg Rolim
gutem@ufpa.br
Programação
Curso de Programação HP48G/GX PET-Civil
1 LINGUAGENS
Há duas maneiras distintas de se programar na HP48, através da
linguagem montadora Assembly, que na HP48 é denominada ML(Machine
Language) e RPL(Reverse Polish LISP), sendo que a linguagem RPL pode ser
trabalhada de duas formas, UserRPL e SysRPL.
A linguagem ML é a de mais baixo nível, sendo porém a mais rápida,
SysRPL(System RPL), assim como ML é trabalhada com Assembly, sendo a
linguagem em que é escrita a maior parte da ROM da HP48, System RPL é um
super-conjunto dos comandos normais de RPL e muitas funções de baixo nível
portanto é uma linguagem um grau mais alto que o Assembly(ML), tanto Sys RPL
como ML trabalham diretamente com o processador da HP48, o Saturno, sendo
muitas vezes chamadas de SAS(Saturn Assembler), necessitam de um
compilador que traduza o código, transformando-o em um programa da HP48,
são linguagens que não realizam verificação de argumento(argument checking),
podendo causar corrupção de memória, assim o programador necessita incluir
argumento de conferência onde precisar.
USER RPL é a linguagem de mais alto nível de programação na HP48,
sendo uma linguagem scripting(roteiro), onde o código fonte fica disponível para
o usuário, isto quer dizer que é a mais amigável, porém mais lenta já que seu
código é analisado para checar se os argumentos sobre os quais se aplica são
corretos. Para que tenhamos um bom programa em USER RPL é necessário que
tenhamos um algoritmo bem apurado, caso contrario teremos um programa que
ocupara muito espaço na memória da calculadora, sendo também muito lento.
2 PROGRAMAS
Um programa da HP48 é um objeto delimitado pelos caracteres « », que
pode ser manipulado como uma variável qualquer, como já vimos a linguagem
USER RPL é uma linguagem de roteiro, com isso os programas executam
comandos normais de manipulação de dados na pilha associados a comandos
específicos da linguagem, esses comandos são inseridos no programa através de
menus específicos, podendo ser escritos também.
Os vários objetos que constituem um programa, quando avaliados
corresponderão a uma ação que depende do tipo do objeto, como vemos na
tabela abaixo.
Objeto Ação
Comando Executado
Numero Colocado na Pilha
Algébrico Colocado na Pilha
String Colocado na Pilha
Lista Colocado na Pilha
Programa Colocado na Pilha
Variável Global(entre ' ' ) Colocado na Pilha
Variável Global(sem ' ' ) Colocado na Pilha e Evaluado Automaticamente
Variável Local(entre ' ' ) Colocado na Pilha
Variável Local(sem ' ' ) Conteúdo Colocado na Pilha
1
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
3 ENTRADA DE DADOS
A forma com que vamos solicitar ao usuário os dados necessários a
execução de um programa se constituem como um ponto de fundamental
importância para o programador, que deve proporcionar ao usuário estruturas
claras, auto explicativas e de fácil dedução, para que o mesmo forneça
corretamente o que se pede, tendo-se o cuidado de não comprometer a
performance do programa, para isso a HP48 dispõe de estruturas próprias para a
entrada de dados podendo ainda ser utilizadas combinações entre estruturas
saída e entrada de dados, cabendo ao programador aplicar com conhecimento,
bom censo e uma certa criatividade estruturas adequadas as diversas situações
impostas pelos problemas a serem resolvidos.
Nesse capitulo serão mostradas as estruturas e combinações de entradas
de dados mais usuais em UserRPL, com suas respectivas vantagens e
desvantagens e situações em que podem ser aplicadas.
Ex.:
« → ←A ←B ←C
« ←B SQ 4 ←A ←C * * −
CASE
DUP 0 > THEN DROP “Raizes Reais” END
0 == THEN “Raizes Iguais” END
“Raizes Complexas”
END
»
800 ,1 BEEP MSGBOX
»
2
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Fig.1
3.2 PROMPT
Este é um comando de entrada bastante simples e prático, quando
executado ele exibe na área de status uma string de título predefinida(fig. 2),
que pode ter até duas linhas e conter no máximo 21 caracteres por linha, o
programa fica então em HALT(parado) e o usuário para continuar deverá acionar
o comando CONT para que ele prossiga.
Ex.:
«
"Coloque A B C na Pilha" PROMPT → ←A ←B ←C
« ←B SQ 4 ←A ←C * * −
CASE
DUP 0 > THEN DROP "Raizes Reais"
0 < THEN "Raizes Complexas"
"Raizes Iguais" END
800 ,1 BEEP MSGBOX
»
»
O programa acima verifica o tipo das raízes(fig. 4) de uma equação
quadrática a partir de seus coeficientes A,B e C que devem ser deixadas na
pilha(fig. 3), observe que a mensagem fica na área de status até que o usuário
tecle enter ou realize alguma operação, e quando ela some aparece a palavra
HALT indicando que o programa esta parado, para continuar sua execução o
usuário deverá acionar o comando CONT.
3
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
«
DO
IFERR
RCL MENU M STO
{{ } { } { } { } { } {"CALC" « CONT »}} TMENU
"Coloque A B C na Pilha" PROMPT → ←A ←B ←C
« ←B SQ 4 ←A ←C * * −
CASE
DUP 0 > THEN DROP "Raizes Reais"
0 < THEN "Raizes Complex"
"Raizes Iguais" END
800 ,1 BEEP MSGBOX
»
M MENU {M} PURGE 1
THEN
CLEAR M MENU {M} PURGE "Fatal ErrorTry Again" 800 ,1
BEEP MSGBOX 0
END
UNTIL
END
»
Fig. 2 Fig. 3
Fig. 4 Fig. 5
4
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
«
RCL MENU M STO 0 DUP DUP → ←A ←B ←C
«{{"A"«'←A' STO+»} {"B"«'←B' STO+»} {"C"«'←C' STO+»}
{"CANC"«M MENU {M} PURGE KILL»}{ }{"CALC"«CONT»}} TMENU CLLCD
"Coloque A B C na Pilhae Pressione a tecla demenu
adequada"
3 DISP 3 FREEZE HALT
IF ←A TYPE ←B TYPE ←C TYPE MAX MAX 0 = =
THEN
IF ←A 0 ≠ ←B 0 ≠ ←C 0 ≠ AND AND
THEN ←B SQ 4 ←A ←C * * −
CASE
DUP 0 > THEN DROP "Raizes Reais" END
0 < THEN "Raizes Complex" END
"Raizes Iguais" END
800 ,1 BEEP MSGBOX M MENU
ELSE M MENU "Coloque todasas variaveis" 800 ,1
BEEP MSGBOX
END
ELSE M MENU "Variaveis do tipo Inteiro" 800 ,1 BEEP MSGBOX
END
»
{M} PURGE
»
O programa acima é uma outra versão do anterior(comando PROMPT) e
verifica o tipo das raízes(fig. 8) de uma equação quadrática a partir de seus
coeficientes A,B e C que devem ser deixadas na pilha, observe que a mensagem
fica na área da pilha(fig. 6) até que o usuário tecle enter ou realize alguma
operação, e quando ela some aparece a palavra HALT (fig. 7) indicando que o
programa esta parado, para continuar sua execução o usuário deverá acessar o
comando CONT(embutido na tecla de menu CALC, fig. 7), o resultado é obtido
graças as propriedades dos comandos, CLLCD limpa todo o display, DISP exibe a
string de título, FREEZE congela a área de status e pilha e HALT para
momentaneamente e execução do programa, observe também que os erros
provocados pelo usuário são verificados(fig. 9) veja as figuras abaixo.
5
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Fig. 6 Fig. 7
Fig. 8 Fig. 9
3.4 INPUT
Este comando é um pouco mais complicado que os anteriores, possuindo
algumas variações, em troca ele oferece mais claridade para o usuário, sendo na
opinião do autor o mais eficiente dentre os comandos de entrada de dados,
sendo flexível e rápido, quando executado ele limpa a área da pilha e exibe uma
string de título predefinida, que poderá ter até 3 linhas sem atrapalhar o usuário,
na linha de comando aparece uma string com rótulo(target object), solicitando a
entrada, aparece também o cursor indicando o modo de entrada do
programa(canto superior direito PRG), é nessa hora que o usuário deverá entrar
com os dados e pressionar a tecla para prosseguir com programa.
! No nível 2 da pilha deve estar a string de título, que poderá ter até três
linhas(ocupando os níveis de 2 a 4, o nível um fica para a entrada de dados)
com 22 caracteres cada, sem atrapalhar o usuário, ou estar vazia ( “ ” ).
! No nível um deve haver uma string de rótulo(string que aparecera na linha de
comando, que também pode estar vazia), ou uma lista que pode conter um
ou mais argumentos dos listados abaixo.
6
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
1
Algebraic/Program-Entry Mode: Modo utilizado para colocar objetos Algébricos(delimitados por ‘ ’)
em um programa.
2
Estruturas de Erro: Estruturas que a partir de erros provocados pelo usuário acionam comandos
pré-determinados.
7
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
^ « IFERR
“Entre com:!A, B e C” {−1 0} V }INPUT OBJ→ DEPTH 3 −
DROPN
→ ←A ←B ←C
« ←B SQ 4 ←A ←C * * −
CASE
DUP 0 > THEN DROP "Raizes Reais" END
0 < THEN "Raizes Complex" END
"Raizes Iguais" END
800 ,1 BEEP MSGBOX
»
THEN
CLEAR “Fatal Error!Try Again” 800 ,1 BEEP MSGBOX
END
»
Acima temos um exemplo padrão, observe que os dados devem ser inseridos
separados por espaços(fig. 15, ver pag. 2-7 do manual da série G – Acumulando
Dados na Linha de Comando).
Obs.: Observe que o resultado do comando INPUT é uma string que contém os
dados, para ter acesso aos dados devemos tira-los dessa forma, para isso
podemos utilizar o comando OBJ→ ( + + ).
Fig. 10 Fig. 11
8
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Fig. 12 Fig. 13
Fig. 14 Fig. 15
3.5 INFORM
O comando INFORM é o mais complexo de todos os comandos de entradas
de dados, porém em contra partida é o que tem a melhor aparência,
apresentando uma interface visual bastante clara para o usuário, e assim como o
IMPUT segue parâmetros e possui algumas variações, quando executado o
comando INFORM exibe uma caixa que contém um título e os rótulos dos dados
a serem introduzidos, podemos ter acesso a área da pilha e realizarmos
operações antes de prosseguir o programa, os campos que receberão os dados
possuem um help(string explicativa) que fica na parte inferior da janela.
O resultado do comando INFORM é uma lista que contém os dados, essa
lista deve ser desfeita para que se tenha acesso aos dados.
Os parâmetros do comando INFORM são os seguintes:
9
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ö No nível 2 da pilha teremos uma lista com os valores que devem preencher os
campos quando o usuário pressionar a tecla de menu RESET(fig. 19), essa
lista pode estar vazia ou conter elementos tantos quantos forem os campos,
se quando o usuário acionar o RESET um campo em particular deverá
aparecer vazio então devemos colocar a expressão NOVAL na posição da lista
correspondente a esse campo.
Ö No nível 1 deverá estar outra lista contendo os valores iniciais para os
campos(fig. 16), esta lista também pode estar vazia ou conter elementos
tantos quantos forem os campos, aqui a função NOVAL tem a mesma função
do item anterior.
10
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
^ «
WHILE
"INTERP_EXTRAP"
{{"X:" "VALOR A INTERPOLAR OU EXTRAPOLAR" 0} { }
{"X1:" "PRIMEIRO VALOR DA TABELA" 0}
{"Y1:" "PRIMEIRO PAR DA TABELA" 0}
{"X2:" "SEGUNDO VALOR DA TABELA" 0}
{"Y2:" "SEGUNDO PAR DA TABELA" 0}}
{2 0}
{ }
{ }
INFORM
REPEAT
IFERR
EVAL DUP 4 ROLL - 5 ROLL 4 ROLL DUP 6 ROLL – SWAP
3 ROLL - SWAP / * - Y ->TAG ->STR 800 ,1 BEEP MSGBOX
THEN
CLEAR "Fatal ErrorTry Again" 800 ,1 BEEP MSGBOX
END
END
»
^ «
“INÉRCIA1.0”
{{“B1=” “COMPRIM. DO FLANGE SUPERIOR(MM)” 0}
{“T1=” “ESPESSURA DO FLANGE SUPERIOR(MM)” 0}
{“B2=” “COMPRIM. DO FLANGE INFERIOR(MM)” 0}
{“T2=” “ESPESSURA DO FLANGE INFERIOR(MM)” 0}
{“H=” “ALTURA DA ALMA HT=H−B−B(MM)” 0}
{“E=” “ESPESSURA DA ALMA(MM)” 0}}
{2 0}
{ }
IFERR ‘IVAR’ RCL
THEN DROP { } INFORM
ELSE INFORM
END
IF
THEN DUP ‘IVAR’ STO EVAL
→ ←B ←T ←b ←t ←h ←e
« ←B ←T * ←b ←t * ←h ←e * + + 100 / ‘1_cm^2’ →UNIT
A →TAG →STR 800 ,1 BEEP MSGBOX »
END
»
11
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
^ «
WHILE
“AREA DE UM RETANGULO”
{{“NOME:” “ ” 2 6}{ }{“LADO:” “LADO INFERIOR” 0}
{“ALTURA:” “ ” 0}}
{2 0}
{“RETANGULO” NOVAL NOVAL}
{NOVAL 4 2}
INFORM
REPEAT
IFEER
EVAL * “Area”
IF 3 PICK NOVAL ≠
THEN “ de ” + ROT →STR +
ELSE ROT DROP
END
“” + 800 ,1 BEEP MSGBOX
THEN
CLEAR "Fatal ErrorTry Again" 800 ,1 BEEP MSGBOX
END
END
»
^ «
“VERTICE Nº1”
{{ } “X:” “Y:”}
{1 2}
{ }
{0 0}
INFORM
»
12
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Fig. 16 Fig. 17
1.1.1.1.1.1.1.1.1
Fig. 18 Fig. 19
Fig. 20 Fig. 21
3.6 CHOOSE
O comando CHOOSE como o próprio nome já diz é um comando de
escolha, quando executado ele exibe uma caixa com as opções predefinidas,
apresentando uma flecha apontando para cima e para baixo quando estas são
em número maior que quatro.
O resultado do comando CHOOSE depende da forma da lista de opções
podendo ser um objeto algébrico ou um numero real de referência.
Os parâmetros a seguir devem ser seguidos para que se possa executar o
comando CHOOSE:
Ö No nível 3 da pilha deverá estar uma string que servirá de título para caixa.
Ö No nível 2 devemos colocar uma lista com as possibilidades de seleção, seus
elementos poderão ter o seguinte formato:
13
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
^ «
“CALCULO DE AREAS”
{CIRCULO {“INERCIA” INER}{“RETANGULO” INF}{“ESFERA” 5}}
2
CHOOSE
»
^ «
“CALCULO DE AREAS”
{{“INERCIA” INER}{“RETANGULO” INF}}
1
CHOOSE
IF
THEN EVAL
END
»
Fig. 22 Fig. 23
14
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
4 SINTAXE
Na HP48 existem duas maneiras de se realizar uma operação matemática,
trabalhando diretamente com os valores na pilha ou montando-se o roteiro da
operação no modo algébrico e evaluando(pressionando a tecla ) em
seguida.
Ex.:
4+2
Para fazermos a operação , podemos realiza-la diretamente na pilha ou
3
acionando o aplicativo Equation Writer( + ), onde teríamos o
seguinte resultado:
Ex.: Digamos que usuário queira calcular o momento máximo de uma barra
biapoiada com uma carga constante distribuída ao longo de seu vão, teremos:
Sendo:
q=2,8tf/m
L=5,5m
15
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
5 VARIÁVEIS
Como no PC os programas da HP48 trabalham com variáveis, no PC em
linguagens como C++ temos duas classes de variáveis(tipo inteiro e tipo
flutuante), que são subdivididas de acordo com sua precisão(char, short, int,
long, float, etc.). Um programa na HP48 pode trabalhar com três tipos de
variáveis que podem armazenar qualquer tipo de objeto, são elas: Variáveis
globais, variáveis locais e locais compiladas.
Escopo:
Às variáveis globais não necessitam de nenhum tipo de estrutura para
serem declaradas, o processo é feito diretamente a partir dos dados na pilha com
o comando STO, sendo que o seu conteúdo pode ser alterado infinitas vezes no
desenvolvimento do programa através de sua regravação, para ter acesso ao seu
conteúdo o usuário deverá colocar nas linhas de comando do programa o nome
da variável global sem ( ‘ ’ ), de acordo com o item 2, as variáveis globais já que
estão gravadas podem ser usadas por subrotinas.
16
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
«
A //Coloca o nome da variável A na pilha
STO //Grava a variável A com valor do nível 2 da pilha
B //Coloca o nome da variável B na pilha
STO //Grava a variável B com valor do nível 2 da pilha
‘A+B/2’ //Coloca a expressão algébrica a ser resolvida na pilha
EVAL //Evalua a expressão algébrica
M //Coloca o nome da variável M(média) na pilha
STO //Grava a variável M com o valor gerado pela expressão algébrica, no nível um
M //Coloca na pilha o valor armazena do na variável M
»
O programa retira dois valores da pilha, A e B dos níveis um e dois
respectivamente, calculando a média desses valores, observe que depois do
programa ser executado as variáveis ficarão gravadas, inclusive o resultado M.
Escopo:
As variáveis locais são declaradas somente uma vez para cada bloco local,
podem ser declaradas outras variáveis locais com nomes diferentes dentro do
bloco local as quais poderão ter seu conteúdo acessado dentro de outro bloco
local que estará dentro do principal, essa operação pode ser feita sempre que
houver necessidade, sendo que todas devem obedecer a seguinte estrutura:
Onde:
Bloco Local: Área onde o programa tem acesso ao conteúdo das variáveis locais.
17
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
Obs.: Note que o segundo bloco(→ M «...), tem acesso as variáveis definidas no
primeiro(principal), estruturas como essa podem ser repetidas varias vezes,
sempre obedecendo ao escopo da variável.
Escopo:
Como as variáveis locais as variáveis locais compiladas são declaradas
somente uma vez para cada bloco local, podendo ser declaradas outras variáveis
locais com nomes diferentes dentro do bloco local as quais poderão ter seu
conteúdo acessado dentro de outro bloco local que estará dentro do principal,
essa operação pode ser feita sempre que houver necessidade, sendo que todas
devem obedecer a seguinte estrutura:
« → ←Var1 ←Var2 ... ←Varn « ←Var1 .... Bloco Local » Fim do Bloco »
Onde:
Bloco Local: Área onde o programa tem acesso ao conteúdo das variáveis locais
compiladas.
18
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
MAI(subrotina)
PRI(principal)
« → ←A ←B ←C
«←A ←B ←C + + 3 / →STR “Media:” SWAP + 800 ,1 MSGBOX MAI»
»
Note que a subrotina MAI deve ser colocada dentro bloco local sem ‘ ’, veja que
ela tem acesso as variáveis definidas no bloco local.
6 COMANDOS DE TESTE
Um teste é uma seqüência de comandos que devolvem um resultado
verdadeiro(1) ou falso(0), a HP48 não trabalha com expressões Boleanas(True e
False), esses comandos podem ser escritos em sintaxe de pilha, ou em uma
expressão algébrica( ‘Valor1 Comando de teste Valor2’ ).
Os comandos utilizados em teste podem ser classificados em:
R Funções de comparação.
R Funções lógicas.
R Comandos de teste das flags.
19
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Comando Teste
== Igualdade
≠ Desigualdade
< Menor que
> Maior que
≤ Menor ou igual a
≥ Maior ou igual a
Similar a = = só que mais
SAME rápido, porém não permite
a comparação de objetos
de tipos diferentes.
20
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
7 ESTRUTURAS DE PROGRAMAÇÃO
Ex.:
« → X
« IF X 0 >
THEN X →STR “ e maiorque Zero!!!” + MSGBOX
END »
»
O programa acima toma um número do nível um da pilha e verifica se o
mesmo é maior que zero.
« IF Teste
THEN Bloco de comandos 1
ELSE Bloco de comandos 2
END
»
Ex.:
« → X
« IF X 0 >
THEN “ e maiorque Zero!!!”
ELSE “ e negativo!!!”
END X »
→STR SWAP + MSGBOX
»
21
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
7.1.3 IFT
Essa estrutura é a forma compacta e mais rápida do IF ... THEN ... END,
acompanhe a sintaxe.
Obs.: Se OBJETO for um bloco de comandos, deve ser colocado em uma lista.
Ex.:
« → X
« X 0 > {X →STR “ e maiorque Zero!!!” + MSGBOX} IFT »
»
7.1.4 IFTE
Forma compacta da estrutura IF ... THEN ... ELSE ... END, segue as
mesmas regras do IFT quanto ao OBJETO, acompanhe a sintaxe.
Ex.:
« → X
« X 0 >
{X →STR “ e maiorque Zero!!!” + MSGBOX}
{X →STR “ e negativo!!!” + MSGBOX} IFTE »
»
ou
« → X
« X 0 >
“ e maiorque Zero!!!”
“ e negativo!!!” IFTE X »
→STR SWAP + MSGBOX
»
22
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
« CASE
Teste_1 THEN BLOCOS DE COMANDOS_1 END
Teste_2 THEN BLOCOS DE COMANDOS_2 END
Teste_3 THEN BLOCOS DE COMANDOS_3 END
- - - - - - - - - - - - - - - - - - - -
Teste_n THEN BLOCOS DE COMANDOS_n END
BLOCOS DE COMANDOS_DEFALT
END
»
Ex.:
« → X Y
« CASE
X Y > THEN X →STR “ e o maior” + MSGBOX END
X Y < THEN Y →STR “ e o maior” + MSGBOX END
“Numeros iguais” MSGBOX
END
»
»
23
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
Ex.:
« → N
« N DUP 4 +
FOR B
“PET-Civil_” B + CLLCD 3 DISP ,5 WAIT
NEXT
»
»
24
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
«
1 3
FOR B
1 25
FOR A
1700 ,03 BEEP 2200 ,03 BEEP
NEXT
2,5 WAIT
NEXT
»
Ex.:
« → N
« 0 1 10
FOR B B + N STEP
»
»
25
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
« DUP 1 → X S C
« DO ‘C’ INCR X * ‘S’ STO+
UNTIL S 100 >
END S C
»
»
O Programa acima retira um número(x) da pilha e calcula x+2x+3x+ ..
+nx, até que o somatório exceda 100, devolvendo a somatória e o número de
iterações.
Ex.:
« DUP 1 → X S C
« WHILE S 100 >
REPEAT ‘C’ INCR X * ‘S’ STO+
END S C
»
»
Ex.:
« WHILE “# *Gutemberg* ##Tel.:250-5567# CLLCD MSGBOX OFF 1”
REPEAT
END
»
26
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Ex.:
« IFERR +
THEN “ERRO: Falta de argumentos” DOERR
END
»
Ex.:
« IFERR +
THEN “ERRO: Falta de argumentos” DOERR
ELSE S →TAG →STR MSGBOX
END
»
27
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
7.4.1 DOERR
O comando DOERR é utilizado para causar erros do usuário e internos,
parra causar erros do usuário é necessário uma string antes do comando, para
erros internos deve-se colocar o número(inteiro binário ou real) do erro.
Ex.:
« IFERR +
THEN “ERRO: Falta de argumentos” DOERR CLEAR
ELSE S →TAG →STR MSGBOX
END
»
No programa acima podemos ver que o comando DOERR quando utilizado
em conjunto com o comando IFERR encerra a execução do restante do
programa(o comando CLEAR não é executado).
7.4.2 ERRN
O comando ERRN retorna o número do ultimo erro na forma de inteiro
binário, retornando #0 se o número do erro foi apagado com o comando ERR0.
7.4.3 ERRM
Comando similar ao anterior só que agora temos o retorno da mensagem
do ultimo erro em uma string, que estará vazia se o número do erro foi apagado
por ERR0.
7.4.4 ERR0
Esse comando apaga o número e mensagem do ultimo erro.
8 SAIDA DE DADOS
A linguagem UserRPL permite ao programador personalizar a saída de
dados de forma que a mesma seja de fácil compressão por parte do usuário, de
forma a não existir duvidas quanto aos resultados como unidades e rótulo, a
linguagem possui comandos específicos, que podem ser combinados de acordo
com a necessidade e criatividade do programador, os comandos de entrada de
dados também podem ser usados para saída, bastando descartar os valores
recebidos, os comandos de saída de dados estão em + + .
28
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
8.1 DISP
O comando DISP quando executado mostra rapidamente(menos de um
segundo), em uma determinada linha da tela um objeto do tipo string, o
comando é encerrado automaticamente sem que o usuário precise acionar
alguma tecla, e não deixa nenhum dado na pilha, veja a sintaxe.
« “STRING” N DISP »
Onde:
^ String: é um objeto do tipo string, que pode ter mais de uma linha com o
máximo de 22 caracteres, após esse limite o programador deverá acionar
outra linha + , até o limite de 7, o comando DISP não
possui paginação portanto as que excederem esse
limite não serão exibidas.
Ex.:
29
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
8.2 CLLCD
O comando CLLCD limpa o display LCD, sendo muito utilizado como
precedente de algum outro comando de saída dados, esse comando não
necessita de nenhum argumento podendo ser executado diretamente da pilha,
não deixando nenhum dado na mesma, é cancelado assim que o usuário aciona
qualquer tecla.
Ex.:
8.3 FREEZE
Esse comando é utilizado como o próprio nome já diz para congelar
determinadas áreas do display, cada área é representada por um número
padrão, o programador pode combinar conforme a necessidade as áreas a serem
congeladas, bastando para isso informar o somatório dos números
correspondentes as áreas, o comando FREEZE é encerrado assim que o usuário
pressionar qualquer uma das teclas não deixando nenhum dado na pilha, veja a
sintaxe.
Onde:
N Área
1 Status
2 Pilha
4 Menu
Ex.:
30
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
8.4 BEEP
Esse comando quando acionado emite um beep com uma freqüência e
duração predeterminas, sendo muito utilizado para alertar o usuário na saída de
dados, mas com muita criatividade o programador pode compor midis obtendo
um resultado muito interessante, bastando para isso conhecer a freqüência e
duração das notas, e é claro entender um pouco de musica, veja a sintaxe.
Onde:
Ex.:
« “PET-Civil → UFPa” CLLCD 4 DISP 800 .1 BEEP 7 FREEZE »
« RCLF F STO
–56 FS?C DROP
1 3
FOR B
1 25
FOR A
1700 .03 BEEP 2200 .03 BEEP
NEXT
2.5 WAIT
NEXT
F STOF ‘F’ PURGE
»
31
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
8.5 WAIT
O comando WAIT quando acionado pausa a execução do programa por um
período de tempo que é predeterminado pelo programador, conforme a sintaxe.
Onde:
Ex.:
Ex.:
8.6 MSGBOX
Esse comando quando executado exibe uma caixa em alto relevo contendo
uma mensagem, essa mensagem é um objeto do tipo string com o máximo de 5
linhas contendo o máximo de 15 caracteres, o MSGBOX é o mais utilizado dentre
os comandos de saída de dados, é um comando simples que pode ser executado
diretamente da pilha, para finalizar o comando o usuário deverá acionar a tecla
OK que fica no menu ou acionar , o comando não deixa nenhum dado
quando encerrado, veja a sintaxe.
32
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Onde:
Ex.:
9 DEBUGER
A linguagem UserRPL como as linguagens de programação no PC possui
ferramentas para a depuração dos programas, são ferramentas simples que o
programador é obrigado a aprender utilizar, já que é muito difícil acertar um
programa de primeira, principalmente os mais complexos que incluem varias
subrotinas, essas ferramentas estão em:
+ + .
33
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
10 FLAGS
No PC quando queremos configurar como o mesmo ira
funcionar(configurar IRQ’s, habilitar drivers, ...), utilizamos o SETUP que esta na
BIOS do PC, que é responsável por essas funções, na HP48 não ha SETUP o que
existe são as FLAGS são 64 indicadores de sistema (numerados desde -64 a -1)
e 64 indicadores de usuário (numerados desde 1 a 64), os cinco primeiros flags
do usuário ficam sinalizados na área de status(ver figura abaixo), e muitos
usuários quando observam isso acham que é algum BUG, e muita das vezes
resetam a calculadora perdendo todos os dados armazenados. Os flags são
usados para controlar como os programas e a HP48 operam. Os flags podem ser
manipulados fazendo-se uso de comandos específicos que serão vistos a seguir.
34
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
R FC?: (flag clear?), como o comando anterior testa o sinal da flag, só que
retorna 1 se a flag estiver desligada e 0 caso contrario.
R FS?C: (flag set? clear), testa o sinal da flag, retorna 1 se a mesma estiver
ligada e em seguida desliga a flag.
Obs.: Então quando uma flag do usuário(de 1 a 5) for aciona por algum
programa ou acidentalmente, ira aparecer o seu número na área de status,
indicando que a mesma esta acionada, para desabilitar a flag basta colocar o seu
número no nível um da pilha e acionar CF.
Programas corretos.
Programas bem estruturados.
Programas manuteníveis.
Controle do programa desde o projeto..
Visualização do problema.
Criação do algoritmo.
Criação do fluxograma.
Criação do programa.
1
Programação estruturada é aquela na qual são satisfeitas as acertivas pré-determinadas,
construindo o programa com um fluxo lógico que seja consistente dentro de cada trecho do
programa (módulos).
35
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
! Visualização do problema.
! Criação do algoritmo.
! Divisão do problema em módulos.
! Criação de um fluxograma modular.
! Implementação e teste de cada módulo.
! Implementação do programa principal.
«
→ N
«
IF N 1 >
THEN
1 N START
SWAP '1_cm' →UNIT SWAP →TAG →STR DEPTH ROLLD
NEXT
1 N 1 - START
"!" SWAP + +
NEXT
800 ,1 BEEP MSGBOX
ELSE
SWAP '1_cm' →UNIT SWAP →TAG →STR 800 ,1 BEEP MSGBOX
END
»
»
36
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
«
RCLF F STO
-56 FS?C DROP
DO
IFERR
"Entre com:!Q(Tf), σs(Tf/m²)"
{{-1 1}V} INPUT OBJ→ DEPTH 2 - DROPN 0 DUP DUP
→ ←Q ←T ←B ←b ←d
« ,7 ←Q 4 * ←T 3,14 * / MAX 10 * 0 RND 10 / '←B' STO
IF ←B ,7 ==
THEN ←B 100 * "B=d" 1 RCM
ELSE
←B 100 * B 1 RCM "FALSA ELIPSE?" {{"NAO" 0} {"SIM" 1}} 1
CHOOSE
IF
THEN
IF
THEN
DO
"Entre com:!b(cm)"
{{-1 1}V} INPUT OBJ→ DEPTH 1 - DROPN 100 / '←b' STO
←b SQ 3,14 * 4 / ←Q ←T / SWAP - ←b / 10 * 0 RND
10 / ←b + '←B' STO 1 ←B ←b / 2,5 ≥
IF
THEN DROP "Nao passa no!arqueamento!!!" 800 ,1
BEEP MSGBOX 0
END
UNTIL
END
END
,7 ←Q 4 * 500 3,14 * / ←B 3 / MAX MAX 10 * 0 RND 10
/ '←d' STO ←B ←d - 30 COS * ,3 MAX 10 * 0 RND 10 / 100
* ←B 100 * SWAP B SWAP ←d 100 * SWAP d SWAP h 3 RCM
END
END
»
1
THEN CLEAR "FATAL ERROR:!Try Again!!!" 800 ,1 BEEP MSGBOX 0
END
UNTIL
END
F STOF 'F' PURGE
»
37
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
12 EMULADOR
Antigamente o usuário para escrever programas em UserRPL tinha gastar
horas com a calculadora na mão, pois conforme vai aumentando o tamanho do
arquivo a calculadora demora mais tempo para edita-lo na pilha e para
acompanhar passo a passo no DBUG, e isso desistimulava o programador a
desenvolver aplicações mais complexas, além de consumir muita pilha ainda se
tinha o incomodo de a calculadora travar e em alguns casos perder toda a
memória causando prejuízos. Hoje em dia esses problemas são coisa do
passado, modernamente o programador desenvolve suas aplicações no
computador e transfere para calculadora sem nenhum problema de
compatibilidade, a ferramenta que permite isso é o emulador EMU48 um
ambiente desenvolvido para simular uma HP48 no PC, para isso ele trabalha com
a própria ROM da calculadora que deve ser extraída com um programa auxiliar o
ROMDump que foi desenvolvido exclusivamente com essa finalidade, por isso o
emulador simula perfeitamente uma calculadora HP48, com todas as funções e
comandos, praticamente é uma calculadora dentro do computador, esse tópico
ira abordar detalhes como instalação, configuração, manuseio e transferência de
dados, com o emulador.
38
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
12.1 Instalação
Como já foi dito o EMU48 precisa da ROM da HP48, que deve ser extraída
com o ROMDump, mas isso já foi feito e reunido em um só arquivo selfextactor,
juntamente com o programa ROMDump, o usuário deverá instalar o EMU48 e
logo após o ROMDump, em seguida deverá mover a ROM da calculadora que esta
com o nome de “Rom.48g” para o diretório em que foi instalado o emulador, com
isso o usuário já poderá usar o emulador, executando o arquivo EMU48.exe, seja
através de um atalho no Desktop ou no menu iniciar.
12.2 Utilização
As teclas de acesso do emulador são as mesmas no teclado alfabético as
teclas numéricas também são as mesmas do teclado numérico, assim como as
setas, sendo as teclas especiais acessadas em:
R : Acento Tiu.
R : Tecla Esc.
R : Barra invertida( \ ).
Barra de Ferramentas(Emu48)
39
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
R : Configurações do emulador.
12.3 Configuração
O Emu48 pode ser configurado para transferir e receber dados da HP48,
para isso o usuário deverá acionar a janela de configuração através do menu
File/Settings ou do ícone na barra de ferramentas, onde ira encontrar os
seguintes campos:
13 TRANFERÊNCIA DE DADOS
A HP48 é uma das poucas calculadoras cientificas do mundo que permite
ao usuário transferir dados, seja para uma outra calculadora(HP48), ou para um
PC, essa comunicação é feita através de dispositivos de
INFRARED(infravermelho), e WIRE(porta serial), respectivamente, este item e ira
abordar de forma clara e pratica esses assuntos.
13.1.1 Parâmetros
Para efetuarmos a transferência de dados via porta WIRE/Serial, é
necessário que o usuário configure os parâmetros de comunicação da
calculadora, em + , que são:
R FMT: Seleciona o formato dos dados, são dois os tipos de dados que a HP
trabalha: ASCII e Binary(mais utilizado).
41
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
13.1.2 KERMIT
Kermit é o programa mais popular dentre os programas utilizados na
transferência de dados HP-PC, na transferência ele utiliza o protocolo de mesmo
nome, rodando no ambiente MS-DOS o programa apresenta uma certa
instabilidade, sendo recomendado que no momento da transferência o MS-DOS
seja o único sistema operacional no PC.
42
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Comandos Básicos:
INTRO: Ajuda.
SET: Comando de seleção geral: BAUD(velocidade da transmissão, 9600 é
padrão), PORT(porta de transmissão, COM1 ou COM2), PARITY(paridade), ....
Ex.: SET PORT COM2 (seleciona a porta COM2 para transmissão)
SET BAUD 9600 (seleciona a velocidade de 9600 para transmissão)
SHOW: Mostra as informações do parâmetro selecionado:
STATUS(informações gerais, porta, velocidade de transmissão, diretório
destino, paridade, ....
SERVER: Ativa o modo servidor, permitindo que o usuário envie dados para o
PC, e também que tenha acesso aos arquivos podendo inclusive puxa-los
para calculadora.
EXIT: Fecha a seção, se acionado dentro de um parâmetro como o PUSH,
retorna ao Prompt do Kemit, e se acionado diretamente do Prompt fecha o
programa.
PUSH: Seleciona o diretório de destino ou origem dos arquivos, basta que o
usuário entre no diretório para seleciona-lo, e após selecionado acionar EXIT
para retornar ao Prompt.
TEST: Testa a porta de transmissão, Ex.: TEST COM2 , testa a porta COM2.
SEND ou S: Envia o arquivo, Ex.: SEND ARQU , envia o arquivo de nome
ARQU.
RECEIVE ou R: Recebe o arquivo, Ex.: RECEIVE ARQU , recebe o arquivo de
nome ARQU.
Ex.:
O roteiro abaixo descreve passo a passo o envio e recebimento de
arquivos a partir da calculadora.
1 Acionar o Kermit, usuários que não possuem modem ou que possuem mas
instalado em uma porta que não seja a COM2 podem acionar o Kermit a
partir do Windows, por sua vez os usuários que possuem modem instalado
na porta COM2 terão que reiniciar o computador em modo MS-DOS para
poder acionar o Kermit.
43
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
44
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
45
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
13.1.3 EMU48
A transmissão de dados através do emulador é bem prática e eficiente,
mas apresenta certas limitações como veremos a seguir.
R Vantagens:
R Desvantagens:
Ex.:
O roteiro abaixo descreve passo a passo o envio de arquivos a partir do
emulador, para efetuar a transferência a partir da calculadora basta inverter os
comandos, ou seja os comandos realizados no emulador passarão a ser
realizados na calculadora e vice-versa.
46
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
No emulador. Na HP.
R Vantagens:
R Desvantagens:
47
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Configuração:
Enviando:
Recebendo:
48
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
14 LIBRARY
Bibliotecas podem ser instaladas diretamente na ROM da HP48, por esse
motivo os programas dessas bibliotecas são mais rápidos e seguros, além de
garantirem a integridade e autoria dos programas já que não podem ser
editados, os programas podem ser acessados diretamente de qualquer diretório
já que se tornam objetos XLIB, existem duas maneiras de se criar bibliotecas,
uma direto na calculadora através de outra biblioteca o Hackit, ou no PC através
do software UserLIB, é este ultimo caso que o curso ira abordar.
14.1 UserLIB
O UserLIB é um software exclusivo para a criação de bibliotecas, rodando
em ambiente MS-DOS foi criado pela própria Hewlett Packard, sua utilização é
meio complexa para a maioria dos usuários, mas o resultado obtido é
compensador, como veremos a seguir.
O programa em resumo compacta o(s) programa(s) e suas subrotinas
transformando o conjunto em uma biblioteca, mas é necessário que o usuário
informe os parâmetros para essa compactação, esses parâmetros são informados
através de arquivos próprios, esses arquivos são mostrados abaixo:
Ex.:
R $VISIBLE: Deverá conter uma lista com os nomes dos arquivos que serão
vistos pelo usuário.
R $HIDDEN: Esse arquivo deverá conter uma lista com os arquivos que não
serão vistos pelo usuário, ou seja o arquivos $CONFIG e todas as
subrotinas sem exceção.
49
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
Roteiro:
50
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
14.2 Instalando
Para instalar uma biblioteca siga o roteiro.
14.3 Removendo
Para remover uma biblioteca siga o roteiro abaixo.
51
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
15 EDITORES DE TEXTO
A HP48 possui editores de texto para facilitar a criação de textos e
programas no PC, existem vários deles na Internet, no curso iremos adotar o
HP48Pad, um dos melhores que existem como veremos a seguir.
15.1 HP48Pad
O HP48Pad é um editor de textos prático e de fácil utilização, sua grande
vantagem é que ele salva o arquivo em formato ASCII, com os caracteres
especiais 100% compatíveis com os da calculadora, o usuário pode ainda limitar
a linha a 22 caracteres que são o número máximo de caracteres no display da
calculadora, veja os comandos básicos abaixo.
Comandos Básicos:
R : Barra de caracteres
especiais.
Obs.: Para rodar o HP48Pad necessita que a fonte True Type HP48 esteja
instalada no PC.
52
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
16 ABOUT
Em UserRPL é possível se criar About’s através de comandos gráficos,
personalizando assim as aplicações, podemos ainda criar figuras ilustrativas que
irão auxiliar o usuário a compreender melhor a entrada ou saída de dados, esses
pictures podem ser criados previamente e apenas serem exibidos durante a
execução, ou serem criados e exibidos em tempo de execução, a seguir são
mostrados dois exemplos.
Ex.:
«
ERASE
PICT (-3;3.2) HP REPL
PICT (-3;.4) “Tubulao v1.0” 3 →GROB GOR
PICT (3.5;-2.5) “By Guto” 1 →GROB GOR
{#0d #0d} PVIEW
7 FREEZE
‘PPAR’ PURGE
»
53
Gutemberg Rolim
gutem@ufpa.br
Curso de Programação HP48G/GX PET-Civil
GROB 60 12 0000000000000000EBEF01D7158FEBF0FB8F115055808020F50F
1FD355878020F40E115055808020FCCE11D7ACBF8020FAAE100000000000FAA
E1F01E422E970FA6E119215152A80F12F1F441C88E980F39F11C7159F2A80E7
DF0144E4A82A70.
«
ERASE
(-6.5;3.2) (6.5;-3.1) BOX
(-6.4;3.1) (6.4;-3) BOX
PICT (-3;2.5) HP GOR
PICT (-4.4;.3) “LAJES 2000 v1.0” 2 →GROB GOR
PICT (3.5;-2.4) “By Guto” 1 →GROB GOR
{#0d #0d} PVIEW
7 FREEZE
‘PPAR’ PURGE
»
54
Gutemberg Rolim
gutem@ufpa.br