[Bajar Curso de User-Rpl] [Bajar Curso de System-Rpl] [Bajar Curso de Librerías]

User-Rpl.

Página 2 de 2
    Página 1
    Página 2


Entrada de Datos.

    Durante la ejecución de un programa en la calculadora nos puede interesar tomar datos desde el teclado. Para hacer esto posible se pueden usar  los comandos INPUT o INFORM.  El comando INPUT es apropiado cuando se trabaja con programas que utilicen pocas variables, mientras que el INFORM nos permite trabajar más fácilmente con múltiples variables y dar una descripción de lo que significa cada una.

INPUT

    Este comando nos permite tomar datos desde el teclado de una forma sencilla. Es aconsejable utilizarlo cuando se está trabajado pocas variables, dado a la forma como se presenta la información, pero de igual forma se puede trabajar con múltiples variables. La sintaxis que caracteriza este comando para una sola variable es la siguiente:

    << "Título" ":Nombre_variable:" INPUT >>
NOTA:   Es importante que se coloque el nombre de la variable entre ": :" para que sea reconocida por el INPUT.

Si se quiere trabajar con más variables, la sintaxis es la siguiente:

    << "Título"
       { ":Nombre_variable_1:
         :Nombre_variable_2:
         :Nombre_variable_3:"
        {1 0}
        } INPUT >>
    Para colocar varias variables se colocan en una lista los nombres de las mismas, el último elemento de la lista  "{ 1 0 }" especifica la fila.

EJEMPLO:

<< "Suma de 3 Números"
   { ":N1:
      :N2:
      :N3 "  {1 0} } INPUT  OBJ® + + "Suma" ®TAG  >>
    En este ejemplo se toman tres variables ( N1, N2 y N3) y se llevan a formato numérico a través del comando  "OBJ®" , luego se suman y se etiqueta el resultado, con el comando "®TAG", bajo el nombre "Suma".

INFORM

    El INFORM es una forma más elaborada de tomar los datos desde el teclado, ya que este comando permite brindar información al usuario de las variables que se estén trabajando. La forma de utilizar este comando es la siguiente:

    << "Título"
       { {"Nombre_variable_1:" "Comentario_1" Tipo_de_dato }
         {"Nombre_variable_2:" "Comentario_2" Tipo_de_dato }
         {"Nombre_variable_3:" "Comentario_3" Tipo_de_dato }
        }
       { #Columnas #Espacio}
       { Valor_Reset_1 Valor_Reset_2 Valor_Reset_3 }
       { Valor_defoult_1 Valor_defoult_2 Valor_defoult_3 }
       INFORM >>
    Primero se especifica el título de la plantilla. Luego se coloca el nombre de cada variable con su respectivo comentario y el tipo de dato que es aceptado para esa variable (los tipos de datos viene en el manual de usuario de la calculadora). Después se determina el número de columnas por pantalla que deben de aparecer, así como la distancia del campo a llenar y el nombre de la variable. A continuación se coloca una serie de valores  que aparecerán cuando se borre el contenido de uno o todos los campos;  y por último se especifica los valores por defecto que han a de aparecer cuando se ejecute el comando INFORM.
    Todo esto parece un poco complicado pero no lo es, ya que muchos de estos parámetro se pueden obviar. Como ejemplo colocaré un programa considerando todos los parámetro, otro programa donde obviaré algunos y uno donde no consideraré a ningún parámetro.

EJEMPLO 1 ( Considerando todos los parámetros ).

 << "Agenda"
       { {"Nombre:" "COLOQUE UN NOMBRE" 2 }
         {"Teléfono:" "NUMERO DE TELEFONO"  }
         {"E-mail:" "DIRECCION DE CORREO" 2 }
        }
       { 1 0 }
       { Carlos 5769985 "carlos@fecel.net" }
       { Luis 123456 "hp48g@mailcity.com" }
       INFORM >>
     En este ejemplo se consideraron todos los parámetros. Se especificaron comentarios y tipos de datos en cada variable, numero de columnas y espacio entre las variables y su campo, valores que aparecen al borrar los campos y los valores por defecto

EJEMPLO 2 ( Obviando algunos  parámetros ).

 << "Agenda"
       { {"Nombre:" "COLOQUE UN NOMBRE"  }
         {"Teléfono:" "NUMERO DE TELEFONO" }
         {"E-mail:" "DIRECCION DE CORREO" }
        }
       { }
       { }
       { }
       INFORM >>
    En este otro ejemplo solo se consideraron los parámetro de los comentarios,  y se ignoraron los restantes. Al no especificar ningún tipo de dato en cada variable, se está dando la libertad de colocar cualquier tipo de dato (número, carácter, lista, etc.).

EJEMPLO 3 ( Obviando todos los parámetros ).

 << "Agenda"
       { "Nombre:" "Teléfono" "E-mail:"}
       { }
       { }
       { }
       INFORM  >>
    En este último ejemplo no se consideró ningún parámetro. Esta es la forma más elemental, y la que ocupa menos espacio en memoria,  de trabajar con el INFORM. En esta básica del INFORM, los nombres de cada variable se colocan en una sola lista, a diferencia de los ejemplos anteriores donde cada variable estaba en una lista diferente (esto debido a que cada variable contenía un comentario y tipo de dato asociado).TOPE

Captura de Errores.

    Una gran ventaja que posee la HP-48 es la posibilidad de trabajar los errores como condiciones, es decir, que si ocurre un determinado error en la ejecución de algún programa la calculadora puede tomar una decisión a raíz de ese evento, sin detener la ejecución de dicho programa.

IFERR...THEN...ELSE...END

    El IFERR responde a la necesidad de poder controlar errores en la ejecución de programas. Esta estructura tiene gran semejanza con el IF y funciona de la siguiente manera:

SI ocurre un ERROR (CONDICIÓN)
ENTONCESse realiza una ACCIÓN
SINOse ejecuta otra ACCIÓN DIFERENTE
FIN

 La sintaxis para esta estructura es la siguiente:

    << IFERR Bloque_de_instrucción o Programa
       THEN Acción
       ELSE Acción_Diferente
       END >>
  El "IFERR" nos garantiza que si ocurre un error en la ejecución de un programa la calculadora realizará una acción, sino realizará otra. Esta estructura  se puede trabajar como partición binaria (sintaxis anterior) o como partición  simple,  para realizar una acción si se genera un error o no hacer nada en caso contrario. La sintaxis para la partición simple es:
    << IFERR Bloque_de_instrucción o Programa
       THEN Acción
       END >>
EJEMPLO:
    << IFERR  "Suma de 3 Números"
            { ":N1:
               :N2:
               :N3 "
               {1 0} } INPUT  OBJ® + + "Suma" ®TAG
        THEN CLEAR "ERROR DE EJECUCION" DOERR
        END >>
    En este ejemplo se uso el programa de "Suma de 3 Números", del ejemplo de INPUT, para probar el funcionamiento del IFERR. Si ocurre un error en el programa de "Suma de 3 Números", bloque de instrucciones entre el IFERR y el THEN, se ejecutan las acciones de limpiar la pila (CLEAR) y  generar un mensaje de error con el comando DOERR. Para que se produzca un error en programa solo hay que dejar de introducirle las variables y darle a ENTER, cuando el programa trate sumar los valores se encontrará con que no existen argumentos, y así se producirá el error.

    Con esta sencilla sintaxis del IFERR se puede controlar el funcionamiento de cualquier programa o conjunto de instrucciones.TOPE

Salida de Datos

    Cuando elaboramos un programa puede que nos interese presentar datos de salida para informar el resultado de alguna operación o proceso. Para realizar esto la calculadora dispone de comandos destinados para tal fin, y su uso depende de cómo se desee presentar los datos. Dentro de esos comandos se encuentran: DISP, MSGBOX Y PVIEW.

DISP

   Este comando permite mostrar líneas de textos (no mayores de 22 caracteres) en la pantalla de la calculadora. Si la línea de texto se pasa de los 22 caracteres, la calculadora sustituye los caracteres siguientes por "...". Como el tamaño de cada letra es igual al tamaño real de las letras en la calculadora, solo se dispone de 7 líneas por pantalla. La sintaxis que se sigue para mostrar líneas de textos es la siguiente:

<< "LINEA DE TEXTO" #NUMERO_DE_LINEA DISP >>
EJEMPLO:    << CLLCD "HOLA" 4 DISP -1 FREEZE >>
   Con el comando DISP se pueden mostrar líneas de texto en la pantalla de la calculadora, pero si la pantalla contenía algo previo la línea se escribirá sobre eso. Para evitar esto existe una instrucción que limpia la pantalla: CLLCD.
    Otro detalle que tiene el comando DISP, es que su ejecución ocurre de forma inmediata, por lo que si se quiere ver su efecto se tendrá que usar en conjunto con el comando FREEZE, el cual congela la pantalla en un tiempo determinado. Si se coloca como parámetro de tiempo el valor de -1 al comando FREEZE, este congelará la pantalla de la calculadora hasta que se oprima otra tecla.
    Para ver el efecto de DISP también se puede usar el comando WAIT, colocándole a este último un parámetro de tiempo ó el valor cero para un tiempo de espera indeterminado (hasta que se pulse otra tecla).
EJEMPLO CON WAIT:     << CLLCD "HOLA" 4 DISP 0 WAIT DROP >>
    EL comando DROP se usa para eliminar el resultado que devuelve el WAIT al oprimir una tecla.

    Con el comando DISP también se pueden mostrar varias líneas de textos al mismo tiempo, solo se tienen que colocar en una lista las líneas de texto y  en otra lista sus respectivos números de líneas. Las sintaxis es la siguiente:

    << {"LINEA DE TEXTO 1" "LINEA DE TEXTO 2"}
       {#NUMERO_DE_LINEA_1 #NUMERO_DE_LINEA_2 } DISP >>
EJEMPLO:    << CLLCD { "HOLA" "AMIGO" }  { 2 4 } -1 FREEZE >>
    Con esta sintaxis se pueden mostrar hasta 7 líneas de texto (de hasta 22 caracteres) por pantalla al mismo tiempo. Cada línea de texto debe tener asociado un número de línea en pantalla, para que pueda aparecer.

MSGBOX

    El comando MSGBOX permite crear cajas de diálogos en la calculadora. Estas cajas solo tienen como objeto el informar algún mensaje, por lo que solo se cierran oprimiendo la tecla de menú "OK". Para crear una caja de dialogo solo se tiene que usar esta sintaxis:

    << "TEXTO" MSGBOX >>
EJEMPLO:    << CLLCD "HOLA" MSGBOX >>
    El comando CLLCD limpia la pantalla para que de fondo no salga nada. Si se omite, aparecerá de fondo lo que estaba antes de ejecutar MSGBOX.

FONDOS

    Si se desea crear un efecto que impacte,  se puede usar en conjunto el comando DISP y el comando MSGBOX. Combinándolos se puede obtener un fondo para una caja de diálogo.

EJEMPLO:

    << "@@@@@@@@@@@@@@@@@@@@@@" {1 2 3 4 5 6 7} DISP
    "ATRAS ESTA UN FONDO" MSGBOX >>>
    Como fondo se puede utilizar cualquier combinación de caracteres de la calculadora. TOPE

Salida de Datos Con Gráficos

    Otra forma de mostrar datos e información en la calculadora es usando gráficos. Cualquier dato se puede convertir (sea del tipo que sea) al formato de gráficos de la calculadora, es decir a un GROB, y luego mostrarlo por pantalla. Los comandos usados para convertir y mostrar gráficos por pantalla son ®GROB, PICT, REPL, PVIEW y ®LCD entre otros.

®GROB

    Este comando nos permite convertir cualquier tipo de objeto a un grob de la HP. Para usar este comando se usa la siguiente sintaxis:

    << Objeto_en_Pila #Tamaño_de_la_letra ®GROB >>
    Donde Objeto_en_Pila se refiere a que se tiene que tener un objeto en la pila para ejecutar el comando y #Tamaño_de_la_letra indica que tipo de letra queremos usar. El número a usar por tamaño de letra de resume en la siguiente tabla:
 
 
Número de Fuente
Tipo de letra
1
Grob Letra Pequeña 
2
Grob Letra Mediana 
3
Grob Letra Grande 
0
Grob de Ecuaciones

    El tipo de Grob 0 nos permite crear grobs de ecuaciones, los cuales se mostrarán como si fuese desplegado por el Equation Writer de la HP.
 

EJEMPLO:       << "Saludos Amigos" 2 ®GROB >>
    Este ejemplo convierte el string en un grob de fuente 2, para tratarse como un objeto gráfico.

PICT

    Este comando nos permite cargar un grob entero en la pantalla gráfica de la HP, o traer un grob entero desde la pantalla gráfica a la pila. Para cargar un grob en la calculadora desde la pila se usa la sintaxis << Grob PICT STO >> donde Grob indica que se tiene que tener un grob en la pila. Para traer un grob a la pila se usa esta otra sintaxis << PICT RCL >>.

EJEMPLOS PARA CARGAR UN GROB

      1. << "Saludos Amigos" 1 ®GROB PICT STO >>
      2. << "Saludos Amigos" 2 ®GROB PICT STO >>
      3. << 'A+B=C' 0 ®GROB PICT STO >>
    El ejemplo 1 convierte el string en un grob de fuente pequeña y el ejemplo 2 en fuente mediana y se cargan en la pantalla gráfica, pero el ejemplo 3 convierte el objeto simbólico en un grob de ecuaciones para cargase como si fuese el Equation Writer de la HP.

EJEMPLO PARA TRAER UN GROB A LA PILA

    Para traer un grob a la pila solo se tiene que usar << PICT RCL>>.

PVIEW

    De nada nos sirve colocar   un grob en la pantalla gráfica si no lo podemos ver. Para visualizar un grob cargado en pantalla  se usa el comando PVIEW. La sintáxis usada para que se pueda ejecutar es la siguiente:

<< -40 CF {#X #Y} PVIEW >> ó << -40 CF{}PVIEW >>
    Donde - 40 CF desactiva la actualización del reloj en la calculadora, y{ #X #Y } corresponden a las coordenadas de la esquina superior izquierda de la pantalla, que comúnmente son { #0d #0d }. Si se quiere ver el efecto que produce colocar las coordenadas dentro de la lista se debe usar en conjunto con el comando WAIT, de la siguiente forma: << { #X #Y } PVIEW N WAIT >>,dondeN es el tiempo que esperará el comando WAIT. Si se coloca el valor de 0 ó -1, se mantendrá a la calculadora en estado de espera  y el grob cargado en la pantalla gráfica permanecerá mostrándose hasta que se pulse una nueva tecla. Con está sintáxis no se puede usar los desplazamientos de pantalla, por lo que si el tamaño del grob es mayor a lo máximo desplegable por la calculadora  (131x64) no se podrá apreciar en su totalidad, ya que se terminará de mostrar al pulsar una nueva tecla.
    Si no se especifican las cordenadas de la esquina superior izquierda de la pantalla dentro de la lista que precede al comando, como está en la segunda sintáxis, se mostrará el grob en la pantalla hasta que se pulse CANCEL, sin necesidad de usar el comando WAIT. Si se utiliza esta sintáxis se tiene la posibilidad de usar los desplazamiento de pantallas, y en consecuencia ver los grob que sobre pasen lo máximo desplegable por la pantalla de la calculadora (131x64).
    La primera sintáxis es muy útil si se quiere mostrar una imagen que se actualizará con la ejecución de un programa, mientras que la segunda es útil para cuando se quiere mostrar grobs que no varían, como es el caso de una ecuación o una fórmula.

EJEMPLOS:

    1. << -40 CF "SALUDOS AMIGOS, ¿COMO ESTAN?" 1 ®GROB
           PICT STO {#0d #0d}PVIEW 0 WAIT DROP >>
    2. << -40 CF "Saludos Amigos" ¿Cómo están?  2 ®GROB
           PICT STO {#0d #0d}PVIEW 0 WAIT DROP >>
    3. << -40 CF 'A+B=C' 0 ®GROB PICT STO {}PVIEW >>
REPL

    Bueno, ya podemos cargar un grob a la pantalla y verlo, pero ahora queremos que el grob mostrado actualmente varíe agregándole otro grob. Para esto la HP posee un comando llamado REPL. La sintáxis usada es la siguiente:

<< PICT {#X #Y} Grob_en_la_pila REPL >>
    Donde {#X  #Y} representa la coordenada donde aparecerá el grob en pantalla. En esta coordenada se colocará la esquina superior izquierda del nuevo grob. Grob_en_la_pilase refiere a que debe de existir un grob en la pila para colocarlo en la pantalla.
    El comando REPL con está sintaxis no devuelve valores a la pila, ya que inserta directamente el grob en la pantalla actual.

EJEMPLO:

<< -40 CF "SALUDOS AMIGOS, ¿COMO ESTAN?" 1 ®GROB
    PICT STO {#0d #0d} PVIEW 1 WAIT
    PICT {#10d #10d} "ESTAMOS BIEN" 1 ®GROB REPL
    0 WAIT DROP >>
    REPL también se puede usar para insertar un subgrob en una sección de un grob que este en la pila. Para hacer esto se usa el comando de la siguiente forma
:
<< Grob_destino {#X #Y} Grob_en_la_pila REPL >>
   Grob_destino, es el grob donde queremos insertar el subgrob y {#X #Y} corresponden a las coordenadas donde se colocará. El comando usado con esta sintáxis si devuelve un valor, que es el grob resultante de colocar el Grob_en_la_pila al Grob_destino en las coordenadas {#X #Y}.

EJEMPLO:
 

<< -40 CF "SALUDOS AMIGOS, ¿COMO ESTAN?" 1 ®GROB
    PICT STO PICT RCL {#10d #10d} "ESTAMOS BIEN" 1 ®GROB
    REPL PICT STO {#0d #0d} PVIEW 0 WAIT DROP >>
    El comando REPL no solo sirve para insertar un grob al grob mostrado en la pantalla actualmente o a un grob que esté en la pila, sino que también sirve para insertar un elemento a una cadena de String, a una lista, a un vector o a una matriz. Para usar el comando REPL  con estas intenciones, consulte el manual de la calculadora.

SUB

    Si lo deseamos podemos usar una sección rectangular de un grob, extrayéndola de un grob mostrado en pantalla o que este en la pila. Para hacer esto se usa el comando SUB con la siguiente sintáxis:
 

<< Grob_en_la_pila {#X1 #Y1}{#X2 #Y2} SUB >>
    Grob_en_la_pila indica nuevamente que se tiene que tener un grob en la pila para usar el comando SUB, {#X1 #Y1} indica la coordenada de la esquina superior izquierda de la sección rectangular, y {#X2 #Y2}indica la esquina inferior derecha de la sección  rectangular a extraer.
    Todo esto se realizó con un grob que ya estaba en la pila, pero si se quiere extraer algo de un grob que se esté mostrando en pantalla se tendrá que traer el grob a la pila y seguir los mismos pasos. Entonces la sintáxis  es la misma, solo hay que agregarle dos comandos adicionales:
 
<< PICT RCL Grob_en_la_pila {#X1 #Y1}{#X2 #Y2} SUB >>
EJEMPLO:
<< -40 CF "SALUDOS AMIGOS, ¿COMO ESTAN?" 1 ®GROB
    PICT STO {#0d #0d} PVIEW 1 WAIT
    PICT {#10d #10d} "ESTAMOS BIEN" 1 ®GROB REPL
    PICT RCL {#10d #10d} {#70d #20d} SUB 0 WAIT DROP>>
  Al terminar de ejecutarse este programa, en la pila quedará un grob de 61x11, que contiene la frase "ESTAMOS BIEN". Si se desea se puede cargar a la pantalla y verse posteriormente.

®LCD y LCD®

    Estos comandos sirven para mostrar un grob que esté en la pila (®LCD) o llevar a un grob lo que se esté mostrando en la pantalla actualmente (LCD®). La sintáxis para los comandos son las siguientes:

<< Grob_en_la_pila ®LCD >>
<< LCD® >>
    Cuando se trabaja con el comando ®LCD hay que tener en cuenta que se seguirán mostrando las etiquetas de menú actuales, además que no se puede trabajar con los comandos REPL y SUB. El comando ®LCD no es afectado por la actualización del reloj en la pantalla, por lo que no es necesario desactivar el reloj.
    Al utilizarse el comando LCD® se tiene que considerar que solo llevará a la pila lo que se esté mostrando en la pantalla de la calculadora, y el tamaño correspondiente de ese grob es de 131x64.

EJEMPLO DE ®LCD:

 <<  "SALUDOS AMIGOS, ¿COMO ESTAN?" 1 ®GROB ®LCD >>
    A este último ejemplo se le debe añadir un FREZEE o un WAIT para que perdure su efecto. TOPE

[ Anterior página de User-RpL ]
[ Ir al Curso de System-Rpl ] [ Ir al Curso de Librerías ]

InicioProgramasCursosLinksInterfaseOpinión

Luis M. Gallardo D. © (1999)
lmgd@cantv.net
http://www.angelfire.com/ok/hp48g