Вы находитесь на странице: 1из 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

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

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

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

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

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

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

1.4

Fellipe Carvalho de Oliveira

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

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

Nmero real

6.023E23

Nmero complexo

(2,5)

Texto String

Orale

Arrays (Vetor ou Matriz)

[1 3], [[2 3] [6 4]]

Arrays

com

nmeros [(2,3) (1,2)]

complexos
5

Listas

{0 1 2}

Nomes

Varivel em uso

i FOR i 1+ NEXT

Programa

X3/

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
Para desmontar uma lista faa

Fellipe Carvalho de Oliveira


. 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

Toda a tela

A rea de estado

A pilha

A rea de estado e a pilha

Os menus

Os menus e a rea de estado

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

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

1N1FOR 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
1n1FOR 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

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

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

elementos

c)AB=A

d ) A B possui 4

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

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

10.

Fellipe Carvalho de Oliveira

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