Você está na página 1de 70

PET Eng.

Qumica UFC

Minicurso
De
UserRPL
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Prefcio

A motivao para a realizao deste curso vem do fato de a HP50g ser


uma ferramenta de clculo bastante utilizada tanto para estudantes de
engenharia como para engenheiros formados. Porm ainda um pouco
mistificada. Este minicurso tem o intuito de mostrar como simples a
programao da HP de modo a que esta programao possa tornar-se mais
uma linguagem que venha ao auxlio dos estudantes. Pese a isto o fato de
que a calculadora programvel bastante compacta e rpida de manusear-se
conferindo neste sentido vantagens em relao aos computadores: mais
fcil carregar uma calculadora que um notebook, por exemplo.

Aos estudantes lhes digo que a diferena principal entre a programao


na HP e as outras linguagens de programao comuns (C, C++, Fortran,
Pascal) o fato de que nela usa-se predominantemente o RPN (Notao
Polonesa Inversa) e isto ser trabalhado ao longo do minicurso.

O uso desta calculadora apenas para operaes aritmticas simples


seguramente configura limitao, posto que as possibilidades de operaes
so quase to imensas quanto se possa imaginar. A calculadora possui
diversas ferramentas, porm o minicurso se restringir programao, dita
UserRPL, que a programao de alto nvel da HP.

Fellipe Carvalho de Oliveira

Pet Eng. Qumica UFC


Janeiro, 2012

2
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Sumrio
1. Introduo ................................................................................................................. 5
1.1 Entendendo um Programa: Hello World .................................................... 5
1.2 Manejo da Pilha e Funes para Nmeros Reais ........................................ 5
1.3 Variveis Locais e Globais ............................................................................ 12
1.4 Operadores de Teste e Lgicos .................................................................... 14
1.5 Armazenando e Nomeando um Programa Na Calculadora ......................... 15
1.6 Executando um Programa na Calculadora e no Editor ................................. 15
1.7 Visualizando e Editando um programa na Calculadora ................................ 15
1.8 Executando o DBUG ..................................................................................... 15
2. Os Objetos da Calculadora ....................................................................................... 17
2.1 Nmeros Reais e Complexos ........................................................................ 18
2.2 String ............................................................................................................. 18
2.3 Objeto Algbrico ............................................................................................ 19
2.4 Programa ....................................................................................................... 19
2.5 Listas ............................................................................................................. 19
2.6 Matrizes ......................................................................................................... 19
3. Entrada de Dados ..................................................................................................... 23
3.1 INPUT ............................................................................................................ 23
3.2 CHOOSE ....................................................................................................... 24
3.3 INFORM ........................................................................................................ 25
3.4 PROMPT ....................................................................................................... 26
3.5 DISP FREEZE HALT ............................................................................... 27
4. Apresentao de Dados ........................................................................................... 28
4.1 MSGBOX ....................................................................................................... 28
4.2 TAG ............................................................................................................... 28
4.3 DISP FREEZE ............................................................................................ 29
5. Trabalhando com Equaes ..................................................................................... 31
5.1 Somatrio ...................................................................................................... 33
5.2 Derivadas ...................................................................................................... 33
5.3 Integrais ......................................................................................................... 34
5.4 Equaes Diferenciais ................................................................................... 35
6. Estruturas de Programao....................................................................................... 36
6.1 Estruturas de Repetio ................................................................................ 36
6.1.1 START NEXT, START STEP ............................................... 36
6.1.2 FOR NEXT, FOR STEP. 37

3
Minicurso de UserRPL Fellipe Carvalho de Oliveira
6.1.3 DO UNTIL END 39
6.1.4 WHILE REPEAT END 40
6.2 Estruturas de Deciso .. 41
6.2.1 IF THEN END........................................................................ 41
6.2.2 IF THEN ELSE END ........................................................... 41
6.2.3 CASE THEN END ................................................................. 43
6.3 Exerccios ...................................................................................................... 45
7. Alguns atalhos para Mtodos Matemticos .............................................................. 51
7.1 Razes de Polinmios .................................................................................... 51
7.2 Resoluo de Sistemas de Equaes Lineares ........................................... 51
7.3 Raiz de Equao No Linear ou Transcendental ...................................... 52
7.4 Resoluo de Sistema de Equaes No Lineares ou Transcendentais... 53
7.5 Soluo de Equaes Diferenciais de Primeira Ordem (na forma y(t) =
f(t,y))............................................................................................................... 54
7.6 Regresso ..................................................................................................... 55
7.7 Interpolao ................................................................................................... 55
7.8 Exerccio ........................................................................................................ 56
8. Anexos 1 ................................................................................................................... 57
8.1 Manipulao de Strings ................................................................................. 57
8.2 Manipulao de Listas ................................................................................... 58
8.3 Manipulao de Matrizes .............................................................................. 63
9. Anexos 2 ................................................................................................................... 66
10.1 Salvar Programa Feitos no HPUserEdit 5 no computador ......................... 66
10.2 Transferncia de Arquivos entre Calculadoras ........................................... 66
10.3 Transferncia de Arquivos entre Calculadora e PC ................................... 68
10.4 Instalao e Desinstalao de Bibliotecas ................................................. 69
10. Referncias Bibliogrficas ....................................................................................... 70

4
Minicurso de UserRPL Fellipe Carvalho de Oliveira

1. Introduo
Ao se programar a seqncia de comandos colocada na memria RAM da
calculadora onde ser feito o processamento passo a passo. Para que se gere resultado
coerente no deve haver erros de lgica tampouco de sintaxe. A lgica fica a cargo do
programador. A retido da sintaxe (de acordo com os padres da linguagem) verificada
pela calculadora que compilar se esta estiver correta ou acusar erro seno for o caso.
Nosso editor de cdigo UserRPL nos auxilia com vrios comandos pr-formados.

1.1 Entendendo um Programa: Hello World


Um programa em UserRPL uma sequncia de comandos, nmeros ou outros
objetos delimitados por . Faremos agora nosso primeiro programa, digite o seguinte
cdigo no editor e aperte F9, numa calculadora virtual aparecer:
"Hello World"
A frase Hello World colocada no nvel 1 da pilha. Outro programa seria:
10 2 /
O nmero 5 colocado no nvel 1 da pilha. Percebe-se desta maneira como trabalha
o RPN.
Primeiro os argumentos so colocados, logo ento a funo.
Os comentrios so feitos atravs do smbolo @. Por exemplo:
"Hello World" @ Este objeto uma String .
Observe que a segunda frase no aparece no visor da calculadora.

1.2 Manejo da Pilha e Funes para Nmeros Reais

As funes para manejo da pilha esto no menu STACK e so


elas:

Comando DUP

Este comando duplica o primeiro nvel da pilha

5
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Comando SWAP

Este comando troca o primeiro nvel com o segundo.

Comando DROP

Apaga o primeiro nvel da pilha

Comando OVER

Copia o nvel 2 para o nvel 1

Comando ROT

Roda em painel rolante os trs primeiros nveis de baixo para cima.

Comando UNROT

Roda em sentido contrrio do ROT

6
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Comando ROLL
4 ROLL

Este comando tem de inserir o nvel que quer trocar pelo primeiro, neste caso troquei o 4, (4
ROLL).

Comando ROLLD
3 ROLLD

Este comando passa o nvel 1 para o nvel indicado neste caso passamos o 1 para o 3 (3
ROLLD).

Comando PICK
3 PICK

Este comando permite Copiar o nvel desejado para o nvel 1 neste caso copiamos o nvel 3
(3 PICK).

Comando UNPICK
5 UNPICK

Este comando similar ao anterior cota o nvel 1 e cola no nvel desejado, neste caso o
nvel 5 (5 UNPICK).

7
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Comando PICK3

Este comando Copia para o nvel 1 o comando que se encontra no nvel 3

Comando DEPTH

Este comando d-nos a quantidade de nveis que temos em na pilha, neste caso so trs.

Comando DUP2

Este comando duplica os objetos que se encontrem nos dois primeiros nveis.

Comando DUPN
1 DUPN

Este comando similar ao anterior, mas temos de fornecer o nmero de nveis que
queremos duplicar.

Comando DROP2

Este comando apaga os dois primeiros nveis da pilha

8
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Comando DROPN
3 DROPN

Este comando permite apagar um determinado nmero de nveis na pilha neste caso
apagamos 3 (3 DROPN).

Comando DUPDU

Este comando triplica o objeto que esta no nvel 1 da pilha.

Comando NIP

Este comando elimina o objeto que se encontra no nvel 2.

Comando NDUPN
3 NDUPN

Este comando duplica n vezes o primeiro nvel.

As funes para manejo da pilha esto no menu REAL e so


elas:
Comando ABS

9
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Valor Absoluto
Comando CEIL

Menor inteiro maior ou igual ao argumento.

Comando FLOOR

Maior inteiro menor ou igual ao argumento.

Comando FP

Parte fracionria do argumento.

Comando IP

Parte inteira do argumento.

Comando MANT

Mantissa do argumento.

10
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Comando MAX

Mximo valor entre os dois primeiros nveis da pilha.

Comando MIN

O menor valor entre dois primeiros nveis da pilha.

Comando MOD

Resto da diviso entre dois nmeros.

Comando RND

Arredonda o nmero de acordo com o valor do argumento: n= 0 at 11.

Comando SIGN

Retorna +1 para argumentos positivos, 1 para argumentos negativos e 0 para argumentos


nulos.

11
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Comando TRNC

Trunca o nmero de acordo com o valor do argumento: n= 0 at 11.

1.3 Variveis Globais e Locais


Variveis so como arquivos em um disco rgido de computador. Uma varivel pode
armazenar um objeto (valores numricos, expresses algbricas, listas, vetores, matrizes,
programas, etc).
As variveis so reconhecidas pelos seus nomes, que podem ser qualquer
combinao de caracteres alfabticos ou numricos, iniciando com uma letra. Alguns
caracteres no alfabticos, tais como a seta () podem ser usados em um nome de
varivel, se combinados com um caractere alfabtico. Assim, A um nome vlido de
varivel, mas no . Exemplos vlidos de nomes de variveis so: A, B, a, b, , , A1,
AB12, A12, Vel, Z0, Z1, etc. Uma varivel no pode ter o mesmo nome de uma funo
da calculadora. Voc no pode ter uma varivel SIN, por exemplo, j que existe um
comando SIN na calculadora. Os nomes reservados das variveis da calculadora so os
seguintes: ALRMDAT, CST, EQ, EXPR, IERR, IOPAR, MAXR, MINR, PICT, PPAR,
PRTPAR, VPAR, ZPAR, der, e, i, n1, n2. . ., s1, s2, . . ., DAT, PAR, , .
Nota: Letras maisculas e minsculas no so equivalentes ( Case Sensitive).
O comando define nomes de variveis locais (isto , variveis que somente so
vlidas dentro do programa em que foram definidas) ao contrrio das variveis globais,
que so definidas pelo comando STO.
Variveis globais so todos os objetos que esto armazenados na sua calculadora
e que sero criadas permanentemente (por assim dizer) manualmente ou atravs de
programas. Seu uso dentro do programa representa uma desvantagem uma vez que
trabalhar com essas variveis um pouco mais lento e para apag-las necessrio
executar o comando PURGE. Na maioria dos casos voc no ter necessidade de usar
variveis globais j que as variveis geralmente so usadas apenas temporalmente e a
entram as variveis locais. Vejamos um exemplo do uso de variveis globais.

6 'X' STO
8 'Y' STO
'X ^ 2 + Y ^ 2' EVAL

12
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Ao executar o programa note a criao de duas novas variveis no seu diretrio
atual. Se queremos que as variveis no apaream devemos fazer o seguinte:

6 'X' STO
8 'Y' STO
'X ^ 2 + Y ^ 2' EVAL
'X' PURGE
'Y' PURGE

Otimizando:

6 'X' STO
8 'Y' STO
'X ^ 2 + Y ^ 2' EVAL
{ X Y } PURGE

Variveis locais so aquelas variveis temporais do programa, ou seja, esto
presentes apenas na execuo de programas e sero as variveis com as quais vamos
trabalhar com freqncia.
Uma estrutura de varivel local possui uma das seguintes organizaes dentro de
um programa:
nome1 nome2. . . nomeN objeto algbrico
Ou,
nome1 nome2. . . nomeN programa
O comando (de atribuio) remove n objetos da pilha e os armazena nas variveis
locais, cujos nomes so listados em seguida. Exemplo:

1 2 3 a b c

abc++


Essas variveis s podem ser utilizadas dentro deste subprograma e no so
encontradas em outros ambientes ou subprogramas. No caso de variveis locais no
necessria sua remoo uma vez que estas so eliminadas logo aps o trmino do
subprograma.

13
Minicurso de UserRPL Fellipe Carvalho de Oliveira

1.4 Operadores de Teste e Lgicos

Funes obtidas da seo TEST ( ):


Funo de comparao Descrio
SAME Testa se dois objetos so iguais
== Testa se dois objetos so iguais
Testa se dois objetos so diferentes
< Testa se o obj2 maior que o obj1
> Testa se o obj2 menor que o obj1
Testa se o obj2 maior ou igual que o
obj1
Testa se o obj2 menor ou igual que o
obj1

Todas as funes acima retornam 1 para teste verdadeiro ou 0 para teste falso

Operadores lgicos ( ):
Funo de comparao Descrio
AND Retorna 1 se os dois argumentos so
verdadeiros (0 seno).
OR Retorna 1 se os dois argumentos ou
algum deles verdadeiro (0 seno).
XOR Retorna 1 se algum dos dois argumentos
verdadeiro. (0 se os dois so
verdadeiros ou se os dois so falsos).
NOT Retorna 1 se o argumento 0 e vice-
versa.

Exemplo Exemplo

3 6 a b 0 1 AND

ab<

14
Minicurso de UserRPL Fellipe Carvalho de Oliveira

1.5 Armazenando um Programa Na Calculadora


Digite qualquer um dos seguintes cdigos no editor:


ab ab

'(a+b)' EVAL a b + 0.5 ^

Perceba que eles do o mesmo resultado. O da direita usa o RPN. .


Para guardar o programa em formato reconhecvel para o editor apenas v a
ARQUIVO SALVAR e ento escolha um local para salvar o arquivo.
Vamos agora simular o armazenamento de um programa na calculadora.
Aps digitar-se o programa no editor v a EMULADOR -> ENVIAR AO EMULADOR.
No emulador clique ENTER. Digite um nome para o programa e clique ENTER. Clique ento
em STO. Pronto o programa est armazenado na calculadora. No emulador visualize-o em
seta para esquerda APPS OK.

1.6 Executando um programa


Para executar o programa anterior atravs do editor digite os dois valores que iro
ser armazenados nas variveis locais a e b antes da seta e clique em F9. Observe o
emulador.
Para execut-lo no emulador coloque os dois valores que sero armazenados pelas
variveis locais na pilha e clique em VAR. Procure o programa que voc armazenou na tela
de menus e clique nele.

1.7 Visualizando e Editando um Programa na Calculadora


Na calculadora clique em seta para esquerda APPS OK procure o programa e
ento clique em EDIT. Faa as devidas alteraes e clique ENTER.

1.8 Executando o DBUG


A calculadora nos oferece um recurso muito importante, principalmente para quem
se inicia em programao, que a possibilidade de se executar um programa passo-a-
passo. Este recurso poderoso e deve, amide, ser utilizado, por duas razes:
Permite que se compreenda o funcionamento (e a lgica) de um programa;

15
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Facilita a correo de eventuais erros.


Este recurso ns o chamamos de DBUG. E fcil entender como um programa
trabalha (funciona) se voc execut-lo passo-a-passo, observando o efeito de cada etapa
(comando). Isto facilita depurar seus prprios programas ou entender programas escritos
por outros.

Este comando se encontra em .


Para utilizar o DBUG no editor aps digitar-se o programa clique em F8 e v ao

emulador. Para avanar instruo por instruo v clicando em . Se se quiser avanar

de uma vez o programa digite CONT e aperte ENTER (ou ento faa ).
Para execut-lo na calculadora:
Digite os valores requeridos na pilha e na ordem correta (se isto for necessrio);
Digite o nome do programa entre aspas simples e coloque-o na pilha (o programa
pode ser acessado atravs do comando VAR).

V a e v avanando em .
Para avanar passo-a-passo no meio do programa:
1. Insira o comando HALT na linha de programa a partir da qual voc deseja
iniciar o avano manual (DBUG);
2. Execute o programa normalmente. Ele pra quando o comando HALT
executado, o anncio HALT exibido (na tela);
3. Tome qualquer ao;
Para ver o prximo passo do programa exibido na rea de mensagens e

ento execut-lo, pressione o menu ;


Para ver, mas no executar o prximo (ou os prximos dois passos), pressione
NXT.

Para continuar com a execuo normal, pressione CONT ( ).


Quando voc desejar que o programa seja executado normalmente (novamente)
remova o comando HALT do programa. O comando KILL interrompe a depurao em
qualquer instante.

16
Minicurso de UserRPL Fellipe Carvalho de Oliveira

2. Os objetos da Calculadora
O primeiro passo para iniciar-se na programao a compreenso completa dos
objetos que voc pode trabalhar na calculadora j que a variedade e flexibilidade destes
servir para escolher corretamente o mtodo de trabalho para se construir um programa em
particular. Os objetos com os quais a calculadora trabalha so muito poderosos. As listas,
por exemplo, tm uma grande variedade de usos. Vejamos, ento, um pouco sobre os
objetos os quais lida a calculadora, no vamos explicar todos, apenas os mais comumente
utilizados na programao. Se voc quer saber o tipo de objeto definido na calculadora voc
pode usar o comando TYPE. A lista completa est abaixo:

Tipo Descrio Exemplo


0 Nmero real 6.023E23
1 Nmero complexo (2,5)
2 Texto String Orale
3 Arrays (Vetor ou Matriz) [1 3], [[2 3] [6 4]]
4 Arrays com nmeros [(2,3) (1,2)]
complexos
5 Listas {0 1 2}
6 Nomes x
7 Varivel em uso i FOR i 1+ NEXT
8 Programa X3/
9 Algbrico (Equao) X+3
10 Nmero Binrio #05B15h
11 Grob (grficos) Graphic 131x64
12 Objeto Etiquetado Dados: 5354
13 Unidades 25_Km
14 Nome XLIB XLIB 543 8
15 Diretrio DIR A5B2....END
16 Biblioteca Library 1500: FIS2
17 Backup Objeto Backup MYDIR
18 Funo Interna SIN
19 Comando Interno CLEAR
20 Internal binary integer <128d>
21 Nmero real estendido 1.23E2
22 Nmero complexo estendido Complexo longo

17
Minicurso de UserRPL Fellipe Carvalho de Oliveira

24 Caractere

25 Code Object Code
26 Dados de Biblioteca Library Data
28 Nmeros inteiros 25
30 Fontes Ft8_25: Wilancha

2.1 Nmeros Reais e Complexos


Os nmeros reais (Regidos pelas funes para nmeros reais Cap.1) podem ser, por
exemplo:
2.5 5 -3.6
Os nmeros complexos podem ser usados como coordenados cartesianas ou
polares. Muitas das funes usam esses objetos como argumentos (especialmente
comandos para grficos).
Exemplo:
(5,8) ,este seria o complexo 5+8i, mas tambm pode ser a coordenada: X=5,
Y=8.
2.2 String
Strings so bastante flexveis e seu uso dado geralmente para descrever as etapas
dos programas, a flexibilidade destes nos permitem orientar o usurio atravs de entradas
de dados.
Exemplo:
"Entre com o primeiro argumento"
O delimitador para este tipo de objeto so as aspas.
Para concatenar strings use o smbolo +. Para transformar um objeto em string use o
comando STR. Para verific-los faa:
7 a STO 70 b STO
"Perdoars no " a STR + vezes , porm b STR + + " vezes 7 " +

Execute o programa acima no DBUG para ver seu funcionamento passo-a-passo.

Para desmontar uma string faa . Ento na pilha aparecer


no nvel 1 a seqncia de caracteres que havia na string. Se haviam palavras separadas por
espaos na string ao desmont-la surgiro strings diferentes para cada palavra.

18
Minicurso de UserRPL Fellipe Carvalho de Oliveira
2.3 Objeto Algbrico
Em geral vem a ser as equaes e so de uso regular dentro dos programas.
Exemplo:
'X+Y'
Para encontrar o valor de uma operao pode-se usar este objeto em vez das
operaes comuns da pilha. Vejamos:

6 12 x y

'x^2+y^2' EVAL


A funo EVAL necessria neste caso. Esta funo revela o contedo de qualquer
varivel podendo-lhe estar atribudo a esta varivel qualquer objeto (matrizes, listas,
complexos e etc.).

2.4 Programa
Os programas realizam seqncias de operaes. Os programas tambm podem
ser usados como funes dentro das equaes, j que so capazes de recolher e devolver
argumentos, desta forma a programao fica mais organizada, sendo esta prtica bastante
recomendvel.

2.5 Listas
Uma lista constituda de objetos (nmeros, letras, grfico, etc.) entre chaves e
separados por um espao (tecla SPC). Uma lista o que, em matemtica, comumente
conhecemos por conjunto. Exemplo de lista:

{ 1 5 a { b c} }

Este um recurso muito importante para manipulao de objetos.
Para gerar uma lista a partir de objetos da pilha faa:
Ponha os objetos na ordem a qual se quer que estejam na pilha. Esta ordem
ser a mesma destes objetos na lista.
Digite o nmero de objetos e aperte ENTER.

V a .

19
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Para desmontar uma lista faa . Ento na pilha aparecer no


nvel 1 o nmero de objetos que havia na lista, logo ento os objetos na ordem em que
estavam na lista.
Para concatenar listas ou para agregar-lhes elementos use a funo +. Para somar
os elementos de duas listas use o comando ADD. Para multiplicar, subtrair e dividir
elementos de duas listas use as seguintes funes *, -, /. Para realizar potenciao use a
funo ^.
Exemplo:

{ 1 5 6 44 } 555 +
{ 1 5 6 44 } { 5 6 8 7 } +
{ 1 5 6 44 } { 5 6 8 7 } ADD
{ 1 5 6 44 } { 5 6 8 7 } *
{ 1 5 6 44 } { 5 6 8 7 } -
{ 1 5 6 44 } { 5 6 8 7 } /
{ 1 5 6 44 } ^ 2

Execute-o no DBUG para ver seu funcionamento passo-a-passo.

2.6 Matrizes
A HP50g possui grandes recursos para entrada e manipulao de matrizes. Muitas
das operaes descritas aqui tambm se aplicam a vetores (que so matrizes com apenas
uma linha ou uma coluna). O nome matrizes tambm inclui objetos vetoriais.
Para criar-se vetores e matrizes no editor use os smbolos [ ], e [ [ ] ]
respectivamente. Por exemplo:

[[2 3]
[0 1]
[ 5 55 ]
]

Onde, no exemplo anterior, cada conjunto interno de colchetes uma linha da matriz.
Os elementos devem estar separados entre si por um espao SPC.
No nosso editor apertando-se CRTL + F4 abre-se um editor de matrizes.

20
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Para montar uma matriz a partir de uma seqncia de elementos:
1. Entre com os elementos na pilha na ordem de preenchimento por linhas.
2. Entre com uma lista contendo as dimenses da matriz desejada na forma:
{linhas colunas}.

3. Pressione . Para montar a matriz.


Exemplo:

4 5 5 6 { 2 2 } ARRY

Para extrair um elemento de uma posio especfica:


1. Entre com a matriz na pilha.
2. Entre com um dos seguintes objetos:
Uma lista contendo a linha e a coluna do elemento que voc deseja extrair: {linha,
coluna}.

3. Pressione para extrair o elemento especfico.


Exemplo:

4 5 5 6 { 2 2 } ARRY
{ 1 1 } GET

Para substituir um elemento de uma posio especfica:
1. Entre com a matriz na pilha.
2. Entre com um dos seguintes objetos:
Uma lista contendo a linha e a coluna do elemento que voc deseja extrair: {linha
coluna}.
3. Entre com o elemento substituto.

4. Pressione para substituir o elemento especfico


na localizao escolhida.

4 5 5 6 { 2 2 } ARRY
{ 1 1 } 1.2323 PUT

Execute este ltimo programa no DBUG para ver seu funcionamento.

Funes importantes para matrizes:

21
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Smbolo Exemplo
+ (Soma de matrizes) [ [ 2 44 ] [ 3 5 ] ] [ [ 6 5 ] [ 78 9 ] ] +
- (Subtrao de matrizes) [ [ 2 44 ] [ 3 5 ] ] [ [ 6 5 ] [ 78 9 ] ] -
*(Multiplicao de matrizes) [ [ 2 44 ] [ 3 5 ] ] [ [ 6 5 ] [ 78 9 ] ] *
INV (Obter matriz inversa) [ [ 2 4 ] [ 3 5 ] ] DUP INV
TRN (Obter matriz transposta) [ [ 2 4 ] [ 3 5 ] ] TRN
DET (Determinante) [ [ 2 4 ] [ 3 5 ] ] DET
RDM (Redimensionar matriz) [ [ 2 4 ] [ 3 5 ] ] { 6 3 } RDM

Execute os exemplos acima do DBUG para ver seu funcionamento. Observe que a
lista que h antes da funo RDM indica o novo nmero de linhas e colunas,
respectivamente, da matriz redimensionada. Se h mais elementos que originalmente aos
novos elementos lhes atribudo o valor 0. Se h menos os elementos em excesso so
eliminados.
Para utilizar um elemento da matriz numa expresso algbrica
1. Certifique-se de que a matriz est armazenada numa varivel.
2. Crie a expresso algbrica e, no ponto onde o elemento de matriz ser usado,

digite o nome da matriz e pressione .


3. Entre com os ndices para o elemento:
Para um vetor, digite um ndice (nmero da posio do elemento).
Para uma matriz digite dois ndices separados por vrgula (nmero da linha,
nmero coluna).
A expresso resultante coloque entre aspas simples (Ex: matriz(1,1) ) e ponha
o EVAL.
Exemplo:

[ [ 2 4 ] [ 3 5 ] ] matriz

'matriz(1,1)' EVAL 'matriz(2,2)' EVAL +


Para desmontar uma matriz use OBJ. No primeiro nvel da pilha surge uma lista
com o nmero de linhas e colunas da matriz, respectivamente. A partir do segundo nvel vo
sendo postos os elementos da matriz da esquerda para direita de cima para baixo. Execute
o seguinte exemplo no DBUG:
[ [ 2 4 ] [ 3 5 ] ] OBJ

22
Minicurso de UserRPL Fellipe Carvalho de Oliveira

3. Entrada de Dados
Um programa precisa de uma maneira ordenada para a entrada dos dados. A
maneira mais natural de faz-lo atravs da pilha, porm a calculadora oferece maneiras
mais apresentveis. Todos os exemplos devem ser feitos no DBUG para melhor
compreenso.

3.1 INPUT
Um dos comandos para se obter dados o INPUT que nos apresenta uma tela com
um ttulo e um valor padro em um editor similar linha de comandos. Para realizar isto, o
comando necessita de dois argumentos: uma string no nvel 2 que ser o ttulo da tela e
outra string no nvel 1 que ser o texto que aparecer na linha de comandos.

Ao executar-se o INPUT obteramos:

Logo, se se aceita a entrada, ou seja, se se pressiona ENTER, o INPUT retorna os


dados introduzidos como uma string e que geralmente se convertero em objetos
conhecidos com o comando OBJ. Se se pressiona CANCEL cancela-se a execuo do
programa.

23
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Exemplo:

"Digite um nmero"
""
INPUT OBJ

No nosso editor o atalho para o INPUT CTRL + F5

3.2 CHOOSE
CHOOSE se usa para escolher uma entre vrias opes. Requer 3 argumentos: no
nvel 3 da pilha uma string que ser o ttulo da lista, no nvel 2 uma lista com os elementos
entre os quais escolher e no nvel 1 o nmero correspondente a opo default, geralmente
se coloca 1.
Este comando cria um menu de escolha no centro do display que permite a escolha
usando o cursor (setas para cima e para baixo). Exemplo:

Aplicando-lhe CHOOSE:

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 na pilha. Se a funo foi confirmada temos o
valor 1 como resposta, e na segunda linha da pilha, teremos a opo (objeto) selecionada.

24
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Exemplo:

"Qual sua matria predita"
{
Filosofia
Msica
Latim
}
1
CHOOSE

No nosso editor o atalho para o CHOOSE CTRL + F6

3.3 INFORM
O INFORM permite-nos desenhar formulrios para a introduo de dados mediante
ttulo, texto descritivo, de ajuda e de um tipo de objeto especfico (facultativo). No nvel 2
devolve os valores armazenados (que o usurio digitou) numa lista, e no nvel 1 um valor
que pode ser 1 se o formulrio for desenhado corretamente e se se aperta OK ou ENTER
ou 0 caso se cancele o formulrio.
Sintaxe:
1- Nome que leva o formulrio, este nome deve estar em string.
2- Elementos do formulrio {{nome ajuda TIPO DE OBJETO(S)}}
3- Nmero de colunas que pode ser das seguintes formas: n colunas, { n colunas},
{n colunas espao}.
4- Valores Reset estes so os valores que restauram quando se pressiona a opo
reset do menu do formulrio {VALORES RESET}
5- Valores iniciais estes so valores de iniciais {VALORES INICIAIS}
6- INFORM

Aplicando-lhe INFORM

25
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Exemplo:

"Formulrio de nomes"
{
{ "nome 1" "primeiro nome" 2 }
{ "nome 2" "segundo nome" }
{ "nome 3" "terceiro nome" }
}
{1 0}
{ Ataulfo Lago Mrio }
{ Lira Alves Carlos }
INFORM

3.4 PROMPT
Este comando interrompe o programa e mostra uma mensagem na parte superior do
display.
Sintaxe:
String que contm a mensagem superior
PROMPT
Digite os valores de entrada separados por espao SPC
ENTER
Os valores digitados pelo usurio iro para a pilha cada um em um nvel na mesma
ordem em que foram digitados.
Logo aps o PROMPT o programa pausado automaticamente e o HALT
acionado. Para seguir a execuo normal digite CONT e aperte ENTER.

26
Minicurso de UserRPL Fellipe Carvalho de Oliveira
3.5 DISP FREEZE HALT
O comando DISP mostra uma string em determinada fila da tela (enumeradas de 1 a
7, a tela divida em 7 filas) ele precisa de dois argumentos: no nvel 2 a string de
mensagem e no nvel 1 o nmero da fila do display onde ser mostrada a imagem. Sozinho
este comando s age enquanto dura a execuo. Portanto usa-se outro comando para reter
a tela do display chamado FREEZE. Este ltimo comando retm a tela e precisa de um
argumento para decidir que rea da tela ser congelada. A tabela a seguir mostra as
possibilidades:

Argumento rea Congelada


0 Toda a tela
1 A rea de estado
2 A pilha
3 A rea de estado e a pilha
4 Os menus
5 Os menus e a rea de estado
6 A pilha e os menus

O comando FREEZE interrompido assim que se aperta qualquer tecla, portanto at


aqui no feita entrada de dados, para tanto se utiliza o comando HALT que retorna tela
de comando para que se possa realizar operaes: No nosso caso pr dados na pilha. Para
seguir a execuo normal do programa use o CONT. Observe que o comando HALT por si
s j seria suficiente para interromper a execuo e permitir a entrada de dados (ou realizar
quaisquer operaes). Geralmente usa-se o comando CLLCD para limpar a rea da pilha e
a rea de estado antes da execuo do DISP.
Exemplo:
CLLCD
"orale" 4 DISP 0 FREEZE HALT
a
a2^

27
Minicurso de UserRPL Fellipe Carvalho de Oliveira

4. Apresentao de Dados
Comumente aps a execuo de um programa ou durante este, devemos apresentar
alguns resultados. Igualmente ao caso passado a calculadora possui bons comandos para
apresentar dados. Execute todos os exemplos no DBUG.

4.1 MSGBOX
MSGBOX mostra um quadro de mensagem e o nico argumento que necessita
uma string, porm se queremos adicionar-lhe nmeros ou outros objetos, simplesmente
temos que converter-lhes em strings e somar-lhes.

Exemplo:

"Digite o raio do crculo"
""
INPUT OBJ
0 r a

r 2 ^ 'a' STO
"A REA DO CRCULO : "
a STR +
MSGBOX

4.2 TAG
A apresentao de dados se d na pilha mediante a criao de um objeto etiquetado
(criado pelo comando TAG). O objeto do nvel 2 da pilha se atrela ao do nvel 1 .

28
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Exemplo:

"Digite sua idade"
""
INPUT OBJ
"Sua idade " TAG

4.3 DISP FREEZE


D-se de uma maneira anloga ao explicado no captulo anterior. Agora a string de
entrada ser a mensagem que se quer expor.

Observe o exemplo abaixo no DBUG.



"Digite um primeiro nmero "
""
INPUT OBJ
"Digite um segundo nmero"
""
INPUT OBJ
CLLCD
* 'a' STO

29
Minicurso de UserRPL Fellipe Carvalho de Oliveira
"A Multiplicao " 1 DISP
"do primeiro pelo " 2 DISP
"segundo : " a STR + 3 DISP
0 FREEZE

30
Minicurso de UserRPL Fellipe Carvalho de Oliveira

5. Trabalhando com Equaes


O trabalho com equaes tem desvantagens apenas com relao velocidade,
porm seu uso nos mais familiar que as operaes da pilha. A calculadora dispe de
muitas maneiras para criar, avaliar equaes ou objetos algbricos. Observe o exemplo
abaixo, tudo muito intuitivo.

1 x

'F(X)=EXP(X)-2' DEFINE
'F(x)' EVAL
xF


O comando DEFINE cria a funo que trabalha de maneira similar a uma sub-rotina,
que estudaremos mais adiante. Trata-se de uma passagem de parmetros. Observe que
aps a execuo do cdigo a funo F ser armazenada na memria da calculadora,
podendo ser acessada por outros programas. Para elimin-la utilize PURGE.
Em geral se recomenda as operaes de pilha, pode-se utilizar, por exemplo, OVER,
DROP, ROT, DUP que so funes rpidas (ao menos para UserRPL) e os programas
sero muito menores. Novamente, esta s uma recomendao, sobretudo para aqueles
que se interessam pela otimizao.
Os programas podem ser utilizados como funes prprias da calculadora e dentro
das equaes ou expresses algbricas e devem neste caso devolver um ou mais valores
para que sejam feitas novas operaes. Por exemplo:

a b
ab+2/

'media' STO

"Digite um primeiro nmero"


""
INPUT OBJ
"Digite um segundo nmero"
""
INPUT OBJ

31
Minicurso de UserRPL Fellipe Carvalho de Oliveira

@ Vamos Agora aplicar a funo Mdia


media
"A mdia aritmtica dos dois nmeros " TAG
media PURGE

Observe que a rotina que calcula a mdia foi guardada na varivel global media
podendo ter sido chamada em outro instante. Na verdade o uso da funo media no
exemplo anterior se enquadra no contexto da tcnica das sub-rotinas que consiste na
possibilidade de um programa ser acessado por outro. Uma situao em que
recomendvel o uso de sub-rotina quando temos um conjunto de instrues que
utilizado em diversas partes de um programa e para que no seja reescrito diversas vezes
colocado em um programa a parte onde o primeiro programa (podemos cham-lo de
principal) acessa o segundo (sub-rotina). Exemplo:
Salve o seguinte o programa media no emulador da calculadora;
Digite e compile o seguinte cdigo:

"Notas"
{
"1 nota 1 bimestre: "
"2 nota 1 bimestre: "
"1 nota 2 bimestre: "
"2 nota 2 bimestre: "
}
{10}
{}
{}
INFORM
DROP OBJ DROP
a1 a2 b1 b2
a1 a2 media
b1 b2 media
media
"A mdia semestral " TAG

32
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Na depurao de cdigos para que as sub-rotinas sejam acessadas avance no
mais em , porm em .
Porm antes de se realizar um programa que ser utilizado como sub-rotina sempre
ser melhor verificar se h algum comando que realize a operao matemtica que se
deseja fazer, estes sempre so muito mais rpidos. Alguns sero vistos nos prximos
tpicos:

5.1 Somatrio
Argumento: Somatrio no primeiro nvel
Sintaxe:
(incgnita = valor inicial, valor final, equao ou objeto algbrico)' EVAL.
Exemplo:
'(I=1,3,I+3)' EVAL

5.2 Derivadas
Para derivada de funo da incgnita X usa-se o comando DERVX
Argumento: Funo de X no primeiro nvel
Sintaxe:
'funo de X' DERVX
Exemplo:
'LN(X)' DERVX

Para derivada de funes de qualquer incgnita usa-se DERIV


Argumento: Funo da incgnita no primeiro nvel e a incgnita no segundo
Sintaxe:
'funo de qualquer varivel' 'varivel' DERIV
Exemplo:
'L^12' 'L' DERIV

Para divergente de um campo vetorial usa-se o DIV


Argumento: Vetor das componentes do campo vetorial no primeiro nvel e vetor com
as incgnitas no segundo
Sintaxe:
[ '1 componente do campo vetorial' ' 2 componente ' '3 componente Z ' ] [ 'varivel
1' 'varivel 2' ' varivel 3' ] DIV
Exemplo:
[ 'X^2' 'Y^2' 'Z^2' ] [ 'X' 'Y' 'Z' ] DIV

33
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Para rotacional de um campo vetorial usa-se o CURL


Argumento: Vetor das componentes do campo vetorial no primeiro nvel e vetor com
as incgnitas no segundo
Sintaxe:
[ '1 componente do campo vetorial' ' 2 componente ' '3 componente Z ' ] [ 'varivel
1' 'varivel 2' ' varivel 3' ] CURL
Exemplo:

[ 'Y*Z' 'X*Z' 'X*Y*Z' ] [ 'X' 'Y' 'Z' ] CURL

5.3 Integrais
Para integral indefinida de funo da incgnita X usa-se o comando INTVX (
necessrio que se esteja no modo exato e no no numrico).
Argumento: Funo de X no primeiro nvel
Sintaxe:
'funo de X' INTVX
Exemplo:

'X^2' INTVX

Para integral de funes de qualquer incgnita usa-se INT (Se a calculadora


estiver no modo exato a integral no ponto ser mostrada, se estiver no modo
numrico a integral ser calculada).
Argumento: Funo da incgnita no primeiro nvel e a incgnita no segundo e no
terceiro o ponto onde a antiderivada ser avaliada, este ltimo pode ser um nmero ou uma
expresso
Sintaxe:
'funo de qualquer varivel' 'varivel' 'ponto onde a integral ser calculada' INT
Exemplo:

'2*m' 'm' '9' INT

34
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Para integral definida usa-se o comando .
Argumento: Nvel 4 o limite inferior, no nvel 3 o limite superior, no nvel 2 a funo
da varivel e no primeiro nvel a varivel.
Sintaxe: limite inferior limite superior 'funo da varivel escolhida' 'varivel'
Exemplo:

2 5 'x^2-2' 'x'

5.4 Equaes Diferenciais


Para Resoluo de Equaes Diferenciais Ordinrias use o comando
DESOLVE.
Argumento: no nvel 2 a equao diferencial, no nvel 1 a funo desconhecida.
Sintaxe: 'Eq. diferencial' 'funo desconhecida' DESOLVE

Exemplo: Resolve a seguinte equao diferencial ( )



'd1d1y(x)-x=0' 'y(x)' DESOLVE

Os cC0, cC1 ..... cCn que aparecem no resultado so as constantes de integrao

35
Minicurso de UserRPL Fellipe Carvalho de Oliveira

6. Estruturas de Programao
Uma estrutura de programao (Deciso ou Repetio) permite a um usurio tomar
uma deciso sobre como o programa deve ser executado, dependendo das condies
dadas ou dos valores de argumentos em particular. Um uso cuidadoso e inteligente destas
estruturas torna possvel a criao de programas com extraordinria flexibilidade. Diramos
que a programao propriamente dita comea aqui com estruturas de programao, pois o
que fizemos anteriormente foi a programao de frmulas apenas. Estas estruturas que
iremos estudar so comuns a vrias linguagens de programao, como por exemplo,
PASCAL, FORTRAN, C++, MATLAB, etc. Aqui mais do que nunca necessrio executar
todos os exerccios no DBUG.

6.1 Estruturas de Repetio


Este tipo de estrutura executa determinada ao um nmero definido ou no de
vezes.
6.1.1 START NEXT, START STEP
START... NEXT executa uma parte do programa um determinado nmero de
vezes.
Sintaxe:
incio fim
START
clusula do lao
NEXT

Exemplo: O programa abaixo faz uma lista de 10 cpias das letras ABC

1 10
START
'ABC'
NEXT
10 LIST

START toma dois nmeros da pilha (incio e fim) e os armazena como valor
inicial e final para o contador do lao. Depois, executa a clusula do lao. NEXT
incrementa o contado em 1 e verifica se este valor menor ou igual ao fim. Se for,
executa novamente a clusula do lao.

36
Minicurso de UserRPL Fellipe Carvalho de Oliveira
START... STEP funciona exatamente da mesma forma que o START...
NEXT, exceto que permite especificar um incremento diferente de 1.
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.

9 x

x1
START
x SQ
-3
STEP


START toma dois nmeros da pilha (incio e fim) e os armazena como valor
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 for 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.

6.1.2 FOR NEXT, FOR STEP


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.
Sintaxe:
... incio fim
FOR contador
clusula do lao
NEXT ...

37
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Exemplo: O programa a seguir calcula o Fatorial de um nmero:

"Digite N"
""
INPUT OBJ
n
1 'produtorio' STO
1n
FOR i
produtorio i * 'produtorio' STO
NEXT
'produtorio' EVAL


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 for,
executa novamente a clusula do lao. Ao sair do lao o contador apagado, ou
seja, ele s existe dentro da clusula do lao.

FOR... STEP funciona exatamente da mesma forma que FOR... NEXT,


exceto que permite especificar um incremento diferente de 1 ao contador.
Sintaxe:
... incio fim
FOR contador
clusula do lao
incremento
STEP ...

Exemplo: O programa seguinte calcula os quadrados dos inteiros mpares de
1 a 21.

1 21
FOR j
j SQ

38
Minicurso de UserRPL Fellipe Carvalho de Oliveira
2
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 for, executa novamente a clusula do lao. Ao
sair do lao o contador apagado, ou seja, ele s existe dentro da clusula do lao.

6.1.3 DO UNTIL END


diferena das outras duas estruturas de repetio estas prximas so
indefinidas. O 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.
Sintaxe:
... DO
clusula do lao
UNTIL clusula de teste
END ...

Exemplo: O Exemplo abaixo testa se o nmero que se digita igual a um


valor da pilha
30 rn

DO
"ADIVINHE O NUMERO"
"" INPUT OBJ 'n' STO
CASE n r >
THEN
"MAIS BAIXO...!!!"
END n r <
THEN
"MAIS ALTO...!!!"
END
"ACERTASTE!"
END

39
Minicurso de UserRPL Fellipe Carvalho de Oliveira
MSGBOX
UNTIL r n ==
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.

6.1.4 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.
Sintaxe:
... WHILE clusula de teste
REPEAT
clusula do lao
END ...

Exemplo: O programa seguinte divide por dois todos os nmeros pares de 1


at um valor especificado.

"Digite um nmero"
""
INPUT OBJ 'a' STO
1 'cont' STO
WHILE cont a
REPEAT
IF cont 2 MOD 0 ==
THEN
cont 2 /
END
cont 1 + 'cont' STO
END

40
Minicurso de UserRPL Fellipe Carvalho de Oliveira

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.

6.2 Estruturas de Deciso


Este tipo de estrutura executa determinada ao se alguma condio satisfeita.
6.2.1 IF THEN END
Usado para realizar determinadas aes se se cumpre uma condio.
Sintaxe:
. . . IF
Clusula de teste
THEN
Clusula verdadeira
END

Exemplo:

"Digite um nmero"
""
INPUT OBJ
N
IF N 2 MOD 0 ==
THEN
"O nmero par. "
END


Neste programa o nmero posto pelo usurio foi avaliado quanto ao resto da
diviso por 2 (funo MOD). Se for 0 porque o nmero par.

6.2.2 IF THEN ELSE END


Sintaxe:
. . . IF
Clusula de teste
THEN

41
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Clusula verdadeira
ELSE
Clusula falsa
END . . .

Esta estrutura executa uma seqncia de comandos se o teste resultar
verdadeiro e outra, caso seja falso. Se a clusula-de-teste for um objeto algbrico,
ela automaticamente convertida para um valor numrico. A palavra IF inicia a
clusula-de-teste, a qual deixa o resultado (0 ou 1) na pilha. THEN remove este
resultado. Se o valor diferente de 0, a clusula-verdadeira executada; caso
contrrio, a clusula-falsa executada. Aps ter executado a clusula apropriada, o
programa prossegue com a instruo seguinte END.
Exemplo:
(U.E. CE. - 80) Considere a sequncia de nmeros reais definidas por:

Ento o produto dos 6 primeiros termos :


Resoluo:

"Digite N"
""
INPUT OBJ
N
[ 0 ] { N } RDM 'A' STO
1N
FOR n
IF n 2 MOD 0
THEN
'(n + 1)/2' EVAL 'A(n)' STO
ELSE
'A(n - 1)' EVAL 'A(n)' STO
END
NEXT
A
OBJ
DROP

42
Minicurso de UserRPL Fellipe Carvalho de Oliveira
1N1-
FOR i
*
NEXT
"O Resultado " TAG


Observe que neste exemplo usou-se uma matriz para guardar valores. Se
fssemos usar as operaes normais na pilha faramos:

"Digite N
"
""
INPUT OBJ n

1n
FOR i
IF i 2 MOD 0 ==
THEN
DUP
ELSE
i1+2/
END
NEXT
1n1-
FOR i
*
NEXT
"O resultado " TAG


6.2.3 CASE THEN END 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.

43
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Sintaxe:

... CASE Clusula de teste 1
THEN
Seqncias a se executar se a clusula de teste 1 for verdadeira
END (Clusula de teste 2)
THEN
Seqncias a se executar se a clusula de teste 2 for verdadeira
END
Seqncias-padro a se executar (se nenhuma das clusulas anteriores for
verdadeira), que so opcionais.
END
...

Exemplo:
Testar o tipo da varivel. No se esquea de atribuir-lhe objeto.

CLLCD
y

CASE y TYPE 2 ==
THEN
"A varivel uma string " MSGBOX
END y TYPE 5 ==
THEN
"A varivel uma lista " MSGBOX
END y TYPE 8 ==
THEN
"A varivel um programa " MSGBOX
END
END

44
Minicurso de UserRPL Fellipe Carvalho de Oliveira

6.3 Exerccios
1). Faa um programa para sair com os N primeiros termos de uma P.A. (progresso
aritmtica), de dois modos distintos:
( a ) em uma lista ( b ) em um vetor.
2). Faa um programa para calcular o produto dos N primeiros termos de uma P.A.
3). Faa um programa para calcular a soma dos N primeiros termos de uma P.G.
4). Faa um programa para calcular o seguinte somatrio:

5). Seja a seqncia:


1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, . . .
Cuja frmula do termo geral e do produto so,

Faa um programa para sair com um vetor contendo os N primeiros termos desta
seqncia e mais ainda o produto destes N primeiros termos.
6). Faa um programa para calcular o somatrio:

Onde m e n so valores arbitrrios que devem ser fornecidos ao programa.


7). Faa um programa para calcular para calcular a soma,
12 + 23 + 34 + ...+ n (n + 1)
8). Faa um programa para calcular o produto interno cannico de dois vetores,
assim:
[ a1 a2 . . . an ] [ b1 b2 . . . bn ] = a1b1 + a2b2 + ... + anbn
9). Faa um programa para sair com um vetor contendo os N primeiros termos de
uma P.A., usando a frmula de recorrncia (denio) de uma P.A.:

10). Faa um programa para sair com um vetor contendo os N primeiros termos de
uma P.G., usando a frmula de recorrncia (denio) de uma P.G.:

45
Minicurso de UserRPL Fellipe Carvalho de Oliveira

11). Faa um programa para sair (em lista ou vetor) com os N primeiros termos das
seguintes sequncias:

iii) (U.F.CE -81) Os termos da sucesso a1 , a2 , . . . , an, esto relacionados pela


frmula , onde n = 1, 2, 3, . . . Se a1 = 0, ento a6 :
a). 25 b). 27 c). 29 d). 31
12). (PUC-SP - 81) Na seqncia (a1 , a2 , . . .) tem-se:

Qual dos nmeros abaixo est mais prximo de a3?


a) 1 b) 2 c)2 d)3 e)5
Nota: Lembramos que nestes exerccios queremos que voc faa um pouco mais do
que o exerccio pede. Queremos que voc faa um programa para listar os n primeiros
termos das seqncias dadas.
13). (U.F.BA. - 81) sejam as sequncias

Se P = anbn, tem-se:
a) P < 0 b) 0 P < 1 c) 1 P < 2 d) 2 P < 3 e) P 3
14). (U.F.PR. - 80) Seja f uma funo tal que f(1) = 2 e f(x + 1) = f(x) 1, para todo
valor real de x. Ento f(100) igual a:
a) 99 b) 97 c) 96 d) 98 e) 100
15). (PUC - SP - 85) Na seqncia (a0 , a1 , a2 , . . .) onde
,para todo n N, a soma dos 7 primeiros termos
a) 41 b) 42 c) 43 d) 63 e) 64
16). (PUC - SP - 70) Sendo f : R R denida por f(x) = 2x + 3, ento f(1) + f(2) + f(3)
+ . . . + f(25) igual a:
a ) 725 b ) 753 c ) 653 d ) 1375 e ) 400

46
Minicurso de UserRPL Fellipe Carvalho de Oliveira
17). (U. MACK. - 73) Sendo A = ( aij ) uma matriz quadrada de ordem 2 e aij = j i 2,
o determinante da matriz A :
a)0b)1c)2d)3e)4
18). Uma outra distncia entre matrizes A = ( aij ) e B = ( bij ) dada pela igualdade:

onde A e B so matrizes retangulares de ordem m n. Esta conhecida como distncia


euclidiana. Programe a frmula acima.
19). (UNESP - 84) Seja , onde n um nmero natural

diferente de zero. O menor nmero n tal que Sn > 0,99 :


a)5b)6c)7d)8e)9

20). (F.C.M. STA. CASA - 82) Para que a soma dos termos da seqncia (81, 77,
73, . . . ) seja um nmero positivo, deve-se considerar no mnimo:
a ) 35 termos b ) 39 termos c ) 41 termos d ) 42 termos e ) 43 termos

21). Determine N tal que:

22). Elabore um programa onde entramos com o primeiro termo e a razo de uma
P.A., e ainda com um nmero L (maior ou igual ao primeiro termo), e o programa saia
com n, a quantidade mxima de termos que podemos somar para que a soma no
ultrapasse L.
23). Qual o primeiro termo positivo da P.A. (81, 77, 73, . . .)?
24). Encontre o valor de k de modo que:

25). Quantos termos devem ser somados na seqncia ,


1 3 1 3 1 3 1 3 1 3. . .
A partir do primeiro termo, para que a soma seja 13?
26). (PUC- SP - 76) Se A uma matriz 3 por 2 definida pela lei:

47
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Ento A se escreve:

27). Mostre a matriz A cujos elementos esto dados pela relao,

28). (F. SANTANA - 83) Dadas a matriz A quadrada de ordem 2, tal que:

e B tambm quadrada de ordem 2 , tal que bij = 2i 3j, ento A + B igual a:

29). Fazer um programa para sair com a matriz identidade de ordem N:


30). Dada a matriz A quadrada de ordem 2 tal que:

Ento a matriz:

48
Minicurso de UserRPL Fellipe Carvalho de Oliveira
31) A = ( aij ) uma matriz de ordem 2 2 com aij = 2-i se i = j e aij = 0 se i j. A
inversa de A :

32). (FCM STA CASA - 81) Seja a matriz A = ( aij ), de ordem 3, tal que:

Se o determinante de A igual a zero, ento k pertence ao conjunto:


a ) k {3, 1, 3 } b ) k {2, 1, 2 } c ) k { 0, 1/3, 1/2 } d ) k {3,3 } e ) k {1/3,
1/3}
33) (U. MACK - 80 ) Seja a funo f : R R denida por:

O valor de f(f(f(. . . f(0) . . .))),


a ) 0 b ) pode ser 1 c ) 3 d ) pode ser 3 e ) impossvel de calcular.
34). (PUC CAMP. - 80) Considerando N = { 0, 1, 2, 3, . . .} e, ainda:

Podemos afirmar que,


a ) A B tem 8 elementos b)AB=A c)AB=A d ) A B possui 4
elementos e ) n.d.a.
35). (ITA - 66) Quantos nmeros inteiros existem, de 1000 a 10000, no divisveis
nem por cinco nem por sete?
36). (UFRN - 84) O nmero de mltiplos de sete entre 50 e 150 :
a ) 9 b ) 12 c ) 14 d ) 16 e ) 23
37). (CESCEA - 75) Quantos nmeros mpares h entre 14 e 192?
a ) 88 b ) 89 c ) 87 d ) 86 e ) 90

49
Minicurso de UserRPL Fellipe Carvalho de Oliveira
38). (FGV - 81) A soma dos nmeros naturais no superiores a 1000, no divisveis
por 7, :
a ) 429429 b ) 500500 c ) 500500/7 d ) 999999/7 e ) n.d.a.
39). (CESGRANRIO - 84) A soma dos nmeros naturais menores que 100 e que
divididos por 5 deixam resto 2 :
a ) 996 b ) 976 c ) 990 d ) 991 e ) 998

50
Minicurso de UserRPL Fellipe Carvalho de Oliveira

7. Alguns Atalhos para Mtodos Matemticos


Problemas envolvendo mtodos nmeros so algo constante na vida do
estudante de engenharia. Portanto alguns atalhos para mtodos numricos so
mostrados neste capitulo de forma a que no se precise fazer todo um programa para
que se obtenha uma resposta rpida para determinado problema, o que otimiza muito o
trabalho/estudo.
7.1 Razes de Polinmios
Funo: PROOT
Argumento: vetor no nvel 1 da pilha com os coeficientes do polinmio (escrito
na forma geral) em ordem decrescente de expoente (do maior para menor).
Retorno: vetor no nvel 1 da pilha com as razes do polinmio.
Sintaxe: [ coef. de coef. de ... coef. de coef. de ] PROOT
2
Exemplo: Retorna as razes do polinmio x - 1 = 0.

[ 1 0 -1] PROOT

Atalho na calculadora: Seta para direita -> Boto 7 -> 3 opo (Solve poly..)

No primeiro campo se coloca um vetor com os coeficientes do polinmio na forma


geral e no segundo atravs do SOLVE encontra-se as razes

7.2 Resoluo de Sistemas de Equaes Lineares


Funo: LINSOLVE
Argumento: vetor no nvel 2 da pilha com as equaes a serem resolvidas outro
vetor no nvel 1 da pilha com as variveis.

51
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Retorno: no nvel 3 uma lista com os argumentos de entrada numa lista, no nvel
2 uma lista de pontos piv, no nvel 1 a soluo.
Sintaxe: [ equao1 equao2 ... equaoN ] [ x1 x2 ... xN ] LINSOLVE
Exemplo: Resolve o sistema x+2y = 1 , x+y = 0.

[ 'x+2*y-1=0' 'x+y=0'] [ 'x' 'y' ] LINSOLVE

Atalho na calculadora: Seta para direita -> Boto 7 -> 4 opo (Solve linear
system)

No primeiro campo pe-se a matriz dos coeficientes no segundo a matriz dos


termos independentes e no terceiro acha-se a soluo do sistema apertando-se SOLVE.

7.3 Soluo de Equao No Linear ou Transcendental.


Funo: ROOT.
Argumento: equao que se quer resolver no nvel 3, no nvel 2 a varivel e no
nvel 1 a aproximao inicial.
Retorno: a soluo no nvel 1.
Sintaxe: 'equao' 'varivel' aproximao_inicial ROOT
Exemplo:

'EXP(x)-COS(x^2)=1' 'x' 1 ROOT

Atalho na calculadora: Seta para direita -> Boto 7 -> 1 opo (Solve
equation)

52
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Digita-se a equao no primeiro campo entre aspas simples e logo ento no


campo da varivel aperta-se SOLVE.

7.4 Resoluo de Sistemas de Equaes No Lineares ou


Transcendentais
Funo: MSLV
Argumento: vetor no nvel 3 da pilha contendo as equaes a serem resolvidas
vetor no nvel 2 da pilha contendo as variveis e vetor no nvel 1 da pilha contendo as
aproximaes iniciais.
Retorno: vetor no nvel 1 com o conjunto soluo.
Sintaxe: [ '1 equao' ... 'N-sima equao' ] [ '1 varivel' ... 'N-sima
varivel'] [ aprox. inicial 1 varivel ... aprox. inicial da N-sima varivel ] MSLV
Exemplo:.

[ '(EXP(m)-569*n)=0' 'SIN(m)+COS(n)=0' ]
[ 'm' 'n'] [ 1 1 ] MSLV

Atalho na calculadora: Seta para direita -> Boto 7 -> 6 opo (MSLV)

53
Minicurso de UserRPL Fellipe Carvalho de Oliveira

O MSLV um comando da linguagem, para us-lo na pilha faa o descrito acima.

7.5 Soluo de Equaes Diferenciais Ordinrias de Primeira Ordem (da


forma y(t)=f(t,y))
As funes da linguagem para resoluo numrica de equaes diferenciais
todas usam a condio inicial x = 0 para y =0. Logo se voc estiver pensando em
realizar algum programa que precise resolver uma equao diferencial aconselho que
voc implemente algum mtodo numrico, por exemplo, Diferenas Finitas, e coloque-o
como sub-rotina do programa principal. Porm h um atalho fcil na calculadora para
resoluo de equaes diferenciais ordinrias de primeira ordem. Para acess-lo faa:
Seta para direita -> Boto 7 -> 2 opo

Aps apertar-se OK vai-se para.

54
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Onde se poder digitar a funo do lado direito da eq. Diferencial, as condies
iniciais e o valor da varivel independente e ento calcular o valor da varivel
dependente da funo integrada nesta situao.

7.6 Regresso
Digite: Seta para direita -> Boto 5 -> 3 opo (Fit data)

Aps apertar-se OK

Em DAT digite na primeira coluna os valores da varivel independente, na


segunda os valores da varivel dependente. Em Model escolha o tipo de regresso:
Linear, Logartmica, Exponencial, Potncia de X ou a que apresente o melhor coeficiente
de correlao r (em Best fit), mais prximo de 1 ou de -1.

7.7 interpolao Polinomial


A regresso pode ser usada para interpolao. Porm h funo especfica para
interpolao polinomial de um conjunto de pontos. A varivel independente a varivel
default.
Funo: LAGRANGE
Argumento: matriz no nvel 1 da pilha. Onde a primeira linha representa os
valores de x e a segunda linha representa os respectivos valores de y.
Retorno: Funo de interpolao.
Sintaxe: [[valores da varivel independente] [respectivos valores da varivel
dependente]] LAGRANGE

55
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Exemplo:

[[1342]
[6789]]
LAGRANGE

Atalho na calculadora: Seta para esquerda -> Boto 1 -> 12 opo
(LAGRANGE)

Ento:

7.8 Exerccio.
1). Para que fiquemos com um bom arsenal de ferramentas para mtodos
numricos vamos programar a regra dos trapzios de integrao numrica.
O algoritmo :
Entre com valores de x e y;
Programe a frmula da rea de um trapzio para todos os pontos dois a
dois ;

Some as reas.
Salve este programa na sua calculadora.

56
Minicurso de UserRPL Fellipe Carvalho de Oliveira

8. Anexos 1
Aqui so mostradas funes para manipulao de strings, listas e matrizes.
8.1 Strings
As funes para modificao dos caracteres das Strings so:

SUB
5 11 SUB

Este comando devolve uma parte da string, temos que dar a posio: valores que
so inicial e final.

REPL
3 123 REPL

Substitui uma string de caracteres em outra mediante o valor da posio.

POS
D POS

Este comando indica a posio do caractere que se encontra na string, neste caso a
letra D esta na posio 5.

SIZE

Este comando d-nos a quantidade de caracteres que tem uma string.

57
Minicurso de UserRPL Fellipe Carvalho de Oliveira

NUM

Este comando devolve o numero do primeiro caractere de uma string, no exemplo


acima o primeiro caractere um E o numero do caractere E 69.

CHR

Este comando o inverso do anterior a partir do numero do caractere d-nos o


caractere.

HEAD

Este comando devolve o primeiro caractere de uma string.

TAIL

Este comando retira-nos o primeiro caractere de uma string.

8.2 Listas
As funes para manipulao de lista so:

SUB
2 5 SUB

Este comando requer um valor inicial e outro final para selecionar os elementos que
se desejam obter de uma lista.

58
Minicurso de UserRPL Fellipe Carvalho de Oliveira

REPL
3 ESTIG REPL

Este comando permite substituir elementos dentro de uma lista, este requer o valor
da posio e o novo ou novos elementos.

GET
2 GET

Este comando permite obter um determinado elemento um a lista, este requer a


posio.

GETI
2 GETI

Este comando semelhante ao anterior, mas este permite obter a lista original, e o
nmero da posio seguinte e o elemento, requer a posio do elemento.

PUT
3 ABC PUT

Este comando trocar um elemento da lista por um novo, este precisa da posio e
novo elemento.

PUTI
3 MAR PUTI

59
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Este comando similar ao anterior, a diferena que este d-nos a posio do
elemento seguinte.

SIZE

Este elemento d-nos o nmero de elementos que contem um a lista.

POS
E POS

Este comando indica a posio de um elemento na lista.

HEAD

Este comando devolve o primeiro elemento que est na lista

TAIL

Este comando devolve todos os elementos menos o primeiro.

DOLIST
Este comando executa um programa ou uma funo a partir de listas.
Sintaxe:
1- Listas a utilizar
2- Quantidade de listas a utilizar
3- Programa ou funo que se executara com os valores das listas.
4- DOLIST
(1)- No se surpreenda os comandos seguintes vo ser explicados posteriormente
Exemplo:

60
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Insira valores de A { {} {1 2}V} IMPUT OBJ
Insira valores de B { {} {1 2}V} IMPUT OBJ
2 2 ^ SWAP 2 ^ + DOLIST

DOSUBS
Este comando aplica um procedimento seqencial com os elementos de uma lista.
Sintaxe:
1- Lista onde se encontram os valores a utilizar
2- Numero de elementos a utilizar em cada procedimento
3- Programa ou funo que se efetua com esta sequncia
4- DOSUBS
Exemplo:
Neste exemplo desejamos somar trs nmeros e elev-los ao cubo.
INSIRA A LISTA { {} {1 2}V} INPUT OBJ
3++3^
DOSUBS

Sintaxe 2 :
1- Lista onde se encontram os elementos
2- Programa ou funo a efetuar-se em cada elemento
3- DOSUBS

Exemplo:
Neste exemplo vo-se efetuar as seguintes funes -> Ln(Abs(x*c os(x))) para n
valores de X.
Insira valores { {} {1 2}V} INPUT OBJ
X X X COS * ABS LN
DOSUBS

NSUB
Este comando devolve a posio em que se esta efetuando o processo dentro do
comando DOSUBS.

ENDSUB
Este comando devolve a quantidade de vezes que efetuou o programa por cada
valor, e funciona dentro do comando DOSUBS.

61
Minicurso de UserRPL Fellipe Carvalho de Oliveira
STREAM
Este comando executa uma funo com cada elemento que exista dentro de uma
lista.
Sintaxe:
1- Lista onde se encontram os valores a utilizar por STREAM
2- Programa ou funo a executar com os valores
3- STREAM
Exemplo:
Neste exemplo vo-se efetuar as seguintes funes -> Ln(Abs(x*cos(x))) para
n valores de X.
Insira valores { {} {1 2}V} INPUT OBJ
X X X COS * ABS LN
STREAM

REVLIST

Este comando inverte a posio dos elementos de um a lista.

SORT

Este comando ordena os elementos de uma lista numericamente ou alfabeticamente.

SEQ
Este comando troca numa varivel de uma funo ou objeto valores dados um inicial
e outro final, variando num incremento, devolve um a lista de valores obtidos.
Sintaxe:
1- Funo ou objeto que se utiliza para trocar um a determinada varivel.
2- Varivel da funo onde se deseja trocar os valores.
3- Valor inicia l a trocar na funo.
4- Valor final a trocar na funo.
5- Incremento dado para cada repetio.
6- SEQ
Exemplo:

62
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Neste exemplo deseja-se substituir s os nmeros pares de uma funo,
introduzindo a funo valor inicial e valor final.
Insira a funo { {1 2} ALG} INPUT OBJ
Insira a varivel { {1 1} ALG} IMPUT OBJ
Insira valor inicial e final {:Vi: :Vf: {1 5}V} INPUT OBJ DTAG
SWAP DTAG DUPDUP 2 / IP 2 * = 1 + IFT SWAP 2 SEQ

8.3 Matrizes
Para montar uma matriz por colunas a partir de uma srie de vetores:
1. Introduza cada vetor na pilha, na mesma ordem que voc deseja que apaream na
matriz.
2. Entre com o nmero de colunas para a matriz desejada.

3. Pressione para montar os vetores numa matriz.

Para criar uma matriz preenchida com uma constante dada:


1. Entre com um dos seguintes itens na pilha:
Uma lista contendo as dimenses da matriz desejada na forma: {linha
coluna}.
Qualquer matriz, cujos elementos voc no se importa que sejam alterados.
2. Introduza a constante com a qual voc deseja preencher a matriz.

3. Pressione . Isto retorna uma matriz com as


dimenses especificadas, preenchida com a constante fornecida.

Para criar uma matriz identidade:


1. Entre com um dos seguintes itens na pilha:
Um nmero real que representa o nmero de linhas e colunas de uma matriz
identidade (quadrada).
Qualquer matriz quadrada, cujo contedo voc no se importa que sejam
alterados.

2. Pressione . Esta operao retorna uma matriz


identidade com as dimenses dadas.

Para desmembrar uma matriz em vetores-linha:


1. Entre com a matriz na pilha.

63
Minicurso de UserRPL Fellipe Carvalho de Oliveira

2. Pressione . A matriz desmembrada em vetores


(primeira linha at a ltima). O nvel 1 da pilha contm um nmero real representando o
nmero de linhas da matriz original.

Para desmembrar uma matriz em vetores-coluna:


1. Entre com a matriz na pilha.

2. Pressione . A matriz desmembrada em vetores


(primeira coluna at a ltima). O nvel 1 da pilha contm um nmero real representando o
nmero de colunas da matriz original.

Inserindo linhas e colunas


Para inserir uma ou mais linhas novas numa matriz:
1. Entre com a matriz alvo (aquela que voc deseja modificar) na pilha operacional.
2. Entre com o vetor, matriz ou elemento (quando o objeto alvo um vetor) que voc
deseja inserir. Uma matriz inserida deve possuir o mesmo nmero de linhas e colunas que a
matriz alvo.
3. Entre com o nmero da linha sobre a qual voc deseja inserir a nova matriz. Todos
os elementos localizados naquela linha da matriz alvo sero movidos para baixo,
acomodando a insero. Nmeros de linhas comeam de 1 e no de 0.

4. Pressione para inserir as novas linhas.

Para inserir uma ou mais colunas novas numa matriz:


1. Entre com a matriz alvo (aquela que voc deseja modificar) na pilha operacional.
2. Entre com o vetor, matriz ou elemento (quando o objeto alvo um vetor) que voc
deseja inserir. Uma matriz inserida deve possuir o mesmo nmero de linhas e colunas que a
matriz alvo.
3. Entre com o nmero da coluna sobre a qual voc deseja inserir a nova matriz.
Todos os elementos localizados naquela coluna da matriz alvo sero movidos para a direita,
acomodando a insero. Nmeros de colunas comeam de 1 e no de 0.

4. Pressione para inserir as novas colunas.

64
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Extraindo Linhas e Colunas
Para extrair uma linha especfica de uma matriz:
1. Entre com a matriz na pilha operacional.
2. Entre com o nmero da linha (ou a posio do elemento, caso a matriz alvo seja
um vetor) que voc deseja extrair.

3. Pressione . O vetor-linha (ou elemento) extrado


colocado no nvel 1 e a matriz com a linha removida colocada no nvel 2.

Para extrair uma coluna especfica de uma matriz:


1. Entre com a matriz na pilha operacional.
2. Entre com o nmero da coluna (ou a posio do elemento, caso a matriz alvo seja
um vetor) que voc deseja extrair.

4. Pressione . O vetor-coluna (ou elemento) extrado


colocado no nvel 1 e a matriz com a coluna removida colocada no nvel 2.

Invertendo Linhas e Colunas


Para inverter a posio de duas linhas numa matriz:
1. Entre com a matriz na pilha. Se a matriz for um vetor, ele ser considerado
um vetor-coluna.
2. Entre com os dois nmeros das linhas que sero trocadas.

3. Pressione . A matriz modificada ser deixada no


nvel 1.

Para inverter a posio de duas colunas numa matriz:


1. Entre com a matriz na pilha. Se a matriz for um vetor, ele ser considerado
um vetor-linha.
2. Entre com os dois nmeros das colunas que sero trocadas.

3. Pressione . A matriz modificada ser deixada no nvel 1

65
Minicurso de UserRPL Fellipe Carvalho de Oliveira

9. Anexos 2
9.1 Salvar Programa Feitos no HPUserEdit 5 no computador.
Escreva todo o programa no editor
Clique em Emulador -> Enviar ao emulador (Certifique-se de que este
programa ir para o nvel 1 da pilha)
No emulador clique em Edit -> Save Object
Escolha um local no seu computador para guard-lo, um nome para o
programa. Este programa j pode ser enviado para um calculadora.

9.2 Transferncias de Arquivos entre Calculadoras


Se o objeto (um programa, por exemplo) que voc deseja transferir no se encontra
no diretrio corrente ento voc deve selecionar o diretrio onde este objeto encontra-se; ou

seja, pressione para chegar rvore de diretrios; isto , a um visor similar ao


seguinte:

Em seguida com a tecla ou selecione o diretrio no qual o objeto, a ser


transferido, encontra-se. Aps selecionar o diretrio pressione CHDIR para que este seja o
diretrio corrente. Talvez voc queira tambm selecionar, na calculadora que ir receber os
dados, o diretrio que ir receb-los. Ento:
1. Alinhe as portas infravermelhas atravs das marcas . As calculadoras no
devem se distanciar mais de 5 cm.

66
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Na gura acima a calculadora da esquerda ir transmitir e a da direita ir receber os
dados.
A mquina que enviar a informao.

Pressione a seqncia de teclas: e ento aperte OK em Send to


Calculator .. e ento voc chegar na seguinte tela :

Pressionando CHOOSE a calculadora entrar no diretrio corrente para que voc


possa selecionar o objeto a ser transmitido. Faa isto e pressione OK, a calculadora
retornar com o visor acima j com o objeto pronto para ser enviado, o que pode ser feito
pressionando-se SEND , mas antes voc deve preparar a calculadora receptora.

A mquina que receber a informao

Pressione a seqncia de teclas: . Ento aperte OK em Get from


Calculator.

O ideal que as duas calculadoras estejam mais ou menos sincronizadas.

67
Minicurso de UserRPL Fellipe Carvalho de Oliveira
9.3 Transferncia de Arquivos entre Calculadora e PC
Primeiramente voc ir precisar instalar o programa PC Connectivity Kit de Hewlett
Packard (Conn4x_Portuguese) em seu computador. Aps feito isso abra o programa.
Abrir a seguinte tela:

Conecte sua calculadora via cabo USB ao computador. Aps se certificar de que a

calculadora est devidamente conectada ao computador clique em . A tela da


calculadora ficar da seguinte forma:

Logo ento no programa clique em . O computador e a calculadora se


conectaro, ento:

68
Minicurso de UserRPL Fellipe Carvalho de Oliveira

Apenas copie seus programas, bibliotecas no diretrio desejado e ento clique em

para desconectar os dispositivos. Uma caixa de seleo abrir. Clique em cancelar.

9.4 Instalao e Desinstalao de Bibliotecas


As bibliotecas do UserRPL so basicamente um agregado de programas reunidos
num diretrio e instalados em alguma porta (0, 1 ou 2). Para acessar qualquer biblioteca
instalada na calculadora a partir da pilha aperte seta para direita -> Boto 2. Escolha ento a
porta que contm a biblioteca desejada.
Para instalar a biblioteca na calculadora faa:
Transfira a biblioteca para a calculadora e ento a coloque no nvel 1 da pilha.
Digite o nmero da porta onde se quer instalar a biblioteca e coloque-o ento
no nvel 1 da pilha ( a biblioteca ir para o nvel 2).
Clique em STO.
Resete a calculadora apertando ON e F3 simultaneamente.
Para desinstalar uma biblioteca necessita-se de duas informaes: o nmero da
porta onde ela est instalada e seu nmero (acessado em seta para direita -> Boto 2). Para
desinstalar uma biblioteca ponha o seguinte cdigo no nvel 1 da pilha:
:nmero da porta: nmero da biblioteca PURGE
Os dois pontos so importantes. Logo ento clique em ENTER.

69
Minicurso de UserRPL Fellipe Carvalho de Oliveira

10. Referncias Bibliogrficas

Programando a HP 50g Uma Introduo ao Fascinante Universo da Programao :


http://www.pictronics.com.br/downloads/apostilas/programando-hp.pdf

Clculo cientco y tcnico con HP49g/49g+/48gII/50g:


http://www.epsem.upc.edu/~fpq/ale-hp/modulos/avanzado/user-rpl.pdf

Hp49G Curso de Programao:


http://pt.scribd.com/doc/20657504/programing-un-user-rpl-HP-50-G

Advanced User's Reference Manual, command reference and RPL guide From HP:
http://h10032.www1.hp.com/ctg/Manual/c00554621.pdf

HP 50g calculadora grfica - guia do usurio


http://www.dca.ufrn.br/~diogolr/hp50g/guia_usuario.pdf

70

Você também pode gostar