Beruflich Dokumente
Kultur Dokumente
Qumica UFC
Minicurso
De
UserRPL
Minicurso de UserRPL
Prefcio
Minicurso de UserRPL
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
6.1.2
Minicurso de UserRPL
6.1.3
DO UNTIL END 39
6.1.4
IF THEN END........................................................................ 41
6.2.2
6.2.3
Minicurso de UserRPL
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
e so
elas:
Comando DUP
Minicurso de UserRPL
Comando SWAP
Comando UNROT
Minicurso de UserRPL
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
Comando PICK3
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
Minicurso de UserRPL
Comando DROPN
3 DROPN
Este comando permite apagar um determinado nmero de nveis na pilha neste caso
apagamos 3 (3 DROPN).
Comando DUPDU
e so
elas:
Comando ABS
Minicurso de UserRPL
Valor Absoluto
Comando CEIL
Comando IP
Mantissa do argumento.
10
Minicurso de UserRPL
Comando MAX
Comando RND
11
Minicurso de UserRPL
Comando TRNC
Alguns
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
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
Ou,
programa
1 2 3 a b c
abc++
Minicurso de UserRPL
1.4
):
Funo de comparao
Descrio
SAME
==
<
>
Todas as funes acima retornam 1 para teste verdadeiro ou 0 para teste falso
Operadores lgicos (
):
Funo de comparao
Descrio
AND
OR
XOR
verdadeiro.
(0
se
os
dois
so
Exemplo
Exemplo
3 6 a b
0 1 AND
ab<
14
Minicurso de UserRPL
ab
ab
'(a+b)' EVAL
a b + 0.5 ^
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
1.8
Executando o DBUG
Minicurso de UserRPL
. Se se quiser avanar
de uma vez o programa digite CONT e aperte ENTER (ou ento faa
).
Digite os valores requeridos na pilha e na ordem correta (se isto for necessrio);
V a
e v avanando em
Para ver, mas no executar o prximo (ou os prximos dois passos), pressione
NXT.
Para continuar com a execuo normal, pressione CONT (
).
16
Minicurso de UserRPL
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
com
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
17
Backup Objeto
Backup MYDIR
18
Funo Interna
SIN
19
Comando Interno
CLEAR
20
<128d>
21
1.23E2
22
Complexo longo
17
Minicurso de UserRPL
24
Caractere
25
Code Object
Code
26
Dados de Biblioteca
Library Data
28
Nmeros inteiros
25
30
Fontes
Ft8_25: Wilancha
5 -3.6
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
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} }
Ponha os objetos na ordem a qual se quer que estejam na pilha. Esta ordem
ser a mesma destes objetos na lista.
V a
19
Minicurso de UserRPL
Para desmontar uma lista faa
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
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
Exemplo:
4 5 5 6 { 2 2 } ARRY
Uma lista contendo a linha e a coluna do elemento que voc deseja extrair: {linha,
coluna}.
3. Pressione
Exemplo:
4 5 5 6 { 2 2 } ARRY
{ 1 1 } GET
Uma lista contendo a linha e a coluna do elemento que voc deseja extrair: {linha
coluna}.
na localizao escolhida.
4 5 5 6 { 2 2 } ARRY
{ 1 1 } 1.2323 PUT
Minicurso de UserRPL
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 ] ] *
[ [ 2 4 ] [ 3 5 ] ] DUP INV
[ [ 2 4 ] [ 3 5 ] ] TRN
DET (Determinante)
[ [ 2 4 ] [ 3 5 ] ] DET
[ [ 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
Para uma matriz digite dois ndices separados por vrgula (nmero da linha,
nmero coluna).
Exemplo:
[ [ 2 4 ] [ 3 5 ] ] matriz
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
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.
23
Minicurso de UserRPL
Exemplo:
"Digite um nmero"
""
INPUT OBJ
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:
24
Minicurso de UserRPL
Exemplo:
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}.
Aplicando-lhe INFORM
25
Minicurso de UserRPL
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:
PROMPT
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
Argumento
rea Congelada
Toda a tela
A rea de estado
A pilha
Os menus
A pilha e os menus
a2^
27
Minicurso de UserRPL
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:
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
Exemplo:
Minicurso de UserRPL
30
Minicurso de UserRPL
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
Minicurso de UserRPL
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:
"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
, 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
Minicurso de UserRPL
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
34
Minicurso de UserRPL
2 5 'x^2-2' 'x'
35
Minicurso de UserRPL
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.
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
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
Minicurso de UserRPL
"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 ...
1 21
FOR j
j SQ
38
Minicurso de UserRPL
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
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
UNTIL r n ==
END
6.1.4
"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
IF THEN 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
6.2.2
Sintaxe:
. . . IF
Clusula de teste
THEN
41
Minicurso de UserRPL
Clusula verdadeira
ELSE
Clusula falsa
END . . .
"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
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
Minicurso de UserRPL
Sintaxe:
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
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:
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:
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
11). Faa um programa para sair (em lista ou vetor) com os N primeiros termos das
seguintes sequncias:
, onde n = 1, 2, 3, . . . Se a1 = 0, ento a6 :
a). 25 b). 27 c). 29 d). 31
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
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:
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:
3. . .
47
Minicurso de UserRPL
Ento A se escreve:
28). (F. SANTANA - 83) Dadas a matriz A quadrada de ordem 2, tal que:
Ento
a matriz:
48
Minicurso de UserRPL
32). (FCM STA CASA - 81) Seja a matriz A = ( aij ), de ordem 3, tal que:
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
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
coef. de
... coef. de
coef. de
] PROOT
[ 1 0 -1] PROOT
Atalho na calculadora: Seta para direita -> Boto 7 -> 3 opo (Solve poly..)
Minicurso de UserRPL
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.
Atalho na calculadora: Seta para direita -> Boto 7 -> 4 opo (Solve linear
system)
Atalho na calculadora: Seta para direita -> Boto 7 -> 1 opo (Solve
equation)
52
Minicurso de UserRPL
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' ]
'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
54
Minicurso de UserRPL
Aps apertar-se OK
Minicurso de UserRPL
Exemplo:
[[1342]
[6789]]
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 :
Some as reas.
56
Minicurso de UserRPL
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
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
57
Minicurso de UserRPL
NUM
TAIL
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
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
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
HEAD
TAIL
60
Minicurso de UserRPL
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
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
SORT
Minicurso de UserRPL
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
2. Pressione
63
Minicurso de UserRPL
2. Pressione
64
Minicurso de UserRPL
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
65
Minicurso de UserRPL
9. Anexos 2
9.1 Salvar Programa Feitos no HPUserEdit 5 no computador.
seguinte:
ou
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
Calculator.
67
Minicurso de UserRPL
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
. O computador e a calculadora se
conectaro, ento:
68
Minicurso de UserRPL
Clique em STO.
69
Minicurso de UserRPL
10.
Referncias Bibliogrficas
70