manual hp2

39
FACULTAD DE INGENIERÍA CECAL- INCO Computación 1 1 MANUAL BÁSICO DE PROGR MANUAL BÁSICO DE PROGR MANUAL BÁSICO DE PROGR MANUAL BÁSICO DE PROGRAMACIÓ AMACIÓ AMACIÓ AMACIÓN DE LA CALCULADORA HP DE LA CALCULADORA HP DE LA CALCULADORA HP DE LA CALCULADORA HP (modelos modelos modelos modelos 50g 50g 50g 50g 49g+ 49g+ 49g+ 49g+ 49g) 49g) 49g) 49g) Material generado para la asignatura “Computación 1” de Facultad de Ingeniería por el Grupo CeCal del Instituto de Computación -Universidad de la República- Año lectivo 2010 Montevideo - Uruguay

Upload: andres-diaz

Post on 24-May-2015

219 views

Category:

Education


2 download

DESCRIPTION

manejo de hp 50g

TRANSCRIPT

  • 1. FACULTAD DE INGENIERA CECAL- INCOMANUAL MMMAAANNNUUUAAALLL BBBBSSSSIIIICCCCOOOO DDDDEEEE PPPPRRRROOOOGGGGRRRRAAAAMMMMAAAACCCCIIIINDDDDEEEE LLLLAAAA CCCCAAAALLLLCCCCUUUULLLLAAAADDDDOOOORRRRAAAA HHHHPPPP(mmmmooooddddeeeelllloooossss 55550000gggg 44449999gggg++++ 44449999gggg))))Material generado para la asignaturaComputacin 1 de Facultad de Ingenierapor el Grupo CeCal del Instituto de Computacin-Universidad de la Repblica-Ao lectivo 2010Montevideo - UruguayComputacin 1 1

2. FACULTAD DE INGENIERA CECAL- INCONDICE:1. Introduccin:..................................................................................................................... 32. Conceptos bsicos............................................................................................................. 42.1. Pila y objeto ............................................................................................................... 42.2. Delimitadores............................................................................................................. 42.3. Variables .................................................................................................................... 52.4. Programas .................................................................................................................. 53. Conceptos avanzados....................................................................................................... 93.1 Operaciones matemticas dentro de un programa...................................................... 93.2. Presentacin de resultados....................................................................................... 123.3. Manipulacin de listas ............................................................................................. 153.3.1. Adicion de elementos a una lista ........................................................................ 173.3.2. Comandos que permiten operar con listas:......................................................... 183.4. Creacin de mens................................................................................................... 224. Estructuras ...................................................................................................................... 244.1. Estructura de programacin..................................................................................... 244.1.1. Estructura de seleccin ....................................................................................... 244.1.2. Estructura de repeticin ...................................................................................... 264.2. Subprogramas .......................................................................................................... 275. Ejemplos prcticos.......................................................................................................... 315.1. Mximo de un vector ............................................................................................... 315.2. Ordenar vector ......................................................................................................... 315.3. Funcin Hermite ...................................................................................................... 325.4. Mximo y mnimo de un vector .............................................................................. 335.5. Interpolacin............................................................................................................ 346. Bibliografa..................................................................................................................... 35ANEXO I. Rutas de los comandos ..................................................................................... 36ANEXO II: Emulador de la calculadora............................................................................. 38ANEXO III: Modo RPN..................................................................................................... 39Computacin 1 2 3. FACULTAD DE INGENIERA CECAL- INCOMANUAL BSICO CALCULADORAS HP1. IntroduccinEste material tiene como objetivo introducir los conceptos y comandos bsicos deprogramacin en las calculadoras HP (modelos 49g,49g+ y 50g). Existen varios lenguajespara programar en las calculadoras HP, entre otros, User RPL, System RPL y ML. En estematerial nos centraremos en User RPL dado que este es el ms fcil de entender. UserRPL es un lenguaje estructurado que permite producir cdigo con un flujo limpio, undiseo claro y cierto grado de estructura jerrquica. Se puede sacar provecho a laestructuracin del lenguaje creando programas de a bloques constitutivos, cada programaconstitutivo puede funcionar independientemente o como una subrutina de un programamayor.En este material nos centraremos en el uso del emulador de la calculadora 50g, siendoaplicable los conceptos a los emuladores 49g y 49g+, as como en las respectivascalculadoras. Un emulador es un software que permite ejecutar programas de computadoraen una plataforma (arquitectura hardware o sistema operativo) diferente de aquella para lacual fueron escritos originalmente.El material se estructura de la siguiente forma: en los primeros apartados se definenalgunos conceptos bsicos, luego se presentan los comandos que permiten realizar lamanipulacin de datos y variables, as como la forma de mostrar los resultados. Para unconocimiento ms profundo dirigirse a las bibliografas citadas al final de este material.Material generado por el Grupo Centro de Clculodel Instituto de Computacin para el cursodel ao 2010 por Jimena Ferreira.Computacin 1 3 4. FACULTAD DE INGENIERA CECAL- INCO2. Conceptos bsicosLas ltimas versiones de la calculadora HP tienen dos entornos de trabajo, en modoalgebraico o en modo RPN (Reverse Polish Notation-Notacin polaca inversa). Para darlos primeros pasos en la programacin necesitaremos usarla en modo RPN. Luego detener los conocimientos bsicos se podr programar en los dos entornos.Para elegir el entorno de trabajo, un camino es MODE Operating mode choose.Hay dos formas de visualizar los mens, en la lnea inferior de la pantalla o en toda lapantalla en forma de recuadro. Recomendamos utilizar los mens en SOFT MENU(mens en la lnea inferior de la pantalla) dado que es ms sencillo y practico. Para poderelegir entre estas dos formas, un camino es MODE FLAGS 117 CHK (la banderao seal del sistema es una variable de la calculadora que controla cierta operacin o modode la calculadora).2.1. Pila y objetoSe utilizaran a lo largo de este material dos palabras que conviene definirlas de antemano,objeto y pila. Los objetos, son los elementos bsicos de informacin utilizados por la HP;por ejemplo, un nmero real, una ecuacin, una lista, una secuencia, un programa. La pila,es una estructura de datos que consta de una serie de objetos (datos); es una serie deubicaciones de almacenamiento en la memoria para objetos, dichas ubicaciones se llamannivel 1, 2, 3, etc.2.2.DelimitadoresDefinicin: Son caracteres que indican de que tipo son los objetos delimitado. En laTabla 1 se presentan algunos delimitadores.OBJETO DELIMITADOR EJEMPLONumero real Ninguno 18.8Numero( ) (-6.5 , 3.1)complejo Secuencias Hola(Strings) Sistemas[ ] [18 19 20](Matrices)Unidades _ 118_NProgramas > Operacionesalgebraicas X-YListas { } {1 2 3 }Nombres PalabraTabla 1: Delimitadores ms importantes.Computacin 1 4 5. FACULTAD DE INGENIERA CECAL- INCO2.3.VariablesEs cualquier objeto almacenado bajo un cierto nombre en el directorio HOME, osubdirectorios de este. El nombre de la variable puede contener hasta 127 caracteres. Nose puede asignar el nombre de una funcin predeterminada de la calculadora a unavariable, por ejemplo no se puede usar: EQ, MAXR, MINR, ZPAR, , etc. Todas lasvariables creadas pueden ser accedidas en el men del usuario VAR.Existen tres tipos de variables:- Variables globales: Son aquellas que se nombran en un programa principal y pueden serreconocidas en cualquier momento, y desde cualquier bloque constitutivo (subrutinas quecomprenden o forman parte) de un programa. Para buscarlas se debe utilizar el menVAR.- Variables locales: Son variables provisionales creadas por un programa. No seencuentran en el men VAR. Son aquellas variables temporales dentro de un programa. Esrecomendable el uso de estas variables ya que utilizan menos memoria y los programasson ms rpido al ejecutarse. El comando define el nombre de las variables y laasignacin respectivamente.Se disponen de dos estructuras (o sintaxis) para crear variables locales: >>>Ms adelante se vern ejemplos del uso de estas dos estructuras.- Variables locales compiladas: Estas variables son una gran opcin en comparacin de lasvariables locales y globales, ya que las variables globales ocupan memoria y las variableslocales no se pueden utilizar fuera del programa. Las variables locales compiladas puedenser usadas en subprogramas o subrutinas que se ejecutan bajo el programa principal.Solamente hay que llamarlas por su nombre como a la subrutina en el programa principal,cuando el programa no existe la variable no existe.El comando define el nombre de las variables, la sintaxis es:>subrutina: >En la seccin 4.2 se profundizara en el uso de este tipo de variables.2.4.ProgramasUn programa en USER-RPL es un objeto definido por los delimitadores quecontienen una secuencia, comandos y otros objetos que se desean ejecutar de formaautomtica para realizar una tarea.La introduccin de datos se puede hacer de varias maneras. Las tres formas principales, sedescriben a continuacin:I. Directamente desde la pila: Para mayor entendimiento se considerar el siguienteejemplo. Supngase que se desea calcular la suma de dos nmeros cualquiera ydejar el resultado en la pila.Computacin 1 5 6. FACULTAD DE INGENIERA CECAL- INCOProcedimiento: Se escribe entre delimitadores de programa la suma, se pulsaENTER, luego entre delimitadores de nombre (no siempre son necesarios losdelimitadores) se escribe el nombre del programa, por ejemplo suma, y porltimo se pulsa STO.Esto quedar grabado en el directorio HOME.Para ejecutar el programa se colocan dos nmeros en la pila 1, y 2. Luego seejecuta el programa suma, y se obtiene el resultado. Para ejecutar el programa sedebe ir al men VAR.Se ejecuta SUMA (apretamos en este caso el botn F1) y se obtiene:Para cargar el programa, ver la estructura o hacer algn cambio necesario en elprograma se debe utilizar: nombre del programa. Para guardar loscambios se debe utilizar: nombre del programa. El nombre delprograma se encuentra en el men VAR.II. Mediante el comando INPUT: Esta es una manera ms elaborada de introducirdatos dentro de un programa, ya que la entrada de datos se reduce mediante unainstruccin propiamente dicha.Computacin 1 6 7. FACULTAD DE INGENIERA CECAL- INCOEl comando INPUT cuando se utiliza como entrada de datos generalmente vaacompaado del comando OBJ el cual quita los delimitadores de strings delobjeto entrado. Consideremos el ejemplo anterior, suma de dos nmeros.Procedimiento:>En la pila se vera as:Para un mejor orden de los comandos dentro del programa, se suele utilizarentre los comandos.Se debe guardar el programa, por ejemplo con el nombre SUMA. Para utilizar elprograma se debe usar el comando VAR y pulsar en SUMA, aparecer elsiguiente:Al ingresar el primer dato, y pulsarENTER, queda lo siguiente:Computacin 1 7 8. FACULTAD DE INGENIERA CECAL- INCOPosteriormente aparecer en la pantalla para introducir el segundo dato,introducirlo y pulsar ENTER, se obtiene:Luego en la pantalla aparecer elresultado final:Comentario 1: Los programas en modo algebraico se deben llamar con el nombre delprograma seguido de parntesis. El parntesis debe contener los datos de entradacorrespondientes (separados por coma) si los datos se ingresan desde la pila; y se debedejar vaco el parntesis, si los datos al programa se ingresan con el comando INPUT.Ruta de los comandos 1:INPUT: PRG NXT INOBJ: PRG TYPEIII. Mediante una planilla de entrada: Esta es una forma de entrada de datos muchoms eficiente que el comando INPUT, pero mucho ms compleja. Para crearla seutiliza el comando INFORM. Para un mejor entendimiento de esta forma deentrada de datos deber consultar los trabajos [1,3].Computacin 1 8 9. FACULTAD DE INGENIERA CECAL- INCO3. Conceptos avanzados3.1.Operaciones matemticas dentro de un programaLa HP utiliza dos formas de realizar operaciones matemticas: RPN (Notacin PolacaInversa) y ALGEBRAICA (la forma como se escriben las expresiones aritmticas en elpapel).Ejemplo 1: Entornos RPN y algebraico.Se quiere calcular el rea de un tringulo, mediante la ecuacin A= (b*h) / 2Entonces si la operacin se escribe en notacin algebraica resulta: b * h /2,mientras que en notacin RPN: b h * 2 /Utilizando la operacin en modo algebraico:>Utilizando la operacin en modo RPN:>Computacin 1 9 10. FACULTAD DE INGENIERA CECAL- INCOComentario 2:Es conveniente remarcar que en modo algebraico se debe utilizar el comando EVAL, peroen modo RPN no se necesita. En modo algebraico se debe escribir la operacinmatemtica con delimitadores de operaciones algebraicas (). Se debe grabar el valor de labase, por ejemplo, con el nombre b, y el de la altura, por ejemplo, con el nombre h. Alfinal de la ejecucin del programa los valores de b y h quedan grabados en el directorioactual.En este material el modo RPN para operaciones aritmticas no se profundizar, por msinformacin se puede consultar en la bibliografa.- Programas de bloque constitutivo: Es aquel que se compone de varias variables y variasinstrucciones (o sentencias). Este trmino se utiliza generalmente cuando el programa esmuy largo para leerlo y verificarlo, por lo cual se hace un programa con variossubprogramas.Ejemplo 2: Programa de bloque constitutivo.Se quiere calcular el rea y el permetro de una circunferencia. Se utilizarn en dosvariables simplemente para explicar como se crea una subrutina y como manejar las dosvariables.Procedimiento: Se crea la variable por donde empezar el programa, es decir la que vacalcular el rea; se la llama AREA.La segunda variable, es decir la que va calcular el permetro; se la llama LONG. Laoperacin matemtica se escribira en forma algebraica, por lo tanto la sintaxis ser:>Luego se graba con el nombre AREA:AREA STONtese que se llama dentro del programa a otra variable LONG.Para escribir la variable LONG:>Se graba con el nombre LONG:LONG STOComputacin 1 10 11. FACULTAD DE INGENIERA CECAL- INCOAl ejecutar el programa AREA e ingresar el valor de radio 6, aparecern las siguientespantallas:En la pila 2 aparece el rea y en al pila 1 la longitud.Notar que el programa dej una variable r en la memoria. Debido a las limitantes dememoria es necesario eliminar las variables. Para eliminar esta variable. Antes de cerrar lasubrutina se debe agregar lo siguiente: {r} PURGE. Esta sentencia elimina de la pila la/lasvariable/s con la que fue invocado. Este comando se puede escribir en la variable LONG,o luego de llamar a la variable LONG, dado que si se escribiera en la variable AREA, alllamar a LONG esta no podra utilizar r.Por lo tanto el cdigo completo queda:REA:>LONG:>REA:>LONG:>Una forma ms prolija desde el punto de vista de la programacin es usar un programa,CALCULO que lea las variables e invoque a los dos subprogramas:CALCULO:>LONG{r} PURGE >>Al ejecutar el programa, la variable r no aparece en el men VAR.Ruta de los comandos 2:PURGE: PRG MEMComputacin 1 11 12. FACULTAD DE INGENIERA CECAL- INCO3.2.Presentacin de resultadosLa presentacin de los datos es de gran importancia para la comprensin de los resultadospor usuarios de los diferentes programas.Para la presentacin de resultados existen varios comandos.A. Mediante el comando TAG: Es un comando sencillo para etiquetar losresultados de un programa, de tal forma que los resultados contengan lainformacin de lo que representan.Ejemplo 3: Uso de TAG.Consideremos el ejemplo de clculo de rea de un tringulo.El cdigo quedara:>Lo grabamos con el valor de AREA.Al cargar el programa, le ingresamosb=2 y h=5. El resultado que apareceen la pila es A=5.Como se vio anteriormente, para que no queden las variables b y h, grabadas en eldirectorio se puede utilizar el comando PURGE al final del programa.Ejemplo 4: Programa con resultados mltiples.Dados el radio y la altura de un cilindro hallar el rea de la base y el volumen delcilindro.El cdigo quedara:>Computacin 1 12 13. FACULTAD DE INGENIERA CECAL- INCOLlamaremos al programa CILIN.Introducimos r =1 y h =2.El resultado obtenido es:Ruta de los comandos 3:TAG: PRG TYPEB. Mediante el comando MSGBOX: ste comando permite mostrar el resultado en uncuadro de dilogo.Ejemplo 5: Uso de MSGBOX.Consideremos el ejemplo anterior: Clculo de rea de tringulo.El cdigo quedara de la siguiente forma:>Lo grabamos con el nombre AREA.Al evaluar el programa obtenemos:Para trabajar con MSGBOX aparecen 3 comandos nuevos:-El comando STR, que lo que hace es convertir el resultado en un string, esdecir le pone delimitadores de secuencia ya que el comando MSGBOX necesitalos datos de entrada de tipo strings. A = es la etiqueta que le pondremos alresultado.Computacin 1 13 14. FACULTAD DE INGENIERA CECAL- INCO-El comando SWAP lo que hace es intercambiar la posicin de los dos datos quehay en la pila en ese momento que son 5 y A=. Sino el resultado nos quedara:5A=. Se utiliza el comando + entre SWAP y MSGBOX para concatenar dosstrings. De esta forma el resultado queda como se muestra en el ejemplo A=5.-El comando MSGBOX lo que hace es tomar el string concatenado y etiquetarlo.Ruta de los comandos 4:MSGBOX: PRG NTX OUTSWAP: PRG STACKSTR: P R G T Y P EC. Mediante el comando DISP: Sirve para presentar resultados obtenidos y ademsnos permite poner texto en la pantalla de forma organizada. Este comando vieneacompaado de otros comandos. Los cdigos con este comando ocupan menosespacios que con el comando MSGBOX.Ejemplo 6: Uso de DISP.Calculo de rea y permetro de una circunferencia.El cdigo quedara:>Llamaremos al programa CFA.Comentario 3: Despus de haber concatenado los dos strings con el + aparece elcomando 1 DISP. 1 indica el nivel de la pila en dnde vamos a ubicar el resultadoordenado de arriba hacia abajo. Luego aparece DISP que permite poner elresultado en el lugar elegido. Sucede lo mismo para el segundo resultado.FREEZE permite congelar la pantalla para que el resultado se mantenga visible,sin el FREEZE se mostrara tan rpido los resultados que no se lograra verlos.FREEZE viene acompaado de un nmero que en este caso es el 3; este nmeroindica el rea de la pantalla a congelar.Ruta de los comandos 5:DISP: PRG NTX OUTFREEZE: PRG NTX OUTComputacin 1 14 15. FACULTAD DE INGENIERA CECAL- INCO3.3.Manipulacin de listasPara HP, lista es todo lo que esta dentro de los delimitadores { }. Las listan puedencontener cualquier tipo de objetos de cualquier tipo, nmeros reales, nmeros complejos,strings, secuencias, unidades, programas, otras listas, etc.Para crear una lista:Una de las formas es desde la pila, para crearla debemos tener los elementos que van aconformar la lista en la pila, luego especificar el nmero de elementos que van acomponer la lista, y por ltimo ejecutar el comando LIST.Ejemplo 7: Crearemos la siguiente lista de cuatro elementos {1,2,3,4}Cuando no se sabe el numero de objetos que la van a conformar se puede utilizar elcomando DEPTH y luego el comando LIST.Ejemplo 8: Crearemos la siguiente lista{(2,1) (1,2) (3,3) (5,2)}Aplicamos DEPTHComputacin 1 15 16. FACULTAD DE INGENIERA CECAL- INCOAplicamos LIST:Otra forma es crear listas mediante un programa.Ejemplo 9: Creacin de listas a partir de un programa.Escribamos un programa que nos pida unas entradas de datos, pero en vez de utilizar elcomando INPUT para ingresar cada dato por separado, lo que haremos es ingresar losdatos todos juntos. Consideremos una serie de datos de dimetros de tuberas en pulgadasy lo convertiremos a metros.Veamos el siguiente cdigo:>Lo grabamos bajo el nombre CONVEntonces introducimos los datos:La salida ser:Computacin 1 16 17. FACULTAD DE INGENIERA CECAL- INCOComentario 4: Notemos que los datos van unos tras otros separados por un espacio (SPC).Una vez puestos los datos en la pila se ejecuta el comando DEPTH el cual pone en la pilael nmero de datos que se encuentran en esta. Recordemos que tenemos que utilizar elcomando DEPTH para especificar el nmero de datos que hay en la pila para formar lalista, de lo contrario se producir un error. Para el uso correcto de DEPTH la pila debeestar vaca.Luego viene el comando LIST que nos forma una lista con los datos de esta pila. Y porltimo, la operacin de conversin de unidades.Observemos que la operacin (0.0254 *) se aplico a toda la lista, lo cual es una granventaja.Ruta de los comandos 6:DEPTH: TOOL STACK NXTLIST: PRG LIST3.3.1. Adicin de elementos a una listaSe puede aadir objetos luego de ya creada una lista. Lo que se debe hacer una vez creadala lista es, colocar la lista en el lugar 2 de la pila, y luego en el nivel 1 colocar el elementoa adicionar, por ltimo se debe pulsar +. Y quedar agregado el objeto.Ejemplo 10:Tenemos la lista {1 2 3 } y queremos agregarle el nmero 4Pulsamos +Computacin 1 17 18. FACULTAD DE INGENIERA CECAL- INCO3.3.2. Comandos que permiten operar con listasEstos comandos nos permiten extraer elementos de una lista, sumar los elementos de unalista, etc. Los primeros comandos se encuentran en el menu MTH, y luego en el submenuLIST.LIST: Este comando determina la diferencia entre dos elementos consecutivosde una lista. Por ejemplo si tenemos una lista {1,2,3,6}, nos va a devolver {1,1,3}Comentario 5: La diferencia se efecta de derecha a izquierda.El resultado es devuelto en una lista. LIST: Este comando nos permite hacer la sumatoria de todos los elementos deuna lista, y nos arroja un resultado como un objeto de numero real.Si en vez de nmeros utilizamos strings, lo que va hacer el comando es concatenar lasletras. LIST: Este comando efecta el producto de todos los elementos de una lista.Computacin 1 18 19. FACULTAD DE INGENIERA CECAL- INCO SORT: Este comando ordena todos los elementos de una lista, de menor a mayor. REVLIST: Este comando invierte el orden de una lista. ADD: Este comando suma el contenido de los elementos de dos listas. Se debenutilizar listas del mismo largo, dando una lista del mismo largo que sus precesoras. GET: Este comando permite extraer un elemento de una lista. Se debe informar lalista y la posicin del elemento a extraer.Ntese que la lista no cambia. PUT: Este comando nos permite insertar un elemento en una lista, dado su ndicede posicin. Se debe ingresar los datos en el siguiente orden en la pila: la lista aeditar, la posicin en donde va a ir el elemento nuevo, el elemento nuevo.Ntese que se sustituye el elemento, el largo de la lista no cambia. No se puede agregar unelemento en una posicin ms all del largo de la lista. SIZE: Este comando calcula el largo de una lista.Computacin 1 19 20. FACULTAD DE INGENIERA CECAL- INCO SUB: Este comando extrae una parte de una lista. Se debe informar la lista, laposicin inicial y la posicin final. REAL: Este comando sustituye un elemento de una lista por otro. Se debeinformar la lista, la posicin y el objeto sustituto. POS: Este comando permite conocer la primera posicin en una lista de unelemento dado. HEAD: Este comando devuelve el primer elemento de una lista. TAIL: Este comando elimina el primer elemento de una lista.Computacin 1 20 21. FACULTAD DE INGENIERA CECAL- INCOEjemplo 11: Uso de listas y creacin de variables auxiliares.Hallar el promedio de los elementos de una lista.EL cdigo quedara: LISTA INPUT OBJDEPTH LIST0 0 X N SX LIST S STOX SIZE N STOS/N NUMMED TAG Comentario 6:La sintaxis 0 0 X N S asigna los valores cero para N y S, y asigna el valor de X de lapila.Ruta de los comandos 7:GET: PRG LIST ELEMPUT: PRG LIST ELEMSIZE: PRG LIST ELEMPOS: PRG LIST ELEMHEAD: PRG LIST ELEM NXTTAIL: PRG LIST ELEM NXTComputacin 1 21 22. FACULTAD DE INGENIERA CECAL- INCO3.4.Creacin de mensLos mens temporales son mens creados directamente por el usuario. Estos se puedencrear de dos formas: mediante la tecla MENU o mediante el comando TMENU.-Mediante la tecla MENU: Se debe introducir una lista en la pila (que a su vez tienesublistas) las cuales contienen dos argumentos; la etiqueta y la accin que queremos quese ejecute cuando pulsemos la tecla men.Ejemplo 12: Uso de la tecla MENU.Crearemos un men temporal con la etiqueta SENO la cual ejecuta la funcin SIN.Luego pulsamos MENU:Nos aparece el men SENO en la pantalla.Si colocamos un nmero en la pila y ejecutamos el men:Como comentario: Si observamos en VAR veremos que se ha creado la variable CST.En el lugar de SIN puede ir cualquier funcin propia de la calculadora o creada por elusuario.Computacin 1 22 23. FACULTAD DE INGENIERA CECAL- INCO-Mediante el comando TMENU: Este comando permite crear un men temporal, el cualpodemos utilizar para la entrada de datos.Ejemplo 13: Uso de comando TMENU.Asignaremos 5 etiquetas de men que contienen los nmeros del 1 al 3 cuyas acciones sonponer su correspondiente nmero en pantalla mediante el comando DISP, y una quintaaccin es volver al directorio donde nos encontramos.Cdigo: {{1 UNO STR1 DISP 3 FREEZE }{ 2DOS STR2 DISP 3 FREEZE }{ 3TRES STR3 DISP 3 FREEZE }{ } { }{ATRAS2.01MENU }} TMENULo llamaremos EJEMPLOLo cual nos muestra:Si pulsamos 1 se ver:Si pulsamos ATRAS:Vuelve al men que tenamos antes.Comentario 7: Observemos que la accin a ejecutar est entre delimitadores de programa.Para dejar una tecla de men en blanco debemos escribir { }El comando 2.01MENU vuelve la pantalla al men anterior.Computacin 1 23 24. FACULTAD DE INGENIERA CECAL- INCO4. Estructuras4.1.Estructuras de programacin4.1.1. Estructuras de seleccinIFTHENELSEEND:La sintaxis de esta estructura es: IF expresin testTHEN accin caso verdaderoELSE accin caso falsoEND Ejemplo 14: Uso de la estructura IF.Programaremos la funcin: =( ) 0x2 si xsen x si x=0yEl cdigo quedara: DATO INPUT OBJX IF X=0THEN SIN(X)ELSE X^2END NUMf TAG Lo guardamos con el nombre fdeX.Comentario 8: Se puede anidar esta estructura, sin tener un lmite de nivel de anidamiento.El uso de ELSE no es obligatorio, se puede utilizar una estructura del tipoIFTHENENDRuta de los comandos 8:IFTHENELSEEND: PRG BRCH IFComputacin 1 24 25. FACULTAD DE INGENIERA CECAL- INCOCASETHENEND:La sintaxis de la estructura es: CASEcondicin 1 THEN acciones para condicin 1 cierta ENDcondicin 2 THEN acciones para condicin 2 cierta END condicin n THEN acciones para condicin n cierta ENDacciones por defectoEND Ejemplo 15: Uso de la estructura CASE.Programaremos la siguiente funcin:- =1 0=si x0 00( )si xx2 si xg xEl cdigo quedara: dato INPUT OBJXCASEX0 THEN -1 ENDX = = 0 THEN 0 ENDX 0 THEN X^2 ENDENDNUM g TAGLo guardaremos con el nombre gdeXEn este caso como no hay accin por defecto, se debe escribir un segundo END al final.Una versin ms simplificada del cdigo anterior sera: dato INPUT OBJXCASEX0 THEN -1 ENDX = = 0 THEN 0 ENDX^2 ENDNUM g TAGComentario 9:Se puede utilizar = = o escribir SAME.Ruta de los comandos 9:CASETHENEND: PRG BRCH CASEComputacin 1 25 26. FACULTAD DE INGENIERA CECAL- INCO4.1.2. Estructuras de iteracinFORNEXT:Esta estructura tiene dos sintaxis: una cuando la variable se incrementa de a 1 y la otracuando el incremento es distinto de 1.Sintaxis cuando el incremento es 1: valor_inicial valor_final FOR variableaccionesNEXT Ejemplo 16: Uso de la estructura FOR- NEXT.Se quiere calcular la suma de todos los nmeros de 1 hasta N: (N+(N-1)+(N-2).+1).El cdigo quedara: NUMERO INPUT OBJ 0n S 1 n FOR iS+i EVAL S STONEXTS NUM S TAGLa llamaremos SUMA.Comentario 10:Recordar que a n se le asigna la entrada del dato y a S se le asigna cero.Sintaxis cuando el incremento es distinto de 1:valor_inicial valor_final FOR variableaccionesincremento STEP Ejemplo 17: Uso de la estructura FOR-STEP.Queremos calcular la suma de todos los nmeros impares desde 1 hasta N, siendo Nimpar.El cdigo quedara: NUMERO INPUT OBJ 0n S n 1 FOR iS+i EVAL S STO-2 STEP SNUM S TAGLlamaremos al programa SUMIMPARRuta de los comandos 10:FORNEXTSTEP: PRG BRCH FORComputacin 1 26 27. FACULTAD DE INGENIERA CECAL- INCOWHILEREPEATEND:La sintaxis para esta estructura es: WHILE condicinREPEAT accionesEND Ejemplo 18: Uso de la estructura WHILE.Haremos un programa que suma todos los valores de un vector hasta encontrar el cero.El cdigo quedara: VECTORINPUT OBJ0 0 1 0 v S ind cont n v SIZE HEAD 'n' STOWHILE 'ind==0 AND cont=n'REPEATIF 'v(cont) NOT SAME 0'THEN 'S+v(cont)' EVAL 'S' STOELSE '1' EVAL 'ind' STOEND'cont+1' EVAL 'cont' STOEND'S' NUM S TAG Ruta de los comandos 11:WHILEREPEATEND: PRG BRCH WHILE4.2.SubprogramasEn User RPL as como en MATLAB se puede utilizar un programa como parte de otroprograma. Un subprograma (o subrutina) es un fragmento de cdigo que recibe ciertosdatos llamados parmetros de entrada, a partir de los cuales se realiza una serie deoperaciones para devolver resultados mediante los parmetros de salida. En estosprogramas se pueden usar las variables locales compiladas, para un uso eficiente dememoria de la calculadora.Computacin 1 27 28. FACULTAD DE INGENIERA CECAL- INCOEjemplo 19: Uso de subprogramas.Calcularemos el rea y el permetro de una circunferencia.El cdigo quedara: RADIO INPUT OBJR R AREA 2**RNUM PERIMETROTAG Lo llamaremos CIRCULOrea: *R^2 NUMAREA TAGLo llamaremos AREAComentario 11: Cuando usamos variables locales compiladas siempre debemos notarlascomo: variable.Si quisiramos utilizar el programa AREA solo, no se puede dado que este necesita deotro programa el cual genere la entrada de la variable R.En este ejemplo no es necesario el uso de la variable R, por lo tanto R puede ir o no dentrode la generacin de la variable.Ruta de los comandos 12 :: CHARSComputacin 1 28 29. FACULTAD DE INGENIERA CECAL- INCOEjemplo 20: Uso de subprogramas con variables locales compiladas.Calcular (X+Y)/(X-Y).El cdigo quedara: DATO1 INPUT OBJDATO2 INPUT OBJ X Y SUB1/SUB2NUM DIVISIONTAG Lo llamaremos DIVISION.Subrutina1: X + Y NUMLo llamaremos SUB1.Subrutina2: X - Y NUM Lo llamaremos SUB2.Otra utilidad de estas variables es la posibilidad de hacer programas recursivos.Ejemplo 21: Recursin.Calcular factorial de un numero N.El cdigo quedara: N IF N= =1 OR N= =0THEN 1ELSE N * FACTORIAL(N - 1 )END NUMFACT TAG Lo llamaremos FACTORIAL .Comentario 12:Notemos que OR est entre dado que es notacin algebraica, si quisisemos escribirlo enforma RPN, seria: N= =1 N= =0 OR.Como la llamada recursiva est entre comillas se debe escribir el nombre del programa yla variable entre parntesis curvo.Computacin 1 29 30. FACULTAD DE INGENIERA CECAL- INCOEjemplo 22: Recursin con dos parmetros de entrada:Queremos hallar la potencia de un nmeroM elevado a la N.El cdigo quedara: MNIF N= =1THEN MELSE M*POTENCIA(M,N-1)END NUM POT TAGLo llamaremos POTENCIA.Comentarios 13:Debemos escribir la llamada recursiva entre parntesis POTENCIA(M,N-1) dadoque dentro de comillas se est trabajando en modo algebraico. Ntese que las entradas deM y N son en la segunda y primera pila respectivamente.Computacin 1 30 31. FACULTAD DE INGENIERA CECAL- INCO5. Ejemplos prcticos5.1.Mximo de un vectorCalcularemos el mximo de un vector:El cdigo queda: VECTOR INPUTOBJ v v(1) NUM M STOv SIZE HEAD n STO2 n FOR iv(i) NUM P STOIF PMTHEN v(i) NUM M STOENDNEXTM NUM MAX TAGLlamaremos al programa MAXVEC.Para utilizar el programa se deber ingresar el vector entre parntesis rectos [ ].5.2.Ordenar vectorOrdenaremos un vector de menor a mayor:El cdigo queda: VECTOR INPUT OBJ0 0 v n A v SIZE HEAD n STO1 n-1 FOR ii n FOR jIF v(i) v(j)THEN v(i) NUMA STOv(j) NUM v(i) STOA v(j) STO ENDNEXTNEXTv NUM ORDEN TAG Llamaremos al programa ORDENAR.Computacin 1 31 32. FACULTAD DE INGENIERA CECAL- INCO5.3.Funcin HermiteHallaremos la funcin hermite de forma recursiva y de forma iterativa:El cdigo de forma recursiva queda: n x IF n= =0THEN 1ELSEIF n= =1THEN 2*xELSE 2*X*HERMI(n-1,x)-2*(n-1)*HERMI(n-2,x)ENDENDNUM HERMI TAGLlamaremos al programa HERMI.El cdigo en forma iterativa queda: n x 1 a STO2*x NUM b STO2 n FOR i2*x*b-2*(i-1)*a NUM h STOb NUM a STOh NUM b STONEXTH NUM HERMITTAGComputacin 1 32 33. FACULTAD DE INGENIERA CECAL- INCO5.4.Mximo y mnimo de un vectorHallaremos el mximo y el mnimo de un vector:El cdigo en forma iterativa queda: v v SIZE HEAD n STOv(1) NUM MAXI STOv(1) NUM MINI STO2 n FOR iIF MAXI v(i)THEN v(i) NUM MAXI STOELSEIF MINI v(i)THEN v(i) NUM MINI STOENDENDNEXTMAXI NUM MAX TAGMINI NUM MIN TAG{n,MAXI,MINI} PURGELlamaremos al programa BUSCAREl cdigo en forma recursiva queda: v v SIZE HEAD n STOIF n= =1THEN v(1) NUM MAXI STOv(1) NUM MINI STOELSE v 1 COL- 2 PICK BUSCARR2 PICK MAXI STO1 PICK MINI STOIF v(1)MAXITHEN V(1) NUM MAXI STOELSEIF v(1)MINITHEN V(1) NUM MINI STOEND END END MAXI NUM MAXIMO TAGMINI NUM MINIMO TAG{MAXI MINI n} PURGE Lo llamaremos BUSCARR.Comentario 14: Recordemos que debemos usar SIZE y luego HEAD dado que el comandoSIZE, al ser utilizado con un vector [ ], devuelve una lista con dos nmeros.El comando PICK toma el valor del nmero de la pila que se le indica. Por ejemplo, sidice 1 PICK toma el valor de la pila que esta en la posicin 1.Computacin 1 33 34. FACULTAD DE INGENIERA CECAL- INCO5.5.InterpolacinUsualmente en ingeniera se utilizan tablas de datos, las cuales se deben interpolar. Porejemplo tablas de P vs T, presin y temperatura respectivamente. Haremos un ejemplo enel cual se ingresan los datos de X e Y como matriz y los datos a interpolar. Y hallaremoslas interpolaciones de estos.El cdigo quedara:CLEAR DATOS A INTERPOLARINPUT OBJ DEPTH LISTMATRIZ DE X E YINPUT OBJ D M M COL2 PICK 'Y' STO3 PICK 'X' STOCLEARY AXL 'Y' STOX AXL 'X' STOX LIST X SIZE / 'Xm' STOY LIST Y SIZE / 'Ym' STOLIST ((X-Xm)*(Y-Ym))/ LIST ((X-Xm)*(X-Xm))NUM 'b' STOYm - b * Xm NUM 'a' STOb*D - NEG(a)NUMDATOS INTERPOLADOS TAG{a b Xm Ym X Y} PURGEComentarios 15:El comando CLEAR borra los objetos de la pila, esto se debe hacer antes de usar elcomando DEPTH, dado que este toma TODOS los objetos que haya en la pila.Para poder utilizar el comando DEPTH se debe primero ingresar los datos a interpolar yluego los datos de la matriz (en formato matricial) y no viceversa, sino el comandoDEPTH tomara los valores de la matriz tambin.El comando COL lo que hace es tomar la matriz y partirla segn sus columnas, de talforma que en la pila numero 1 coloca la cantidad de columnas y luego en la pila 2 colocala columna n, en la pila 2 la columna n-1, y as sucesivamente hasta llegar a la pila n+1donde coloca la columna 1 en forma vectorial.La segunda vez que se utiliza CLEAR se hace para que los datos anteriores que hayanquedado en la pila, para que luego no aparezcan con el resultado.El comando AXL se utiliza para convertir un vector en una lista.Computacin 1 34 35. FACULTAD DE INGENIERA CECAL- INCO6. Bibliografa1. Programacin en USER-RPL con ejemplos aplicados a Ing. Civil. Segundaedicin. Andrs R. Garca M. http://www.box.net/shared/t29uz6xbi52. Curso de Programacin User RPL. Luis M. Gallardo D.http://www.hpcalc.org/hp48/docs/programming/cursouserrpl.zip3. Gua del usuario HP50g.http://h20000.www2.hp.com/bizsupport/TechSupport/CoreRedirect.jsp?redirectReason=DocIndexPDFprodSeriesId=3235173targetPage=http%3A%2F%2Fbizsupport1.austin.hp.com%2Fbc%2Fdocs%2Fsupport%2FSupportManual%2Fc00748738%2Fc00748738.pdf4. Programming in User RPL. Eduardo M. Kalinowski.http://www.hpcalc.org/hp48/docs/programming/usrtutpd.zip5. Manual completo del uso de las calculadoras HP 49g, 49g+ y 50g. Fundamentosde programacin en User RPL. Sandro Roque Martnez.http://isa.umh.es/calc/manua2lUserRPL.pdfComputacin 1 35 36. FACULTAD DE INGENIERA CECAL- INCOANEXO I. Rutas de los comandosTodos los comandos se podrn usar simplemente tipeando los comandos.Ubicaciones de los comandos mencionados en este material.LIST: PRG LISTPRG TYPENUM: NUMSTR: P R G T Y P ETAG: PRG TYPEADD: MTH LISTCASETHENEND: PRG BRCH CASEDEPTH: PRG STACK NXTTOOL STACK NXTDISP: PRG NTX OUTENTER: FORNEXTSTEP: PRG BRCH FORFREEZE: PRG NTX OUTGET: PRG LIST ELEMHEAD: PRG LIST ELEM NXTHOME: FILESIFTHENELSEEND: PRG BRCH IFINPUT: PRG NXT INMENU: PRG NXT MODES MENUMSGBOX: PRG NTX OUTOBJ: PRG TYPEPOS: PRG LIST ELEMPURGE: PRG MEMComputacin 1 36 37. FACULTAD DE INGENIERA CECAL- INCOPUT: PRG LIST ELEMREVLIST: MTH LISTSIZE: PRG LIST ELEMSORT: MTH LISTSWAP: PRG STACKTOOL STACK NXTTAIL: PRG LIST ELEM NXTTMENU: PRG NXT MODES MENUWHILEREPEATEND: PRG BRCH WHILE LIST: MTH LISTLIST: MTH LISTLIST: MTH LIST CHARSComputacin 1 37 38. FACULTAD DE INGENIERA CECAL- INCOANEXO II: Emulador de la calculadoraComo se coment al principio de este material, un emulador es un software que permiteejecutar programas de computadora en una plataforma (arquitectura hardware o sistemaoperativo) diferente de aquella para la cual fueron escritos originalmente. Este tiene laventaja de poder usarlo en la computadora, por lo que si ocurre cualquier error, o borradode archivos no nos tenemos que preocupar. Otra ventaja es el de poder grabar cada sesinen el emulador. La desventaja es que hay que tener cuidado, porque no es del todoperfecto, con lo que pueden aparecer errores en el emulador que en la calculadora noaparecen continuamente actualizaciones que corrigen estos errores.La versin que existe hasta el momento del emulador de la calculadora HP 50g, es unemulador de la calculadora 48g con interfaz de la calculadora 50g. Para poder utilizar estesoftware, no se necesita instalacin, se debe descomprimir el archivo descargado en unacarpeta, y luego se inicia el emulador desde esta carpeta, cliqueando en el archivoemu48.exe. Luego aparecer una ventana en donde se pide el directorio del archivoemu48.exe. Damos OK. Seguidamente aparecer una pantalla de resultado decompilacin. Damos OK. Luego se vera el emulador, en donde se pregunta si se carga lamemoria. Damos cancel. En este momento la calculadora esta pronta para ser utilizada.Los distintos emuladores se pueden encontrar en Internet, aqu le dejamos una de lastantas direcciones para los distintos emuladores.Emulador 50g y 49g+: http://www.deachp.com/descargas/emu50g.zipEmulador 49g: http://www.deachp.com/descargas/emu49g.zipComputacin 1 38 39. FACULTAD DE INGENIERA CECAL- INCOANEXO III: Modo RPN.Las operaciones en RPN son aquellas en donde primero se informan los parmetros yluego el comando. Si se quiere hacer una divisin, sera: numerador denominador /. RPNutiliza una estructura almacenamiento de pila, el ltimo valor se almacena en la pila 1, elpenltimo valor se almacena en la pila 2, etc. Su principio es el de evaluar los datosdirectamente cuando se introducen y manejarlos dentro de una estructura LIFO (Last InFirst Out), lo que optimiza los procesos a la hora de programar.Se debe conocer de antemano cuantos argumentos necesita el comando o el operador. Porejemplo el operador + necesita dos argumentos, y el comando | | necesita uno.Consideremos el siguiente ejemplo de clculo (5+3)*4.Dos posibles rutas de ejecutar este clculo en RPN son:4 ENTER 5 ENTER 3 + *5 ENTER 3 + 4 *Si por ejemplo queremos calcular insertar un objeto en una lista con la funcin PUT, lacual necesita tres objetos, la ruta sera:{1 2 3 4} ENTER (la lista a la cual le voy a insertar el elemento)2 ENTER (posicin en la cual queremos insertar el elemento)8 ENTER (elemento a insertar)PUT ENTERVentajas:Los clculos se realizan secuencialmente segn se van introduciendo operadores, en vezde tener que esperar a escribir la expresin al completo. Debido a esto, se cometen menoserrores al procesar clculos complejos. El proceso de apilacin permite guardar resultadosintermedios para un uso posterior. Esta caracterstica permite que las calculadoras RPNcomputen expresiones de complejidad muy superior a la que alcanzan las calculadorasalgebraicas.No requiere parntesis ni reglas de preferencia, al contrario que la notacin algebraica, yaque el proceso de apilamiento permite calcular la expresin por etapas. En las calculadorasRPN, el clculo se realiza sin tener que apretar la tecla = (aunque se requiere pulsar latecla Enter para aadir cifras a la pila).El estado interno de la calculadora siempre consiste en una pila de cifras sobre las que sepuede operar. Dado que no se pueden introducir operadores en la pila, la notacin polacainversa es conceptualmente ms sencilla y menos dada a errores que otras notaciones. Entrminos educativos, la notacin polaca inversa requiera que el estudiante comprenda laexpresin que se est calculando. Copiar una expresin algebraica directamente a unacalculadora sin comprender la aritmtica dar un resultado errneo.Desventajas:Es difcil usar la notacin polaca inversa al escribir a mano, dada la importancia de losespacios para separar operandos. Se requiere un caligrafa muy clara para evitar confundir,por ejemplo, 12 34+ (=46) de 123 4+ (=127) o 1 234+ (=235).Computacin 1 39