Escolar Documentos
Profissional Documentos
Cultura Documentos
Qumica UFC
Minicurso
De
UserRPL
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Prefcio
2
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Sumrio
1. Introduo ................................................................................................................. 5
1.1 Entendendo um Programa: Hello World .................................................... 5
1.2 Manejo da Pilha e Funes para Nmeros Reais ........................................ 5
1.3 Variveis Locais e Globais ............................................................................ 12
1.4 Operadores de Teste e Lgicos .................................................................... 14
1.5 Armazenando e Nomeando um Programa Na Calculadora ......................... 15
1.6 Executando um Programa na Calculadora e no Editor ................................. 15
1.7 Visualizando e Editando um programa na Calculadora ................................ 15
1.8 Executando o DBUG ..................................................................................... 15
2. Os Objetos da Calculadora ....................................................................................... 17
2.1 Nmeros Reais e Complexos ........................................................................ 18
2.2 String ............................................................................................................. 18
2.3 Objeto Algbrico ............................................................................................ 19
2.4 Programa ....................................................................................................... 19
2.5 Listas ............................................................................................................. 19
2.6 Matrizes ......................................................................................................... 19
3. Entrada de Dados ..................................................................................................... 23
3.1 INPUT ............................................................................................................ 23
3.2 CHOOSE ....................................................................................................... 24
3.3 INFORM ........................................................................................................ 25
3.4 PROMPT ....................................................................................................... 26
3.5 DISP FREEZE HALT ............................................................................... 27
4. Apresentao de Dados ........................................................................................... 28
4.1 MSGBOX ....................................................................................................... 28
4.2 TAG ............................................................................................................... 28
4.3 DISP FREEZE ............................................................................................ 29
5. Trabalhando com Equaes ..................................................................................... 31
5.1 Somatrio ...................................................................................................... 33
5.2 Derivadas ...................................................................................................... 33
5.3 Integrais ......................................................................................................... 34
5.4 Equaes Diferenciais ................................................................................... 35
6. Estruturas de Programao....................................................................................... 36
6.1 Estruturas de Repetio ................................................................................ 36
6.1.1 START NEXT, START STEP ............................................... 36
6.1.2 FOR NEXT, FOR STEP. 37
3
Minicurso de UserRPL Fellipe Carvalho de Oliveira
6.1.3 DO UNTIL END 39
6.1.4 WHILE REPEAT END 40
6.2 Estruturas de Deciso .. 41
6.2.1 IF THEN END........................................................................ 41
6.2.2 IF THEN ELSE END ........................................................... 41
6.2.3 CASE THEN END ................................................................. 43
6.3 Exerccios ...................................................................................................... 45
7. Alguns atalhos para Mtodos Matemticos .............................................................. 51
7.1 Razes de Polinmios .................................................................................... 51
7.2 Resoluo de Sistemas de Equaes Lineares ........................................... 51
7.3 Raiz de Equao No Linear ou Transcendental ...................................... 52
7.4 Resoluo de Sistema de Equaes No Lineares ou Transcendentais... 53
7.5 Soluo de Equaes Diferenciais de Primeira Ordem (na forma y(t) =
f(t,y))............................................................................................................... 54
7.6 Regresso ..................................................................................................... 55
7.7 Interpolao ................................................................................................... 55
7.8 Exerccio ........................................................................................................ 56
8. Anexos 1 ................................................................................................................... 57
8.1 Manipulao de Strings ................................................................................. 57
8.2 Manipulao de Listas ................................................................................... 58
8.3 Manipulao de Matrizes .............................................................................. 63
9. Anexos 2 ................................................................................................................... 66
10.1 Salvar Programa Feitos no HPUserEdit 5 no computador ......................... 66
10.2 Transferncia de Arquivos entre Calculadoras ........................................... 66
10.3 Transferncia de Arquivos entre Calculadora e PC ................................... 68
10.4 Instalao e Desinstalao de Bibliotecas ................................................. 69
10. Referncias Bibliogrficas ....................................................................................... 70
4
Minicurso de UserRPL Fellipe Carvalho de Oliveira
1. Introduo
Ao se programar a seqncia de comandos colocada na memria RAM da
calculadora onde ser feito o processamento passo a passo. Para que se gere resultado
coerente no deve haver erros de lgica tampouco de sintaxe. A lgica fica a cargo do
programador. A retido da sintaxe (de acordo com os padres da linguagem) verificada
pela calculadora que compilar se esta estiver correta ou acusar erro seno for o caso.
Nosso editor de cdigo UserRPL nos auxilia com vrios comandos pr-formados.
Comando DUP
5
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Comando SWAP
Comando DROP
Comando OVER
Comando ROT
Comando UNROT
6
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Comando ROLL
4 ROLL
Este comando tem de inserir o nvel que quer trocar pelo primeiro, neste caso troquei o 4, (4
ROLL).
Comando ROLLD
3 ROLLD
Este comando passa o nvel 1 para o nvel indicado neste caso passamos o 1 para o 3 (3
ROLLD).
Comando PICK
3 PICK
Este comando permite Copiar o nvel desejado para o nvel 1 neste caso copiamos o nvel 3
(3 PICK).
Comando UNPICK
5 UNPICK
Este comando similar ao anterior cota o nvel 1 e cola no nvel desejado, neste caso o
nvel 5 (5 UNPICK).
7
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Comando PICK3
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
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
Comando NIP
Comando NDUPN
3 NDUPN
9
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Valor Absoluto
Comando CEIL
Comando FLOOR
Comando FP
Comando IP
Comando MANT
Mantissa do argumento.
10
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Comando MAX
Comando MIN
Comando MOD
Comando RND
Comando SIGN
11
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Comando TRNC
12
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Ao executar o programa note a criao de duas novas variveis no seu diretrio
atual. Se queremos que as variveis no apaream devemos fazer o seguinte:
6 'X' STO
8 'Y' STO
'X ^ 2 + Y ^ 2' EVAL
'X' PURGE
'Y' PURGE
Otimizando:
6 'X' STO
8 'Y' STO
'X ^ 2 + Y ^ 2' EVAL
{ X Y } PURGE
Variveis locais so aquelas variveis temporais do programa, ou seja, esto
presentes apenas na execuo de programas e sero as variveis com as quais vamos
trabalhar com freqncia.
Uma estrutura de varivel local possui uma das seguintes organizaes dentro de
um programa:
nome1 nome2. . . nomeN objeto algbrico
Ou,
nome1 nome2. . . nomeN programa
O comando (de atribuio) remove n objetos da pilha e os armazena nas variveis
locais, cujos nomes so listados em seguida. Exemplo:
1 2 3 a b c
abc++
Essas variveis s podem ser utilizadas dentro deste subprograma e no so
encontradas em outros ambientes ou subprogramas. No caso de variveis locais no
necessria sua remoo uma vez que estas so eliminadas logo aps o trmino do
subprograma.
13
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Todas as funes acima retornam 1 para teste verdadeiro ou 0 para teste falso
Operadores lgicos ( ):
Funo de comparao Descrio
AND Retorna 1 se os dois argumentos so
verdadeiros (0 seno).
OR Retorna 1 se os dois argumentos ou
algum deles verdadeiro (0 seno).
XOR Retorna 1 se algum dos dois argumentos
verdadeiro. (0 se os dois so
verdadeiros ou se os dois so falsos).
NOT Retorna 1 se o argumento 0 e vice-
versa.
Exemplo Exemplo
3 6 a b 0 1 AND
ab<
14
Minicurso de UserRPL Fellipe Carvalho de Oliveira
ab ab
'(a+b)' EVAL a b + 0.5 ^
15
Minicurso de UserRPL Fellipe Carvalho de Oliveira
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
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:
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
18
Minicurso de UserRPL Fellipe Carvalho de Oliveira
2.3 Objeto Algbrico
Em geral vem a ser as equaes e so de uso regular dentro dos programas.
Exemplo:
'X+Y'
Para encontrar o valor de uma operao pode-se usar este objeto em vez das
operaes comuns da pilha. Vejamos:
6 12 x y
'x^2+y^2' EVAL
A funo EVAL necessria neste caso. Esta funo revela o contedo de qualquer
varivel podendo-lhe estar atribudo a esta varivel qualquer objeto (matrizes, listas,
complexos e etc.).
2.4 Programa
Os programas realizam seqncias de operaes. Os programas tambm podem
ser usados como funes dentro das equaes, j que so capazes de recolher e devolver
argumentos, desta forma a programao fica mais organizada, sendo esta prtica bastante
recomendvel.
2.5 Listas
Uma lista constituda de objetos (nmeros, letras, grfico, etc.) entre chaves e
separados por um espao (tecla SPC). Uma lista o que, em matemtica, comumente
conhecemos por conjunto. Exemplo de lista:
{ 1 5 a { b c} }
Este um recurso muito importante para manipulao de objetos.
Para gerar uma lista a partir de objetos da pilha faa:
Ponha os objetos na ordem a qual se quer que estejam na pilha. Esta ordem
ser a mesma destes objetos na lista.
Digite o nmero de objetos e aperte ENTER.
V a .
19
Minicurso de UserRPL Fellipe Carvalho de Oliveira
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}.
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,
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.
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:
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:
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
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
31
Minicurso de UserRPL Fellipe Carvalho de Oliveira
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
33
Minicurso de UserRPL Fellipe Carvalho de Oliveira
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 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'
'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.
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.
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.
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.
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.
40
Minicurso de UserRPL Fellipe Carvalho de Oliveira
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:
42
Minicurso de UserRPL Fellipe Carvalho de Oliveira
1N1-
FOR i
*
NEXT
"O Resultado " TAG
Observe que neste exemplo usou-se uma matriz para guardar valores. Se
fssemos usar as operaes normais na pilha faramos:
"Digite N
"
""
INPUT OBJ n
1n
FOR i
IF i 2 MOD 0 ==
THEN
DUP
ELSE
i1+2/
END
NEXT
1n1-
FOR i
*
NEXT
"O resultado " TAG
6.2.3 CASE THEN END END
A estrutura CASE... END permite executar uma srie de casos (testes). O
primeiro teste que tem um resultado verdadeiro causa a execuo da correspondente
clusula verdadeira, finalizando a estrutura CASE... END. Opcionalmente, pode-se
incluir aps o ltimo teste uma clusula de default que se executar se todos os
testes forem falsos.
43
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Sintaxe:
... CASE Clusula de teste 1
THEN
Seqncias a se executar se a clusula de teste 1 for verdadeira
END (Clusula de teste 2)
THEN
Seqncias a se executar se a clusula de teste 2 for verdadeira
END
Seqncias-padro a se executar (se nenhuma das clusulas anteriores for
verdadeira), que so opcionais.
END
...
Exemplo:
Testar o tipo da varivel. No se esquea de atribuir-lhe objeto.
CLLCD
y
CASE y TYPE 2 ==
THEN
"A varivel uma string " MSGBOX
END y TYPE 5 ==
THEN
"A varivel uma lista " MSGBOX
END y TYPE 8 ==
THEN
"A varivel um programa " MSGBOX
END
END
44
Minicurso de UserRPL Fellipe Carvalho de Oliveira
6.3 Exerccios
1). Faa um programa para sair com os N primeiros termos de uma P.A. (progresso
aritmtica), de dois modos distintos:
( a ) em uma lista ( b ) em um vetor.
2). Faa um programa para calcular o produto dos N primeiros termos de uma P.A.
3). Faa um programa para calcular a soma dos N primeiros termos de uma P.G.
4). Faa um programa para calcular o seguinte somatrio:
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 Fellipe Carvalho de Oliveira
11). Faa um programa para sair (em lista ou vetor) com os N primeiros termos das
seguintes 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:
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
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:
47
Minicurso de UserRPL Fellipe Carvalho de Oliveira
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 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:
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
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)
52
Minicurso de UserRPL Fellipe Carvalho de Oliveira
53
Minicurso de UserRPL Fellipe Carvalho de Oliveira
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
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
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 Fellipe Carvalho de Oliveira
NUM
CHR
HEAD
TAIL
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
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
POS
E POS
HEAD
TAIL
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
SORT
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.
63
Minicurso de UserRPL Fellipe Carvalho de Oliveira
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.
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.
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.
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
68
Minicurso de UserRPL Fellipe Carvalho de Oliveira
69
Minicurso de UserRPL Fellipe Carvalho de Oliveira
Advanced User's Reference Manual, command reference and RPL guide From HP:
http://h10032.www1.hp.com/ctg/Manual/c00554621.pdf
70