Upload
dan-aguilar-palomino
View
293
Download
16
Embed Size (px)
DESCRIPTION
Programacion
Citation preview
PROGRAMACIÓN EN LENGUAJE USER RPL
para calculadoras HP 50g
PREFACIO
El presente manual tomara como base los conocimientos previos que se tenga sobre la calculadora HP 50g, tales como, el uso básico de listas, vectores y matrices. Además, por ser un manual introductorio no se tocaran los temas de programación de graficas ni comandos sin nombres.
Cabe resaltar que se desarrollara el lenguaje User-RPL casi en su integridad en notación RPN. Esto se debe que también se podrá trabajar con expresiones algebraicas aunque serán en pequeñas parte dentro de la sintaxis te algunos comandos.
También quisiera hacer el agradecimiento hacia Roger Broncano, por su gran software HPUserEdit 6.0 del cual voy a hacer uso para la visualización de código; y a Dante Aroni por venderme mi primera HP 50g.
By Dan Aguilar
INTRODUCCIÓN
DEFINICIÓN DE LA LÓGICA RPN
Tal vez usted haya está usando la calculadora en modo algebraico la calculadora por ser esta forma la que se encuentra en muchas calculadoras. Sin embargo, usted está desperdiciando el gran potencial que tiene esta al ser operada en modo RPN. Pero, ¿qué es el modo RPN? El modo RPN corresponde a la notación polaca inversa. Esto quiere decir que para hacer una operación se requiere que se cumpla la aridad del operador y luego el operador. Claro que se deben respetar las dimensiones.
Por ejemplo para realizar una suma de 4 y 3 se ingresan 4 luego 3 y al final el operador ‘+’
DESCRIPCION DE LA PANTALLA RPN
Pero antes de ahondar continuar y pasar a lo que es propiamente la programación debemos tener en cuenta ciertos aspectos de la pantalla de la calculadora
1. Etiquetas de menú.- Estas 6 etiquetas tendrán diversas funciones de acuerdo al menú donde nos encontremos. Para sacarle un mayor provecho activar la opción Soft menu en los flags (117) de la calculadora.
2. Línea de comandos.- Se mostrara todas las veces que se ingrese datos, comandos, texto, etc.
3. Pila o stack.- Estos números indican el nivel en la que se encuentra almacenado un objeto des pues de pasar por la línea de comandos. Y estos se empiezan a almacenar desde el nivel 1 desplazándose hacia un nivel superior si se ingresa un nuevo objeto.
Los siguientes elementos representaran el header o cabecera. El header proporciona información sobre cómo está funcionando la calculadora. Cabe resaltar que este header puede quitarse para poder observar más niveles de la pila claro está que se debe tener en cuenta como está trabajando la calculadora antes de quitarla. Para un programador principiante se recomienda dejar el header.
4. Directorio.- Nos indica en que carpeta nos encontramos actualmente. Al crear más directorios podremos tener ordenados nuestros archivos.
5. Sistema angular.- Nos indica que sistema angular se encuentra activo. Podemos elegir entre estos tres sistemas: radianes (RAD), sexagesimales (DEG) y centesimales (GRD).
6. Sistema de coordenas.- Nos indica que sistema coordenado se encuentra activo. Podemos elegir entre estos tres sistemas: rectangular (XYZ), polar (R∡Z) y esférico (R∡∡).
7. Base numérica.- Nos indica la base numérica en la que se encuentra la calculadora. Esa base no afecta a los cálculos pero si lo hace a ciertas funciones como los LIBEVAL o FLASHEVAL.
8. Modo de operación.- Nos indica que modo esta activo en la calculadora: el exacto (R=) o aproximado (R~).
9. Variable de sistema.- Muestra la variable del sistema siendo por lo general la letra X.
10.Fecha.-Muestra la hora y la fecha de almacena la calculadora. Esta información de tiempo puede ser modificada para que funcione como un reloj. Se puede elegir la forma digital o analógica.
Ahora para terminar esta introducción se mostrara todos los objetos que maneja la calculadora. Sin embargo, no todas pueden ser accesibles para el usuario. La informacion presentada ha sido tomada de la guia del usuarion paginas 851-852
MANEJO DEL ENTORNO
MANEJO DE LA PILA
Como vimos lineas arriba la pila consta de varios nivles. La visualizacion de estos varia según el tamaño de la fuente, el tipo de objeto, el header o la memoria disponible de la calculadora. Para este fin, la calculadora cuenta con varios comandos para lograr el objetivo los hay desde comandos para copiar, borrar, cambiar el orden, elegir, y contar elementos.
Comandos para duplicar.-
1. DUP : Duplica un objeto2. DUPDUP : Duplica un objeto dos veces 3. DUP2 : Duplica los obejtos en los niveles 1 y 2 en la pila4. DUPN : Toma un entero n de el nivel 1 de la pila y devuelve las
copias de los objetos en la pila desde el nivel 2 hasta el n+1 5. NDUPN : Duplica un objeto n veces y devuelve n. “n” en el nivel 16. PICK : Duplica el objeto de un especificado nivel de la pila en
el nivel 17. PICK3 : Duplica el objeto del nivel tres en la pila8. OVER : Retorna una copia al nivel 1 de la pila del objeto en el
nivel 29. UNPICK : Remplaza el objeto en el nivel n+2 con el objeto en el
nivel 2 y borra el objeto en el nivel 1 y 2.
Comandos para borrar
1. DROP : Remueve el objeto del nivel 1 de la pila y desplaza los 2. DROP2 : Remueve los dos primeros objetos de la pila3. DROPN : Remueve los primeros n+1 objetos de la pila.“n” en el
nivel 1
Comandos para ordenar
1. SWAP : Cambia la posicion de los niveles uno y dos de la pila2. ROT : Rota los tres primeros objetos en la pila de forma
horaria.3. ROLL : Rota los n primeros objetos en la pila de forma horaria a
partir del nivel 2. “n” en el nivel 14. ROLLD : Rota los n primeros objetos en la pila de forma
antihoraria a partir del nivel 2. “n” en el nivel 15. UNROT : Rota los tres primeros objetos en la pila de forma
antihoraria6. NIP : Equivale a la ejecucion de SWAP seguida por DROP
Comandos para contar
1. DEPTH : Retorna un número real representando el numero de objetos presentes en la pila antes de que DEPTH fuese ejecutado.
Ahora usando solo estos comandos partiremos desde la pantalla de la izquierda hacia la derecha.
Para este caso basta con 2 DUPN ROT
Para este caso basta ya no es tan evidente. Para obtener este resultado debemos ingresar
3 DUPN ROT 5 ROLLD SWAP 4 ROLLD
Aca es ya un poco más complejo el codigo se transforma
4 DUPN 4 ROLL 7 ROLLD ROT 5 ROLLD SWAP 4 ROLLD