CURSO DE PROGRAMAÇÃO EM
CALCULADORA HP 49-50G e HP 48G
Programação BÁSICA e AVANÇADA
(para iniciantes)
Prof. Lauro César Galvão, Dr.
2011
ii
SUMÁRIO
1 Organização da HP 49-50G (48G) ..................................................................................... 1 1.1 Preparação .................................................................................................................... 1
1.1.1 Passar do modo ALGÉBRICO para o modo RPN ............................................... 1 1.1.2 Limpar Diretórios ................................................................................................. 1
1.2 Criar Diretórios ............................................................................................................ 2
1.2.1 Criar diretório “CURSO”, “UTFPR” e “LIXO” na raiz. ...................................... 2 1.2.2 Criar diretório “BASI” (Básico), dentro de CURSO ............................................ 3 1.2.3 Criar diretório “AVAN” (Avançado) dentro de CURSO ..................................... 3
2 HP 49-50G (48G): Programação Básica ............................................................................ 3 2.1 Exemplo 01 .................................................................................................................. 4
2.1.1 Criar 7 variáveis (na ordem inversa) .................................................................... 4 2.1.2 Programar Fórmulas ............................................................................................. 5
2.1.3 Alimentação .......................................................................................................... 7 2.2 Visualizar e Editar fórmulas ........................................................................................ 8
2.2.1 Fórmula X01 ......................................................................................................... 8 2.2.2 Substituição .......................................................................................................... 8
2.3 Utilização: Preenchimento da tabela ............................................................................ 9
2.4 Exercício para treinamento: ....................................................................................... 11 2.4.1 Fazer a programação:.......................................................................................... 11
2.4.2 Alimentar o Programa ........................................................................................ 11 3 HP 49-50G (48G): Programação Avançada ..................................................................... 12
3.1 Exemplo 01 ................................................................................................................ 13 3.1.1 Criar 8 variáveis (na ordem inversa) .................................................................. 13
3.1.2 Programar Fórmulas ........................................................................................... 14 3.1.3 Fórmula 1: SOLV ............................................................................................... 15
3.1.4 Fórmula 2: FXY ................................................................................................. 17 3.1.5 Alimentação ........................................................................................................ 18 3.1.6 Utilização ............................................................................................................ 19
3.2 Exercício para treinamento: ....................................................................................... 21 3.2.1 Fazer a programação:.......................................................................................... 21
3.2.2 Alimentar o Programa ........................................................................................ 21 3.3 Comandos Auxiliares (50g) ....................................................................................... 22
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 1 de 22
1 Organização da HP 49-50G (48G)
1.1 Preparação
1.1.1 Passar do modo ALGÉBRICO para o modo RPN
MODE CHOOS OK OK (48G) {Única opção RPN}
1.1.2 Limpar Diretórios
Ir para o diretório RAIZ: Apertar a tecla VAR
VAR ... Repetir o comando até chegar à raiz (48G) ‟
Se em seu visor encontram-se diretórios e variáveis que você desconhece, pode apagar tudo.
Como apagar diretórios e variáveis
(50G) APPS OK NXT
Aperte / descendo ou subindo com as setas em tudo que for para apagar.
PURG ENTER ON VAR
O diretório CASDI poderá aparecer automaticamente. IGNORE.
Algumas variáveis de controle sempre aparecem no diretório em que a HP encontra-se.
Vamos criar o diretório LIXO e sempre usá-lo, quando não estivermos em um programa.
Assim, todas as variáveis de controle estarão dentro do lixo e não em diretórios importantes.
(48G) Deveremos entrar no diretório e limpá-lo antes de apagá-lo.
‟ Variável PURG {Apaga a variável}
‟ DiretórioVazio PURG {Apaga o diretório vazio}
Outra forma:
VAR / {Marcar todas as variáveis que quiser apagar}
NXT PURG {Apaga o que foi marcado, diretório caso esteja vazio}
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 2 de 22
1.2 Criar Diretórios
1.2.1 Criar diretório “CURSO”, “UTFPR” e “LIXO” na raiz.
(48G) VAR NEW ...(CONTINUA IGUAL 50G)
(50G) APPS OK NXT NEW ...(SEGUE ABAIXO)
Diretório “CURSO”:
APPS OK NXT NEW EDIT ALPHA ALPHA C U R S O ENTER / ENTER ON
Diretório “UTFPR”:
APPS OK NXT NEW EDIT ALPHA ALPHA U T F P R ENTER / ENTER ON
Diretório “LIXO”:
APPS OK NXT NEW EDIT ALPHA ALPHA L I X O ENTER / ENTER ON
Entrar em “CURSO” VAR CURSO
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 3 de 22
1.2.2 Criar diretório “BASI” (Básico), dentro de CURSO
APPS OK NXT NEW EDIT ALPHA ALPHA B A S I ENTER / ENTER ON
1.2.3 Criar diretório “AVAN” (Avançado) dentro de CURSO
APPS OK NXT NEW EDIT ALPHA ALPHA A V A N ENTER / ENTER ON
2 HP 49-50G (48G): Programação Básica
Entrar em “BASI” VAR BASI
Criar diretório “EX01” (Exemplo 01)
APPS OK NXT NEW EDIT ALPHA ALPHA E X 0 1 ENTER / ENTER ON
Entrar em “EX01” VAR EX01
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 4 de 22
2.1 Exemplo 01 Vamos programar as seguintes fórmulas para preencher a tabela abaixo:
1jx jx h , para j 0,1,2,, m 1
1jy jy 2
h( 1k 2k ), para j 0,1,2,, m 1
onde 1k f ( jx , jy ) e 2k f ( jx h , jy h 1k ).
Sabendo que 0x 0, 0y 2, a 0, b 1, h =0,1, m h
ab m 10.
Sabendo também que 2),( yxyxf .
j jx jy 1k 2k
0 0 2
1
2
3
4
5
6
7
8
9
10
2.1.1 Criar 7 variáveis (na ordem inversa)
“X01”, “Y01”, “X0”, “Y0”, “K1”, “K2”, “H”
“H” 1 ENTER ALPHA H STO
“K2” 1 ENTER ALPHA K 2 STO
“K1” 1 ENTER ALPHA K 1 STO
“Y0” 1 ENTER ALPHA Y 0 STO
“X0” 1 ENTER ALPHA X 0 STO
“Y01” 1 ENTER ALPHA Y 0 1 STO
“X01” 1 ENTER ALPHA X 0 1 STO
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 5 de 22
2.1.2 Programar Fórmulas
Para todas as fórmulas será utilizada a programação << >> da HP
50G
...(PARA A 50G)
(48G)
...(PARA A 48G)
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 6 de 22
Fórmula 1: X01 = X0 H
1jx jx h X0 H
X0 NXT H NXT ENTER
X01
Fórmula 2: Y01 = Y0 H/2 (K1 K2)
1jy jy 2
h( 1k 2k )
)(
)(
212
212
212
K2 K1 2 H YO
kky
kk
kk
hj
h
h
Y0 H 2 K1 K2
Y0 NXT H NXT 2 K1 K2 ENTER
Y01
Fórmula 3: K1 = X0 Y0 2 2),( yxyxf
1k f ( jx , jy ) 2 jj yx X0 Y0 2
X0 Y0 2 ENTER
K1
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 7 de 22
Fórmula 4: K2 = (X0 H) (Y0 H K1) 2
2),( yxyxf
2k f ( jx h , jy h 1k ) 2)( 1 khyhx jj
2)(
)(
1
1
1
1
2 K1 H Y0 H XO
khyhx
khyhx
khy
khhx
jj
jj
j
j
X0 H + Y0 H K1 2
X0 NXT H NXT Y0 NXT H NXT K1 2 ENTER
K2
2.1.3 Alimentação
Sabemos que 0x 0, 0y 2 e h =0,1.
Fazer X0 0
0x 0
0 X0
Fazer Y0 2
0y 2
2 Y0
Fazer H 0,1 h =0,1
NXT 0 , 1 H NXT
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 8 de 22
2.2 Visualizar e Editar fórmulas ANTES de visualizar qualquer fórmula, sempre limpar o visor da HP.
2.2.1 Fórmula X01
Visualizar X01
Editar (48G) / (Apenas este comando) TOOL
EDIT
Percorrer com as setas até o local da modificação, apagar e acrescentar o certo.
Como exemplo, vamos TOCAR O POR .
ENTER
2.2.2 Substituição
Caso fossemos substituir a formula em X01, bastaríamos executar o comando abaixo:
VAR X01
Mas não vamos fazer a substituição, pois a fórmula está correta.
Então, simplesmente limpe a tela com o CLEAR e após acione VAR.
Notem que ao acionar VAR, as variáveis aparecem.
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 9 de 22
2.3 Utilização: Preenchimento da tabela
j jx jy 1k 2k
0 0 2
1
2
3
4
5
6
7
8
9
10
Iteração j 1:
K1 COPIAR O RESULTADO
K2 COPIAR O RESULTADO
X01 COPIAR O RESULTADO
Y01 COPIAR O RESULTADO
j jx jy 1k 2k
0 0 2 0 0,1
1 0,1 2,005
Y0 Joga o valor Y01 em Y0
X0 Joga o valor X01 em X0
CLEAR Apagar todos os valores da TELA.
Iteração j 2:
K1 COPIAR O RESULTADO
K2 COPIAR O RESULTADO
X01 COPIAR O RESULTADO
Y01 COPIAR O RESULTADO
j jx jy 1k 2k
0 0 2 0 0,1
1 0,1 2,005 0,095 0,1855
2 0,2 2,019025
Y0 Joga o valor Y01 em Y0
X0 Joga o valor X01 em X0
CLEAR Apagar todos os valores da TELA.
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 10 de 22
Iteração j 3:
K1 COPIAR O RESULTADO
K2 COPIAR O RESULTADO
X01 COPIAR O RESULTADO
Y01 COPIAR O RESULTADO
j jx jy 1k 2k
0 0 2 0 0,1
1 0,1 2,005 0,095 0,1855
2 0,2 2,019025 0,180975 0,2628775
3 0,3 2,041217625
4
Y0 Joga o valor Y01 em Y0
X0 Joga o valor X01 em X0
CLEAR Apagar todos os valores da TELA.
... Repetir o passo anterior.
j jx jy 1k 2k
0 0 2 0 0,1
1 0,1 2,005 0,095 0,1855
2 0,2 2,019025 0,180975 0,2628775
3 0,3 2,041217625 0,258782375 0,332904138
4 0,4 2,070801951 0,329198049 0,396278244
5 0,5 2,107075765 0,392924235 0,453631811
6 0,6 2,149403568 0,450596432 0,505536789
7 0,7 2,197210229 0,502789771 0,552510794
8 0,8 2,249975257 0,550024743 0,595022269
9 0,9 2,307227608 0,592772392 0,633495153
10 1 2,368540985
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 11 de 22
2.4 Exercício para treinamento: Voltar um diretório. Dentro do diretório BASE, criar o diretório EQ2G. Entrar em EQ2G.
Tome a equação do 2o grau 02 cbxax com 0a .
Programar a fórmula de Bhaskara: a
bx
2
com acb 42 .
Criar 6 variáveis (na ordem inversa)
“X1”, “X2”, “DELTA”, “A”, “B”, “C”
2.4.1 Fazer a programação:
Fórmula DELTA: B B × 4 A × C × ENTER DELTA
Fórmula X1:
B / DELTA X 2 A × ENTER X1
Fórmula X2:
B / DELTA X 2 A × ENTER X2
2.4.2 Alimentar o Programa
Resolver a equação: 02142 xx
Resposta:
7
3
2
1
x
x
1 A
4 / B
21 / C
X1
X2
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 12 de 22
3 HP 49-50G (48G): Programação Avançada
Entrar em “AVAN” VAR AVAN
Criar diretório “EX01” (Exemplo 01)
APPS OK NXT NEW EDIT ALPHA ALPHA E X 0 1 ENTER / ENTER ON
Entrar em “EX01” VAR EX01
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 13 de 22
3.1 Exemplo 01 Vamos programar as seguintes fórmulas para preencher a tabela abaixo:
1jx jx h , para j 0,1,2,, m 1
1jy jy 2
h( 1k 2k ), para j 0,1,2,, m 1
onde 1k f ( jx , jy ) e 2k f ( jx h , jy h 1k ).
Sabendo que 0x 0, 0y 2, a 0, b 1, h =0,1, m h
ab m 10.
Sabendo também que 2),( yxyxf .
j jx jy 1k 2k
0 0 2
1
2
3
4
5
6
7
8
9
10
3.1.1 Criar 8 variáveis (na ordem inversa)
“RESUL”, “SOLV”, “FXY”, “X0”, “Y0”, “A”, “B”, “H”
“H” 1 ENTER ALPHA H STO
“B” 1 ENTER ALPHA B STO
“A” 1 ENTER ALPHA A STO
“Y0” 1 ENTER ALPHA Y 0 STO
“X0” 1 ENTER ALPHA X 0 STO
“FXY”
1 ENTER ALPHA ALPHA F X Y ALPHA STO
“SOLV” 1 ENTER ALPHA ALPHA S O L V ALPHA STO
“RESUL” 1 ENTER ALPHA ALPHA R E S U L ALPHA STO
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 14 de 22
3.1.2 Programar Fórmulas
Para todas as fórmulas será utilizada a programação << >> da HP
50G
...(PARA A 50G)
(48G)
...(PARA A 48G)
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 15 de 22
3.1.3 Fórmula 1: SOLV
Para se trabalhar com programação, alguns comandos específicos são necessários.
Neste caso iremos utilizar dois deles: ROW→ e ROW
Como acessar estes comandos: 5 {Acessa o MATRICES MENU}
OK {Acessa o MATRIX CREATE MENU}
OK {Desce para o 2.ROW..}
{Acessa o CREATE ROW MENU}
OK {Desce para o 2.ROW→}
OK {Desce para o 3.ROW}
(48G) MTH {Acessa o menu no VISOR}
MATR {Entrar em MATR}
ROW {Entrar em ROW}
ROW→
ROW {Escolher um dos dois}
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 16 de 22
Entrar na programação:
<< >> (48G)
<< {Abre o programa}
[ 1 2 3 4 5 ] 1 ROW→ {Joga o vetor [1 2 3 4 5] para a primeira linha de uma matriz}
X0 „X‟ STO {Joga o valor de X0 em X}
Y0 „Y‟ STO {Joga o valor de Y0 em Y}
B A H „M‟ STO {Joga o valor de h
ab em M} m
h
ab
0 M FOR J {Faz a variação de 0 até M, para a variável J}
X „U‟ STO {Joga o valor de X em U} u jx
Y „V‟ STO {Joga o valor de Y em V} v jy
FXY EVAL {Resolve a função FXY em U e V}
„K1‟ STO {Joga o resultado de FXY em K1} 1k f ( jx , jy )
X H „U‟ STO u jx h
Y H K1 „V‟ STO v jy h 1k
FXY EVAL
„K2‟ STO 2k f ( jx h , jy h 1k )
[ 0 0 0 0 0 ] {Cria o vetor [0 0 0 0 0]}
1 J PUT 2 X PUT 3 Y PUT 4 K1 PUT 5 K2 PUT
{Substitui os valores calculados no vetor criado}
0 0,1
j jx jy 1k 2k
0j 00 x 20 y 1k 2k J 2 ROW {Adiciona o vetor à )2( j linha da matriz inicial}
X H „X‟ STO {Calcula o próximo X} 1jx jx h
Y H 2 K1 K2 „Y‟ STO {Calcula o próximo Y} 1jy jy 2
h( 1k 2k )
1 2 3 4 5
0 2 0 0,1
0,1 2,005
j jx jy 1k 2k
0j
1j
NEXT
„X‟ „Y‟ „M‟ „K1‟ „K2‟ „U‟ „V‟ {Pega todas as variáveis auxiliares}
PURGE PURGE PURGE PURGE PURGE PURGE PURGE {Apaga todas}
„RESUL‟ STO {Joga a matriz criada para a variável RESUL}
>> {Fecha o programa}
ENTER
Observação: PURGE
(50G) SYMB ALPHA Q
{10× seta para cima}
OK
{No próximo uso fazer APENAS}
SYMB OK
(48G) EEX {Acesso: PURG}
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 17 de 22
SOLV {Joga o programa para a variável SOLV}
3.1.4 Fórmula 2: FXY
Até agora não foi dada a função FXY. No programa ela foi considerada na forma geral.
O programa acima é utilizado em cálculo numérico. É o método de Runge-Kutta de Segunda
Ordem (Método de Euler Aprimorado) que aproxima equações diferenciais ordinárias (EDO).
Também é Alimentação: muda para cada exercício. Digitar a equação em modo algébrico, que no caso é: „UV2‟
2),( yxyxf
Digitação 1: digitando a equação diretamente „
ALPHA ALPHA U V 2 ALPHA
FXY
Digitação 2: utilizando o EQW „ (48G) ENTER
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 18 de 22
ALPHA ALPHA U V 2 (48G) ALPHA ALPHA U V 2
ENTER
FXY
3.1.5 Alimentação
Fazer X0 0
0x 0
0 X0
Fazer Y0 2
0y 2
2 Y0
Fazer A 0 a =0
0 A
Fazer B 1 b =1
NXT 1 B
Fazer H 0,1 h =0,1
0 , 1 H NXT
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 19 de 22
3.1.6 Utilização
Precionar: SOLV
Precionar: RESUL
Percebe-se que não é possível visualizar toda a matriz.
Para visualizar a matriz
TOOL VIEW (48G) {Entra em VIEW}
ou
TOOL EDIT (48G) / {Entra em EDIT}
Vamos tomar como exemplo o VIEW TOOL VIEW
Para percorrer toda a matriz, utilizar as setas , , ou .
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 20 de 22
Como exemplo, utilize a seta para cima até chegar no máximo.
{Trinta e uma vezes para cima}
O resultado será uma matriz com (m+2) linhas por 5 colunas onde: j jx jy
1k 2k
0 0 2 0 0,1
1 0,1 2,005 0,095 0,1855
2 0,2 2,019025 0,180975 0,2628775
3 0,3 2,041217625 0,258782375 0,332904138
4 0,4 2,070801951 0,329198049 0,396278244
5 0,5 2,107075765 0,392924235 0,453631811
6 0,6 2,149403568 0,450596432 0,505536789
7 0,7 2,197210229 0,502789771 0,552510794
8 0,8 2,249975257 0,550024743 0,595022269
9 0,9 2,307227608 0,592772392 0,633495153
10 1 2,368540985
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 21 de 22
3.2 Exercício para treinamento: Voltar um diretório. Dentro do diretório AVAN, criar o diretório EQ2G. Entrar em EQ2G.
Tome a equação do 2o grau 02 cbxax com 0a .
Programar a fórmula de Bhaskara: a
bx
2
com acb 42 .
Criar 6 variáveis (na ordem inversa)
“X1”, “X2”, “SOLV”, “A”, “B”, “C”
3.2.1 Fazer a programação:
<< >> (48G)
<< {Abre o programa}
B B * 4 A * C * „D‟ STO acb 42
IF D 0 THEN {Entra se 0 }
DELTA NEGATIVO
„ERRO‟ „X1‟ STO
„ERRO‟ „X2‟ STO
ELSE {Entra se 0 }
B NEG D X 2 A * /
„X1‟ STO a
bx
21
B NEG D X 2 A * /
„X2‟ STO a
bx
22
END
„D‟ PURGE
>> {Fecha o programa}
ENTER
SOLV {Joga o programa para a variável SOLV}
3.2.2 Alimentar o Programa
Resolver a equação: 02142 xx
Resposta:
7
3
2
1
x
x
1 A
4 / B
21 / C
SOLV
X1
X2
Página: http://www.pessoal.utfpr.edu.br/laurogalvao
Prof. Lauro César Galvão, Dr. Página 22 de 22
3.3 Comandos Auxiliares (50g)
MATH MENU P opção 5 OK Entra nas opções para se trabalhar com números REAIS.
REAL MENU São 19 opções em “REAL MENU”. Destas, vamos evidenciar algumas:
Opção 6 (MOD): resto da divisão;
Opção 7 (ABS): módulo;
Opção 8 (SIGN): retorna
1
1
positivo se ,
negativo se ,;
Opção 13 (RND): arredonda;
Opção 14 (TRNC): trunca;
Opção 15 (FLOOR): MAIOR inteiro ANTES (6,356);
Opção 16 (CEIL): MAIOR inteiro DEPOIS (6,357).