Você está na página 1de 35

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

UNIVERSIDAD TECNICA DE ORURO


FACULTAD NACIONAL DE INGENIERA
CARRERA DE INGENIERIA CIVIL
CENTRO DE ESTUDIANTES DE INGENIERIA CIVIL

CURSO PROGRAMANDO EN USER-RPL

EXPOSITOR:
UBER PABLO GUTIERREZ ROCHA
ABRIL 2010

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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.2 La pila (STACK)


Cuando trabajamos en modo RPN, la pila (stack) es el lugar de donde se toman los datos y a donde se
devuelven los resultados. La pantalla muestra los niveles inferiores de la pila.

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

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

-51 Activado: Marca de fraccin: , (coma)


Desactivado: Marca de fraccin: . (punto)
-55 Activado: No guarda los ltimos argumentos
Desactivado: Guarda los ltimos argumentos
-60 Activado: Activa alpha presionando []
Desactivado: Activa alpha presionando [] []
-62 Activado: Activa teclados del ususario
Desactivado: Desactiva teclados del usuario
-72 Activado: Visualiza la pila en mini fuentes (letras pequeas)
Desactivado: Visualiza la pila en fuentes por defecto (letras normales)
-91 Activado: MTRW (MaTRix Writer): en modo lista de listas
Desactivado: MTRW (MaTRix Writer): en modo matriz
-105 Activado: Muestra resultados en modo aproximado
Desactivado: Muestra resultados en modo exacto
-117 Activado: Muestra los mens en modo activable por las teclas [F1] al [F6]
Desactivado: Muestra los mens mediante mensajes o cajas de texto

1.4 Funciones esenciales que se deben conocer

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.

1.4.2 Guardar objetos en variables


Un objeto se puede cargar directamente en la pila, o bien, se puede almacenar
en variable. Para guardar un objeto en una variable usamos la tecla [STO]. Con mayor detalle, el
procedimiento para guardar un objeto en una variable en modo RPN es como sigue:
1. Cargamos el objeto en la pila
2. Cargamos el nombre8 de la variable en la pila
3. pulsamos [STO]
Para guardar el valor 125 en la variable X, la pila presentara el siguiente aspecto:

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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.3 rea de variables


Las variables se almacenan en el rea de variables. La tecla [VAR] nos da acceso al rea de variables. En
modo RPN, si el nombre de una variable aparece en la lnea de men programable, podemos cargar su valor
usando la tecla de funcin correspondiente. As, si observamos la siguiente lnea de men:

Podemos cargar el valor de S con [F1], el valor de T con [F2], etc.


1.4.4 Borrado de varias variables
El comando PURGE puede actuar sobre listas de variables. Para borrar varias variables:
1. Pulsa la tecla [LS] [+] para obtener un par de llaves { } y construir una lista con los nombres de variables a
borrar.
2. Accede al rea de variables y usa las teclas de funcin para construir la lista de nombres de variables9.
Cuando la lista est completa; pulsa [ENTER].
3. Accede a [TOOL] y ejecuta [PURGE].
Accede nuevamente al rea de variables pulsando [VAR] y observa que las variables de la lista han sido
borradas.

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:

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

Pulsando la tecla de funcin correspondiente, accedemos al directorio. En la imagen superior, observamos


que hay dos directorios10, PROB y CASDIR, podramos entrar en ellos pulsando, respectivamente, [F1] y [F6].
El directorio principal se llama HOME. En la parte superior de la pantalla, se indica el nombre del directorio
actual. En el grfico siguiente, vemos que estamos en el subdirectorio PROB; el directorio contiene las
variables X e Y y un subdirectorio llamado EJEM.
Si pulsamos [F2] y [F3] obtenemos el valor de las variables. Si pulsamos [F1], entramos en el subdirectorio
EJEM, la ruta completa de ste directorio sera
{HOME PROB EJEM}

1.4.6 Cambio de directorio


Para entrar en un subdirectorio del directorio actual podemos
Escribir el nombre del subdirectorio y pulsar ENTER.
Entrar en el rea de variables y pulsar la tecla de funcin asociada.
Para ascender al directorio superior, pulsamos la tecla [LS] [VAR] (UPDIR).
1.4.7 Crear directorios
Para crear un directorio:
1. Sitate en directorio superior.
2. Escribe el nombre del directorio, pulsa [ENTER].
3. Escribe CRDIR (create directory) y pulsa [ENTER].
En vez de escribir CRDIR, puedes acceder al men PRG y seleccionar MEM DIR; entonces dispondrs del
comando CRDIR en el modo soft-menu (soft menu = bandera -117 activado, desde ahora en adelante se
supondr que est bandera est activada).

1.4.8 Eliminar directorios


Comando PURGE: El comando PURGE permite borrar un directorio. Para usar PURGE, es necesario que el
directorio est vaco, el mtodo es bueno si no hay subdirectorios. La secuencia para borrar un directorio con
PURGE es como sigue:
1. Accede al rea de variables y entra en el directorio.
2. Borra todas las variables del directorio.
3. Asciende al directorio superior usando [LS] [VAR] (UPDIR).
4. Escribe comillas simples [ ] y pulsar la tecla de funcin correspondiente al subdirectorio a borrar, el nombre
se escribir entre las comillas.
Carga el nombre en la pila con [ENTER].
5. Accede a [TOOL] y pulsa PURGE.

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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.

1.4.9 Manejo de variables


Evaluacin de variables
La evaluacin de un nombre de variable, funciona como sigue:
1. Si existe una variable con ese nombre en el directorio actual, se toma su valor
2. Si no existe una variable con ese nombre en le directorio se busca una variable con ese nombre
ascendiendo por la ruta de directorios, si aparece una variable con ese nombre, se toma su valor; si no, se
carga en la pila el nombre.
Ejemplo: Evaluacin de nombres de variables.
Supongamos HOME tiene el siguiente contenido

HOME

x = 25
y = 42
PRUEBA (directorio)
CASDIR (directorio)

A su vez, el subdirectorio PRUEBA, tiene el siguiente contenido

{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.

1.4.10 Manejo rpido de variables


Cuando accedemos al rea de variables, cada variable tiene asignada una de las teclas de funcin [F1], [F2],
. . . ,[F6]. Supongamos que HOME contiene las variables Z y X como muestra el grfico siguiente, y que
estamos en modo RPN

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

Z est asociada a [F1] y X est asociada a [F2].


1. Pulsando [F1], recuperamos el valor de Z.
2. Si escribimos las comillas simples (tecla (4,3)), se activa el modo algebraico, y al pulsar [F1], se escribe el
nombre de la variable.
3. Para guardar un valor en Z, digamos 45, basta con cargar el valor en la pila y pulsar [LS] [F1].
4. La secuencia [RS] [F1] recupera el valor sin evaluarlo. Esto es importante cuando la variable contiene un
programa y deseamos recuperarlo sin que se ejecute. Cuando el contenido es un nmero, pulsar [F1] o
[RS][F1] produce el mismo resultado.

1.4.11 Un ejemplo final


Vamos a organizar un directorio que nos permita calcular el rea de un trapecio con comodidad.

Sabemos que el rea est dada por

ab
h
2

Tomamos los valores iniciales a = 3, b = 4, h = 6. El rea correspondiente es 21.


1. En HOME creamos un subdirectorio TRAP
2. Creamos las variables A, B, H con los valores indicados.
3. Escribimos los delimitadores de programas << >> ([RS][+])
4. Escribimos el programa <<(A+B)/2*H EVAL>>
5. Guardamos el programa con el nombre S.
La pantalla debe presentar el siguiente aspecto:

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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

5. Borramos el programa con el nombre S.

6. Por ltimos entramos al entorno de Soluciones Numricas, [RS][ 7 ] y OK


8

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

7. Nos situamos en la variable S presionamos SOLVE

8. Apretamos [ENTER]

Esta forma de resolucin me parece ms prctica que la primera.

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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.

Al ejecutar el programa, la calculadora realiza las siguientes acciones:


Objeto
<<
1

Tipo
delimitador de programa
nmero

2
+
6
/
>>

nmero
comando
nmero
comando
delimitador de programa

Si pulsamos [EVAL], obtenemos:

2.2 Almacenado y ejecucin de programas


10

Accin
carga en la pila
carga en la pila
ejecucin
carga en la pila
ejecucin

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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

y pulsar [F1], obtendremos

11

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

Si ahora pulsamos nuevamente la tecla [F1], obtenemos un error.

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.

2.3 Variables globales


Los programas pueden manejar variables. Las variables globales
Son variables ordinarias.
Su nombre aparece en el directorio de trabajo.
Persisten una vez ejecutado el programa, salvo que el programa las borre explcitamente.
En contrapartida, veremos en la seccin siguiente que existen otro tipo de variables: las variables locales. Las
variables locales slo se pueden usar dentro del programa que las crea, no aparecen en el directorio de
trabajo y no interfieren con otras variables previamente existentes.

2.3.1 Uso de variables globales


Para asignar valores a una variable se usa el comando [STO], dado que una variable global puede existir
previamente a la ejecucin del programa, debes usar su nombre entre apstrofes.

2.4 Variables locales


Las variable locales son un tipo de variable especialmente diseado para su uso en programacin. La idea
fundamental es que una variable local solo existe dentro del procedimiento o programa que la crea, no
interacciona con variables globales del mismo nombre que puedan existir previamente y desaparecen
automticamente5 cuando la ejecucin del programa finaliza.
En el caso del lenguaje de programacin User-RPL, las variables locales tienen las siguientes caractersticas:
No aparecen en el rea de variables del directorio actual.
Slo son accesibles dentro del programa que las crea.
No interaccionan con variables globales.
El tiempo de acceso es inferior al tiempo de acceso de las variables globales.
Las variables locales son borradas automticamente al finalizar o interrumpirse el programa que las crea.

2.4.1 Uso de variables locales


12

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

Estructura de variable local


Disponemos de dos estructuras para crear variables locales:
<< v1 v2 v3 << programa que usa v1 v2 v3>> >>
y
<< v1 v2 v3 expresin algebraica que contiene v1 v2 v3 >>
En la sintaxis hemos usado, por simplicidad, slo 3 variables locales: v1,v2 y v3, pero puede usarse cualquier
nmero de variables locales; tambin puede usarse cualquier nombre vlido como nombre de variable local.
Al ejecutarse una estructura de variable local como las descritas arriba, se producen las siguientes acciones:
Se descargan 3 valores de la pila y se guardan ordenadamente en las variables v1, v2, v3, empezando de
derecha a izquierda.
Se ejecuta el programa o se evala la expresin algebraica que acompaa la definicin de las variables.
Veamos con mayor detalle como se produce la asignacin de variables.
En primer lugar se descarga el valor del nivel 1 de la pila, y se guarda en la variable en v3.
El valor del nivel 2 de la pila se guarda en v2.
El valor del nivel 3 de la pila se guarda en v1.
Este funcionamiento puede parecer algo extrao, pero si escribimos 3 valores en la lnea de edicin
separados por espacios

y pulsamos [ENTER], obtenemos:

y ejecutamos el programa, entonces:


El valor 3 se guardara en v3.
El valor 2 se guardara en v2.
El valor 1 se guardara en v1.
Es importante destacar que las variables slo son accesibles por el programa o expresin algebraica que
sigue a la declaracin de variables locales v1 v2 v3.

3. Comandos de programacin

13

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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.

SWAP: Intercambia los objetos que se encuentran en los niveles 1 y 2.

DROP: Elimina el objeto que se encuentra en el nivel 1

OVER: Copia al nivel 1el objeto que se encuentra en el nivel 2.

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

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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.

UNPICK: Elimina el objeto que se encuentra en el n nivel, requiere el nmero de nivel.

PICK3: Copia al nivel 1el objeto del nivel 3.

DEPTH: Devuelve el nmero de niveles en uso.

15

Expositor: Uber Pablo Gutierrez Rocha

DUP2: Copia los dos primeros niveles.

DUPN: Copia el nivel especificado

DROP2: Borra los dos primeros niveles

DROPN: Borra los n niveles, requiere el nmero de niveles

DUPDUP: Triplica el objeto que se encuentra en el nivel 1

NIP: Borrar el objeto del nivel 2

16

Curso Programando en User-RPL

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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

3.2 Comandos de la seccin MEM


MEM: Devuelve la cantidad de espacio libre que existe en el puerto 0
BYTES: Determina el valor y Checksun de cualquier objeto.
NEWOBJ: Crea un nuevo objeto.
ARCHIVE: Crea un backup de todo lo que se encuentra en home.
RESTORE: Restaura la copia backup en home
3.2.1 Seccin DIR
PURGE: Borra una variable o un directorio
RCL: Recupera el objeto de una variable
STO: Guarda una variable o directorio
CRDIR: Crea un nuevo directorio
PGDIR: Borra un directorio
PATH: Devuelve en una lista la ubicacin actual
VARS: Devuelve en una lista las variables del men actual
TVARS: Devuelve en una lista las variables de un tipo requerido
ORDER: Ordena las variables segn el orden en que se encuentran en una lista
3.2.2 Seccin ARITH
STO+: Restaura sumando un valor al valor anterior
STO-: Restaura restando un valor al valor anterior
STO*: Restaura multiplicando un valor al valor anterior
STO/: Restaura dividiendo un valor al valor anterior
SINV: Restaura el inverso del valor anterior
SNEG: Restaura el valor anterior cambiado de signo
SCONJ: Rene un objeto a otra variable (Conjuga)
INCR: Restaura el valor anterior incrementado 1 y devuelve el valor actual
DECR: Restaura el valor anterior decrementado 1 y devuelve el valor actual
3.3 Comandos de la seccin TEST
Comparaciones numricas
En cualquiera de ests operaciones al efectuar la comparacin si fuera verdad el sistema devuelve 1 pero si
fuere falsa devuelve 0. Estos operadores matemticos son: ==, , <, >, y
Pruebas lgicas
AND: Este comando equivale al smbolo lgico conocido (^)
OR: Este comando equivale al smbolo lgico conocido (v)
XOR: Comando lgico
PRUEBA

AND

OR

XOR

17

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

NOT: Este devuelve el inverso si es verdad o falso


SAME: Comando que compara dos objetos si son iguales
LININ: Verifica si una ecuacin es lineal, requiere de la ecuacin y de su variable
Banderas del sistema (indicadores)
Como antes e menciono, son las que controlan el sistema, y para ser manipulados mediante programas es
necesario conocer cada uno de estos indicadores.
SF: Activa el indicador seleccionado del sistema
CF: Desactiva el indicador seleccionado del sistema
FS?: Verifica si un indicador est activado
FC?: Verifica si un indicador est desactivado
FS?C: Verifica si un indicador est activado luego lo desactiva
FC?C: Verifica si un indicador est desactivado y luego lo desactiva
3.4 Comandos de la seccin TYPE
La tecla [F1] est asociada a una variable que contiene un programa, cuando la pulsamos, ejecuta el
programa
El manipuleo de distintos tipos de objetos existentes, es muy til para la programacin, sobre todo para
programas ambiciosos, en la calculadora existen 30 tipos de objetos, los cuales se encuentran descritos en la
siguiente tabla:

TYPE: Devuelve el nmero del tipo de objeto

18

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

VTYPE: Devuelve el nmero del tipo de objeto que se encuentra en una variable

En la variable DATOS est almacenada una lista

->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

->STR: Convierte a cadena (unin caracteres) cualquier objeto.

->TAG: Etiqueta valores, requiere el valor seguido del nombre.

->UNIT: Coloca a un nmero la unidad deseada.

OBJ->: Es el inverso a los cinco ltimos comandos vistos.

19

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

C->R: Descompone un nmero imaginario, en su parte imaginaria y real


R->C: Crea un complejo tendiendo el valor real y el imaginario

NUM: Devuelve el nmero del cdigo de un carcter.


CHR: Retorna el carcter o smbolo de un nmero

DTAG: Devuelve el valor de un objeto etiquetado

EQ->: Descompone una ecuacin a partir del signo de igualdad

3.5 Comandos de la seccin LIST


Las listas son elementos muy importantes en la programacin de la hp, por no decir que son el corazn de la
misma (segn mi opinin), por tanto el dominar solamente est parte de la programacin te da un gran nivel
en manejo de la hp.
A continuacin se detalla cada comando:
SUB: Requiere los valores inicial y final que se desea obtener de una lista.

REPL: Requiere la posicin inicial donde se quiere reemplazar una lista en otra

20

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

3.5.1 Seccin ELEM


GET: Obtiene un elemento de una lista, requiere su posicin

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.

SIZE: Indica la cantidad de elementos que contiene una lista.

POS: Indica la posicin de un elemento, requiere el nombre del elemento.

HEAD: Devuelve el primer elemento de una lista

21

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

TAIL: Devuelve una lista sin el primer elemento

3.5.2 Seccin PROC


REVLIST: Invierte el orden de una lista

SORT: Ordena los elementos de una lista de menor a mayor

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

NSUB: Devuelve la posicin en que se est efectuando el proceso dentro de DOSUBS


ENDSUB: Devuelve la cantidad de veces que efectuar el programa para cada valor
STREAM: Realiza un procedimiento para cada elemento con el resultado del anterior procedimiento de los
elementos de una lista, requiere una lista y programa.

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

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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

3.6 Comandos de la seccin GROB


Estos comandos sirven para sobreponer, crear, capturar y animar imgenes.
->GROB: Convierte un objeto o texto a grfico, requiere el objeto seguido del tamao que puede ser 1 o 2.
BLANK: Crea un grob en blanco, requiere sus dimensiones ancho y alto en nmeros enteros binarios
GOR: Sobrepone un grob sobre otro, requiere la ubicacin
GXOR: Igual al anterior pero este convierte primero a grob antes de sobreponerlo
SUB: Extrae una porcin de grob, requiere el grob, posicin inicial y final
REPL: Reemplaza o sobrepone un grob sobre otro grob o pict, requiere grob a reemplazar, posicin y grob a
reemplazar
->LCD: Muestra el grob dado en el nivel 1 en modo texto.
LCD->: Convierte la pantalla de modo texto a grob
SIZE: Devuelve el tamao del grob en nmeros binarios
ANIMATE: Comando de animacin requiere varios grob, para su visualizacin secuencial.
3.7 Comandos de la seccin PICT
Comandos que sirven para hacer trazados en la calculadora.
PICT: Parecido a una variable donde se guarda todo lo que se ve en modo grafico
PDIM: Crea un PICT en blanco con dimensiones personalizadas y lo restaura, requiere longitud y ancho en
binarios
LINE: Dibuja una lnea recta, requiere dos puntos
TLINE: Igual al anterior, requiere dos puntos.
BOX: Dibuja un rectngulo, requiere dos puntos
ARC: Dibuja un arco, requiere centro, radio y ngulo en modo DEG
PIXON: Activa un determinado pixel de la pantalla, requiere un punto.
PIXOF: Desactiva un determinado pixel de la pantalla, requiere un punto.
PIX?: Comprueba si un PICT est activado
PX->C: Convierte las coordenadas pixel (binario) a coordenadas de usuario
C->PX: Convierte las coordenadas usuario a pixel (binario)

23

Expositor: Uber Pablo Gutierrez Rocha

3.8 Comandos de la seccin CHARS


SUB: Devuelve una parte de la cadena, requiere un valor inicial y final.

REPL: Reemplaza una cadena en parte de otra, requiere posicin inicial y la cadena

POS: Devuelve la posicin del carcter requerido.

SIZE: Devuelve el nmero de caracteres en una cadena.

HEAD: Devuelve el primer carcter de una cadena.

TAIL: Devuelve la cadena menos el primer carcter.

3.9 Comandos de la seccin MODES


Estos sirven para hacer cambios en le sistema desde un programa.
3.9.1 Seccin FMT
STD: Cambia a formato Standart
FIX: Cambia a formato Fix, requiere un nmero antes.
SCI: Cambia a formato Cientfico, requiere un nmero antes.
ENG: Cambia a formato Ingeniera, requiere un nmero antes.
3.9.2 Seccin ANGLE

24

Curso Programando en User-RPL

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

DEG: Cambia a formato Deg


RAD: Cambia a formato Rad
GRAD: Cambia a formato Gra
RECT: Cambia a formato Rctangular
CILIN: Cambia a formato Cilindrico
SPHERE: Cambia a formato Esfrico
3.9.3 Seccin FLAGS
STOF: Restaura la configuaracin de los indicadores del sistema
RCLF: Devuelve la configuracin de los indicadores del sistema
3.9.4 Seccin KEYS
ASN: Restaura una tecla del usuario
STOKEYS: Restaura la configuracin del as teclas del usuario
RCLKEYS: Devuelve la configuracin de las teclas del usuario
DELKEYS: Borra una tecla del usuario

3.9.5 Seccin MENU


MEN: Devuelve el men llamado
CST: Men personalizado de acceso directo, se guarda en una lista con nombre CST
TMENU: Men temporal
{ { Nombre o grfico de 21x8 objeto} {... }n }
RCLMENU: Devuelve el nmero del men

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

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

3.10 Comandos de la Seccin IN


En est parte de ver todos los comandos de introduccin de datos para los programas.
INPUT: Este comando es utilizado para introducir datos. Requiere Mensaje o cadena y el Formato siguiente
{ { Valor inicial { #Fila #Columna } MODOs } o Valor inicial
MODOs

V: Verifica si existe algn error en el sistema


ALG: Este activa el modo algebraico para introducir ecuaciones
: Activa alpha

<< Ingrese valores de a y b { { <:a: <:b: {2 0} V } INPUT >>

NOVAL: Este es un espacio vaco, puede se puesto en cualquier lugar


INFORM: Permite disear formularios para la introduccin de datos. En el nivel 2 devuelve los valores
almacenados en una lista y en el nivel 1 devuelve 1 o 0 dependiendo si el formulario fue correctamente
llenado. Requiere Nombre del formulario que debe estar en una cadena, label o campos de llenado como
sigue a continuacin:
{ { Nombre Ayuda Tipo de Objeto } { } n }
Valores Reset que se restauran cuando se presiona reset, debe ir en una lista {} Valores Iniciales que se
restauran desde que se entra al formulario, tambien en lista { }.

26

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

<< "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 >>

CHOOSE: Crea un recuadro de seleccin de datos en la parte central de la pantalla, si de este es


seleccionado alguna opcin devuelve el objeto contenido en este y 1, de otra forma sino se selecciono
ninguno devuelve 0.
<< "ELIJA TIPO DE CURVA" { { "HORIZONTAL" "HORIZONTAL" } { "VERTICAL" "VERTICAL" } } 1
CHOOSE >>

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

3.11 Comandos de la Seccin OUT


MSGBOX: Muestra un mensaje en recuadro en la parte central de la pantalla, requiere mensaje que debe
estar en cadena.
<< ->STR "El resultado es: " SWAP + MSGBOX >>

27

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

PROG

CLLCD: Limpia la pantalla modo texto


DISP: Muestra un objeto en una lnea a de pantalla, requiere el objeto a mostrar y un nmero del 1 al
7(lnea en que se va a mostrar)
<< "EL RESULTADO ES: " SWAP ->STR CLLCD 3 DISP 1 DISP 0 WAIT >>

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

3.12 Comandos de la seccin TIME


DATE: Devuelve la fecha actual MM.DDAA
->DATE: Restaura una nueva fecha
TIME: Devuelve la hora actual formato HH.MMSS
->TIME: Restaura una nueva hora
TICKS: Devuelve la hora del sistema en ticks
DATE+: Calcula la fecha a x das de la fecha actual
DDAYS: Calcula en nmero de das entre dos fechas
->HMS: Convierte una hora en decimales a formato HMS
HMS->: Convierte un hora en formato HMS a decimales
HMS+: Suma dos horas en formato HMS
HMS-: Resta dos horas en formato HMS
TSTR: Crea una cadena con la fecha y hora
CLKADJ: Ajusta el reloj al sistema x/8192 seg.
3.13 Comandos de la Seccin BRCH
Son los ms importantes y se explicarn en detalle.
IF: Es un comando de decisin, comprueba dos valores, y si la comparacin es verdadera ejecuta una serie
de instrucciones, de otra forma si es falsa ejecuta otra serie de instrucciones.

28

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

IF: Comparacin (comando que compara)


THEN: Entonces (verdadero -> 1)
ELSE: De otra manera (falso -> 0)
END: Termina (Finaliza el comando IF)
Sigue as:
SI
IF Comparacin o nmero (1 o 0) THEN
NO
Proceso 1 ELSE Proceso 2 END
O tambin:
SI
IF Comparacin o nmero (1 o 0) THEN
Proceso 1 END

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

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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

i : variable del contador

#Valor inicial #Valor

final FOR i Proceso NEXT

#Valor inicial #Valor final FOR i Proceso #Incremento STEP

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)

#Valor inicial #Valor final START Proceso NEXT


#Valor inicial #Valor final START Proceso #Incremento STEP

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 Proceso UNTIL comparacin o


nmero 1 o 0 END
30

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

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

DO Proceso 1 UNTIL comparacin o


nmero 1 o 0
IF comparacin o nmero 1 o 0
NOT THEN Proceso 2 END
END

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)

WHILE comparacin o nmero 1 o 0


REPEAT Proceso END

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

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

3.14 Comandos de la seccin ERROR


DOERR: Permite crear un mensaje de error en un recuadro en la parte central de la pantalla. Tambin este
comando llama a un error especfico mediante su nmero hexadecimal
ERRN: Devuelve el nmero del ltimo error ocasionado en modo hexadecimal.
ERRM: Devuelve el mensaje del ltimo error ocasionado en string.
ERRO: Elimina del la memoria temporal el ltimo error ocasionado.
LASTARG: Devuelve en el nivel 1 el ltimo comando
IFERR: Este comando verifica si existe algn error en el momento de ejecucin de una determinada seccin
de programa:
IFERR: Cerifica si existe algn error (inicio del comando)
THEN: Entonces (si existiera algn error efecta una instruccin determinada)
ELSE: De otra manera (si no, efecta otra instruccin determinada)
END: Fin (finaliza el comando IFERR)
3.15 Comandos de la seccin RUN
Sirve para verificar si existe algn error en la ejecucin de algn programa y nos permite ver su procedimiento
paso a paso.
DBUG: Este activa un programa al modo RUN para ser ejecutado paso a paso.
SST: Empieza a correr el programa paso a paso, en la parte superior de la pantalla se puede visualizar el
comando que se est llevando a cabo.
SST->: Similar a SST pero est entra en detalle en cada procedimiento
NEXT: Este muestra los dos siguientes comandos a ejecutarse.
HALT: Interrumpe la ejecucin de un programa, similar a PROMPT
KILL: Este comando interrumpe el modo RUN del programa.
OFF: Puede ser utilizado para apagar la calculadora dentro de un programa.

32

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

ANEXOS

33

Expositor: Uber Pablo Gutierrez Rocha

34

Curso Programando en User-RPL

Expositor: Uber Pablo Gutierrez Rocha

Curso Programando en User-RPL

BIBLIOGRAFA
hp 49g+_user's guide_Spanish

(Gua del usuario en Espaol de la hp 49g+)

Clculo cientfico y tcnico con HP49g/49g+/48gII


Programacin en User-RPL

Francisco Palacios
Jorge Ayala Nio de Guzmn

www.adictoshp.org
www.hpcalc.org

35

Você também pode gostar