Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
EXPOSITOR:
UBER PABLO GUTIERREZ ROCHA
ABRIL 2010
1. ANTES DE PROGRAMAR
1.1 Modo RPN y modo Algebraico
La calculadora posee dos modos de funcionamiento:
o
o
Algebraico
RPN (Reverse Notation Polish)
En el modo algebraico las expresiones se escriben de la forma habitual y, despus, se evalan. Para calcular
3 2
5 1
Tendramos que escribir (3+2)/(5+1) y pulsar [ENTER].
En modo RPN:
o se cargan los nmeros en la pila
o se pulsa la tecla de operacin
El resultado queda cargado en la posicin ms baja de la pila.
La secuencia sera
3 [ENTER] 2 [ENTER] [+] deja 5 en la pila
5 [ENTER] 1 [ENTER] [+] introduce 6 en la pila
Pulsamos [] coloca 5/6 en la pila (o 0.83333 si la calculadora est en modo aproximado)
A primera vista parecera complicado e impractico pero cuando uno se acostumbra, se vuelve ms prctico y
menos engorroso pues nos ahorramos la cantidad de veces que tenemos que presionar la tecla [LS] [ - ] para
parntesis y [ENTER]
1.3 Banderas
Las banderas (Flags) son las encargadas de controlar el sistema, ests se pueden activar o desactivar
manualmente, apretando la tecla [MODE] [F1], o tambin mediante un programa, se ver esto ms adelante
con mayor detalle, a continuacin se detalla las ms importantes:
-33 Activado: Transferencia de archivos via IR (infrarojo)
Desactivado: Transferencia de archivos via cable
-35 Activado: Transferencia modo binario
Desactivado: Transferencia modo ASCII
-40 Activado: Visualizar el reloj
Desactivado: No visualizar el reloj
1.4.1 Objetos
La calculadora permite manejar objetos de tipos muy diversos. Algunos de
los tipos de objetos son nmeros enteros, reales, complejos, caracteres, cadenas, etc. Se detallar ms
adelante todos los tipos de objetos existentes.
Una vez pulsado [STO], el valor y la variable se descargan de la pila. Si ahora escribimos X y pulsamos
[ENTER], se obtiene el valor 125. Si vamos al editor de ecuaciones y escribimos SIN(X)+COS(X), lo
seleccionamos y pulsamos [EVAL], se obtiene SIN(125)+COS(125) (en modo exacto).
1.4.5 Directorios
Las variables pueden organizarse en directorios. Los directorios pueden entenderse como carpetas que
contienen las variables. Cuando accedemos al rea de variables, las etiquetas correspondientes a directorios
tienen una pequea pestaa, como si fueran una carpeta de archivador:
Comando PGDIR: El comando PGDIR (PurGe DIRectory) permite borrar un directorio no vaco. Es una forma
rpida de eliminar un directorio, pero hay que proceder con cuidado porque no solicita confirmacin. El
procedimiento es muy simple:
1. Accede al rea de variables y sitate en el nivel superior al directorio
2. Escribe comillas simples y pulsa la tecla de funcin correspondiente al subdirectorio a borrar, el nombre se
escribir entre las comillas. Carga el nombre en la pila con [ENTER]
3. Escribe PGDIR y pulsa [ENTER].
Tambin podemos acceder al comando PGDIR a travs del men de programacin
PRG, selecionando MEM DIR PGDIR.
HOME
x = 25
y = 42
PRUEBA (directorio)
CASDIR (directorio)
{HOME PRUEBA}
x = 25
y = 42
PRUEBA (directorio)
CASDIR (directorio)
Finalmente, el directorio
{HOME PRUEBA XYZ} contiene x = 7
y el directorio
{HOME PRUEBA DR4} contiene y = -2
Escribimos x+y +z en el editor de ecuaciones y lo copiamos. Si evaluamos la expresin en los distintos
subdirectorios, tendremos:
1. En HOME, x = 25, y = 42, z =sin valor; resultado 67 + z
2. En {HOME PRUEBA}, x = 10, z = 3. La variable y toma su valor de HOME, y = 42. Al evaluar x + y + z, se
obtiene 49.
3. {HOME PRUEBA XYZ}, es x = 7, para tomar los valores de z e y, vamos a los directorios superiores, se
obtiene z = 3 en PRUEBA, y = 42 en HOME. El resultado de evaluar x + y + z es 46.
ab
h
2
La tecla [F1] est asociada a una variable que contiene un programa, cuando la pulsamos, ejecuta el
programa.
1.4.12 Utilizando NUM.SLV (NUMeric SoLVer)
El mismo ejemplo se puede hacer utilizando este entorno:
1. En el mismo subdirectorio TRAP
2. Vamos al Editor de Ecuaciones apretando [RS] [ ]
3. Escribimos la ecuacin
4. La guardamos en la variable EQ
8. Apretamos [ENTER]
2. Introduccin
2.1 Programas en User-RPL
En una primera aproximacin, podemos decir que un programa en UserRPL es una secuencia de objetos escritos entre los delimitadores << >>. Si
cargamos un programa en la pila y pulsamos [EVAL], la calculadora procesa
automticamente la secuencia de objetos que contiene el programa. Es esencial
entender que, al ejecutar el programa, la calculadora realizar diferentes acciones dependiendo del tipo de
objeto.
Comandos. Los comandos son ejecutados.
Otros tipos de objetos son cargados en la pila, en concreto se cargan en la pila:
Expresiones algebraicas: cos(x)+sin(x).
Nmeros: 2, 2.34, (1,2.34).
Strings: Entra un nmero, Volumen.
Listas: {1,2,a,b}.
Consideremos como ejemplo el siguiente programa.
Tipo
delimitador de programa
nmero
2
+
6
/
>>
nmero
comando
nmero
comando
delimitador de programa
Accin
carga en la pila
carga en la pila
ejecucin
carga en la pila
ejecucin
El concepto de programa est vinculado a la idea de ejecucin repetida: el inters de un programa radica en
que, una vez escrito, podemos ejecutarlo tantas veces como deseemos.
Podemos almacenar un programa en una variable usando el comando [STO], de la misma forma que cualquier
otro objeto de la calculadora. Veamos como ejemplo el programa que toma dos nmeros de la pila y calcula la
media aritmtica.
Vamos a guardarlo con el nombre MED, para ello cargamos el nombre en la pila
y pulsamos la tecla [STO]. Si ahora pulsamos la tecla [VAR] para acceder al rea de variables
observamos que el nombre MED aparece asociado a la tecla [F1]. Para ejecutar el programa, simplemente
tenemos que cargar dos nmeros en la pila, por ejemplo 4 y 8
11
El error se produce porque el programa necesita dos valores en la pila para funcionar correctamente.
Resumiendo, supongamos que hemos guardado un programa con el nombre
NOMPRG, entonces el nombre NOMPRG pasa a comportarse como cualquier otro comando del sistema.
Podemos ejecutarlo directamente usando la tecla de funcin correspondiente en el rea de variables, o bien
usar su nombre.
3. Comandos de programacin
13
Introduccin
Antes de programar es necesario conocer todas las herramientas con las que contamos, por ejemplo si
vamos a cavar una zanja con nuestras propias manos debemos conocer que es una pala o que es una picota
y cual es la mejor manera de emplearlos, as tambin debemos conocer todas las bondades que nos ofrece
la hp que en su 99 % es totalmente programable.
Comandos del men PRG
3.1 Comandos de la seccin STACK
El manipuleo de los elementos de la pila como hemos visto hasta ahora es fundamental en la programacin
por eso y en orden vamos a ver los distintos comandos que componen est seccin
DUP: Duplica el objeto del nivel 1.
ROT: Cambia la posicin de los objetos que encuentran en los tres primeros niveles de abajo hacia arriba.
UNROT: Cambia la posicin de los objetos que encuentran en los tres primeros niveles de arriba hacia abajo
14
ROLL: Cambia la posicin de los objetos que encuentran en n niveles de abajo hacia arriba, requiere el
nmero de niveles
ROLLD: Cambia la posicin de los objetos que encuentran en n niveles de arriba hacia abajo, requiere el
nmero de niveles
PICK: Copia al nivel 1el objeto de cualquier nivel, requiere el nmero de nivel.
15
16
NDUPN: Copia n veces el objeto que encuentra en el nivel 1 y devuelve el nmero de elementos copiados,
requiere el nmero de copias a hacer
AND
OR
XOR
17
18
VTYPE: Devuelve el nmero del tipo de objeto que se encuentra en una variable
->ARRY: Construye un vector o matriz, para Vector requiere sus elementos y dimensin, para Matriz sus
elementos ordenados en una lista {#fila #columna}
->LIST: Construye una lista, puede contener cualquier objeto, requiere nmero de elementos a contener
19
REPL: Requiere la posicin inicial donde se quiere reemplazar una lista en otra
20
GETI: Igual al anterior pero te devuelve adems la lista original y la posicin sgte.
PUT: Reemplaza un elemento de una lista por otro, requiere la posicin y el valor
PUTI: Igual al anterior pero adems devuelve la posicin del elemento siguiente.
21
DOLIST: Ejecuta un programa a partir de listas, requiere lista o listas, nmero de listas a utilizar seguido del
programa a aplicar.
DOLIS
DOSUBS: Aplica un procedimiento secuencial con los elementos de una lista, requiere una lista, nmero de
elementos con los que se va proceder y programa.
DOSU
BS
STRE
AM
SEQ: Reemplaza en una variable de una funcin u objeto valores dados uno inicial y otro final, variando en un
incremento. Requiere funcin, variable, valor inicial, valor final, incremento.
22
SEQ
MAP: Aplica un programa especfico a una lista de objetos o valores, requiere una lista y una funcin o
programa del tipo << -> a funcin >>.
MAP
23
REPL: Reemplaza una cadena en parte de otra, requiere posicin inicial y la cadena
24
Formato de key:
42.1
# Fila
# Columna
Modo
Modos
N
Tecla
Tecla
Ninguno
Alpha []
Cambio
Izquierda
[LS]
Cambio
Derecha
[RS]
Alpha +
Cambio
Izquierda
Alpha +
Cambio
Derecha
25
26
<< "PERDIDA DE CARGA" { { "f:" "FACTOR DE FRICCIN" 0 } { "L:" "LONGITUD TUBERA" 0 } { "D: "
"DIAMETRO TUBERA" 0 } { "V:" "VELOCIDAD" 0 } { "g:" "GRAVEDAD" 0 } } { 2 0 } { } { } INFORM >>
WAIT: Interrumpe un determinado tiempo o hasta que se presione alguna tecla. Requiere el nmero de
tiempo de espera, sino hay ninguno hasta que se presione alguna tecla
PROMPT: Comando que interrumpe la ejecucin del programa y muestra un mensaje en la parte superior,
requiere Mensaje en cadena y PROMPT seguido de CONT para la continuacin del programa
<< { {"DARCY" "DARCY" } {"HAZEN" "HAZEN" } {} {} {} {"CANCL" 0 MENU CONT } } TMENU
"ELIJA ECUACIN" PROMPT >>
KEY: Comando que devuelve 1 y el nmero de tecla que se presiono o si no se presiono ninguno devuelve 0
27
PROG
PROG
BEEP: Emite un sonido mediante frecuencia y un determinado tiempo. Requiere frecuencia dada en Hz y
tiempo de duracin dada en segundos.
<< "SONIDO DE ERROR" MSGBOX 1392 0.075 BEEP >>
Para que se pueda escuchar el tono el flag -57 no debe estar activado
FREEZE: Congela una parte especfica de la pantalla, requiere Parte de la pantalla: 1 = rea de estado, 2
= pila o lnea de comandos, 4 = rea de men
PVIEW: cambia a la pantalla modo grfico, {} = cambio permanente y {#0 #0} = visualiza por un momento
TEXT: Cambia la pantalla a modo texto
28
CASE: Igual al anterior pero este se utiliza cuando se tienen ms de dos alternativas.
CASE: Condicin (Inicializa el comando CASE)
THEN: Entonces (Si es verdad se ejecuta la instruccin)
END: Termina (Finaliza la instruccin)
END: Termina (Finaliza el comando CASE)
CASE
Comparacin o nmero 1 o 0
THEN Proceso 1a END
Proceso 2a
Comparacin o nmero 1 o 0
THEN Proceso 1b END
Proceso 2b
.
.
END
29
FOR: Utilizado para elaborar procesos iterativos dentro de un programa, comenzando de un valor inicial hasta
llegar a un valor final segn el incremento.
FOR: Para (requiere dos valores uno inicial y final)
N: Variable del contador (minsculas preferentemente)
NEXT: Siguiente (empieza el contador de uno en uno)
STEP: Paso (requiere el valor de incremento para el contador)
m = valor inicial
N = valor final
S = incremento del
contador
START: Similar AL anterior comando FOR excepto que este no tiene um contador
START: Para (requiere dos valores uno inicial y final)
NEXT: Siguiente (empieza el contador de uno en uno)
STEP: Paso (requiere el valor de incremento para el contador)
DO: Este comando repite un proceso hasta que La comparacin efectuada o valor sea verdad para finalizar el
proceso iterativo
DO: Hacer (empieza a realizar el proceso que contiene)
UNTIL: Hasta que (espera un valor verdadero para finalizar)
END: Termina (finaliza el comando DO)
DO (caso especial): Este caso es cuando se tiene dos procesos a realizar, esto no se podra codificar
normalmente, la nica manera es introduciendo el comando IF dentro del comando y realizar una comparacin
inversa
WHILE: Similar al comando DO excepto que este primero comprueba, luego hasta que sea verdadero sigue
realizando la iteracin.
WHILE: Mientras (espera un valor verdadero para continuar)
REPEAT: Repetir (vuelve a realizar el procedimiento)
END: Fin (finaliza el comando WHILE)
IFT: Este comando es igual al comando IF con la unica diferencia que solo acepta una accin en cada parte.
IF A THEN B END ->
A B IFT
IFTE: Similar al comando IFT pero adems realiza el proceso ELSE y solo acepta una accin en cada parte.
IF A THEN B ELSE C END ->
A B
C IFTE
A: Comparacin
B: Proceso si es verdad
C: Proceso si es falso
31
32
ANEXOS
33
34
BIBLIOGRAFA
hp 49g+_user's guide_Spanish
Francisco Palacios
Jorge Ayala Nio de Guzmn
www.adictoshp.org
www.hpcalc.org
35