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. abe resaltar que se desarrollara el lengua!e "ser#$P% casi en su integridad en notación $P&. Esto se debe que tambi'n se podrá traba!ar con e(presiones algebraicas aunque serán en peque)as parte dentro de la sinta(is te algunos comandos. *ambi'n quisiera +acer el agradecimiento +acia $oger roncano, por su gran soft-are HP"serEdit .0 del cual voy a +acer uso para la visuali/ación de código y a 1ante Aroni por venderme mi primera HP 50g.
B !a" Agu#lar
IN$RO!UCCIÓN 1E23&334& 1E %A %43A $P& *al ve/ usted +aya está usando la calculadora en modo algebraico la calculadora por ser esta forma la que se encuentra en muc+as calculadoras. 6in embargo, usted está desperdiciando el gran potencial que tiene esta al ser operada en modo $P&. Pero, 7qu' es el modo $P&8 El modo $P& corresponde a la notación polaca inversa. Esto quiere decir que para +acer una operación se requiere que se cumpla la aridad del operador y luego el operador. laro que se deben respetar las dimensiones. Por e!emplo para reali/ar una suma de 9 y : se ingresan 9 luego : y al final el operador ;<= 1E6$3P3>& 1E %A PA&*A%%A $P& Pero antes de a+ondar continuar y pasar a lo que es propiamente la programación debemos tener en cuenta ciertos aspectos de la pantalla de la calculadora
%& E'#(u)'as d) *)"+.# Estas etiquetas tendrán diversas funciones de acuerdo al men? donde nos encontremos. Para sacarle un mayor provec+o activar la opción 6oft menu en los flags @BC de la calculadora. ,& L-")a d) co*a"dos.# 6e mostrara todas las veces que se ingrese datos, comandos, te(to, etc. .& P#la o s'ac/.# Estos n?meros indican el nivel en la que se encuentra almacenado un ob!eto des pues de pasar por la lDnea de comandos. estos se empie/an a almacenar desde el nivel despla/ándose +acia un nivel superior si se ingresa un nuevo ob!eto. %os siguientes elementos representaran el +eader o cabecera. El +eader proporciona información sobre cómo está funcionando la calculadora. abe resaltar que este +eader puede quitarse para poder observar más niveles de la pila claro está que se debe tener en cuenta como está traba!ando la calculadora antes de quitarla. Para un programador principiante se recomienda de!ar el +eader.
& !#r)c'or#o&1 &os indica en que carpeta nos encontramos actualmente. Al crear más directorios podremos tener ordenados nuestros arc+ivos. 5& S#s')*a a"gular &os indica que sistema angular se encuentra activo. Podemos elegir entre estos tres sistemasF radianes @$A1C, se(agesimales @1EC y centesimales @$1C. 2& S#s')*a d) coord)"as &os indica que sistema coordenado se encuentra activo. Podemos elegir entre estos tres sistemasF rectangular @GC, polar @$∡C y esf'rico @$∡∡C. 3& Bas) "u*4r#ca&1 &os indica la base num'rica en la que se encuentra la calculadora. Esa base no afecta a los cálculos pero si lo +ace a ciertas funciones como los %3EIA% o 2%A6HEIA%. & Modo d) op)rac#6" &os indica que modo esta activo en la calculadoraF el e(acto @R7C o apro(imado @R8C. 9& :ar#a;l) d) s#s')*a Juestra la variable del sistema siendo por lo general la letra G. %0&F)c
MANEJO !EL EN$ORNO JA&EM> 1E %A P3%A omo vimos lineas arriba la pila consta de varios nivles. %a visuali/acion de estos varia seg?n el tama)o de la fuente, el tipo de ob!eto, el +eader o la memoria disponible de la calculadora. Para este fin, la calculadora cuenta con varios comandos para lograr el ob!etivo los +ay desde comandos para copiar, borrar, cambiar el orden, elegir, y contar elementos.
Co*a"dos para dupl#car&1 %& ,& .& & 5& 2& 3& & 9&
1uplica un ob!eto !UP = 1uplica un ob!eto dos veces !UP!UP = 1uplica los obe!tos en los niveles y L en la pila !UP, = *oma un entero n de el nivel de la pila y devuelve las !UPN = copias de los ob!etos en la pila desde el nivel L +asta el n< 1uplica un ob!eto n veces y devuelve n. NnO en el nivel N!UPN = 1uplica el ob!eto de un especificado nivel de la pila en PIC> = el nivel 1uplica el ob!eto del nivel tres en la pila PIC>. = $etorna una copia al nivel de la pila del ob!eto en el O:ER = nivel L $empla/a el ob!eto en el nivel n = nivel L y borra el ob!eto en el nivel y L.
Co*a"dos para ;orrar
%& !ROP ,& !ROP, .& !ROPN nivel
= = =
$emueve el ob!eto del nivel de la pila y despla/a los $emueve los dos primeros ob!etos de la pila $emueve los primeros n< ob!etos de la pila.NnO en el
Co*a"dos para ord)"ar ambia la posicion de los niveles uno y dos de la pila %& S?AP = $ota los tres primeros ob!etos en la pila de forma ,& RO$ = +oraria. $ota los n primeros ob!etos en la pila de forma +oraria a .& ROLL = partir del nivel L. NnO en el nivel $ota los n primeros ob!etos en la pila de forma & ROLL! = anti+oraria a partir del nivel L. NnO en el nivel $ota los tres primeros ob!etos en la pila de forma 5& UNRO$ = anti+oraria Equivale a la e!ecucion de S?AP seguida por !ROP 2& NIP =
Co*a"dos para co"'ar $etorna un n?mero real representando el numero de %& !EP$H = ob!etos presentes en la pila antes de que 1EP*H fuese e!ecutado. A+ora usando solo estos comandos partiremos desde la pantalla de la i/quierda +acia la derec+a.
Para este caso basta 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
con
Aca es ya un poco más comple!o el codigo se transforma
!UPN ROLL 3 ROLL! RO$ 5 ROLL! S?AP ROLL!