HP48G: CURSO DE PROGRAMACION BASICA II
Es importante aclarar que algunos programas que yo coloco de ejemplo en esta página contienen comentarios que 'NO DEBEN IR INCLUIDOS EN EL PROGRAMA' pero que yo muestro con el fin de que la explicación sea mas clara. Estos comentarios se pueden distinguir porque son de color diferente al del resto del código.
2. APLICACIONES BASICAS DE PROGRAMACION
2.1 INSTRUCCION INPUT
2.2 INSTRUCCION MSGBOX
2.3 INSTRUCCION DISP
2.4 ESTRUCTURAS CONDICIONALES
2.4.1 Instrucción
IF... THEN... ELSE... END
2.4.2 Instrucción
CASE... END
2. APLICACIONES BASICAS DE PROGRAMACION
Espero que hasta este momento lo que estoy explicando sea claro y asumiendo que es así de aquí en adelante voy a procurar solo escribir el código del programa o de la instrucción y no el como llegar a ella.
Ahora vamos a realizar el mismo programa que vimos en la sección anterior, pero esta vez empleando etiquetas para así definir la variable que estamos almacenando.
<< "Radio"
{0} INPUT ->OBJ '
Pregunta el valor del radio, lo convierte de string a objeto
'R' STO
' Almacena el valor en la variable R
"Altura" {0}
INPUT ->OBJ '
Muestra la etiqueta altura y convierte su valor en un objeto
'h' STO
' Almacena el valor en la variable h
'p*R^2*h'
EVAL
' Realiza el
calculo del volumen
{R h} PURGE
>>
' Purga las variables que ya no son necesarias
Otra aplicación bastante útil para algunos programas es el MSGBOX, esta instrucción muestra una 'CADENA DE CARACTERES' (string) en una ventana.
Ejemplo 1: Mostrar una ventana con un mensaje que no incluya valores numéricos
<<
" HOLA ESTA
ES UNA PRUEBA" ' Cadena
de caracteres (fijese que debe estar entre comillas)
MSGBOX>>
' Instrucción que muestra la ventana de
mensaje
Ejemplo 2: Empleando valores numéricos. Supongamos que deseamos mostrar el resultado del calculo del volumen del cilindro que mencioné en la sección anterior, como una ventana de mensaje.
<< @
CODIGO PARA EL CALCULO DEL VOLUMEN DEL CILINDRO @
->STR
' Convierte el objeto algebraico en string
"VOLUMEN= "
' Agrega la etiqueta VOLUMEN= al mensaje
SWAP
' Rota los dos STACKS de la pila (1 y 2)
+ MSGBOX >>
' Suma las dos cadenas y muestra el mensaje
Esta es otra instrucción bastante útil para mostrar mensajes en pantalla. Recordemos que los mensajes siempre deben ser cadenas de caracteres ("") y que si deseamos mostrar un valor numérico debemos convertirlo en string, empleando la función ->STR.
En el siguiente ejemplo mostraré como se hace para mostrar un mensaje mientras se carga un programa.
<< CLLCD
' Deja la pantalla en blanco
" Espere un
momento... "
' Mensaje que se va a mostrar
1 DISP
' Coloca el mensaje en la parte superior de la
pantalla
1 WAIT >>
' Muestra el mensaje por un tiempo determinado
Nota: La función Wait siempre debe estar antecedida por un número que indica el tiempo que va a tardar la calculadora en realizar algún evento. Si el número que se coloca es cero (0), la calculadora va a permanecer detenida hasta que se pulse cualquier tecla.
2.4 ESTRUCTURAS CONDICIONALES
Las condicionales
son estructuras muy útiles en el manejo de cualquier lenguaje de programación.
Estas se encargan de comparar
un valor introducido
por el usuario con otro predeterminado en la calculadora, originando una respuesta
de tipo Boolean (Falso/Verdadero). En la cual se realiza determinado evento
si se cumple la instrucción u otro si no se cumple.
2.4.1 Instrucción IF...THEN...ELSE...END
Esta instrucción es la mas común en la programación de los diferentes lenguajes.
El modelo
de esta instrucción es el siguiente:
IF....Comparación
de valores THEN... Evento1 ELSE... Evento2 END
Para entender mas fácilmente esta instrucción voy a utilizar el siguiente ejemplo:
Ejemplo 1: Supongamos que se desea que un programa determinado solo acepte el número 1 para realizar una determinada operación y que al pulsar otro valor indique que es incorrecto, entonces el código sería:
<<"Pulse
el número 1" {0} INPUT OBJ-> 'N' STO
' Muestra la etiqueta y almacena el valor en N
IF 1 N == THEN
' Compara el valor de N con el predeterminado (1)
"HOLA" MSGBOX
' Si el valor de N es igual a 1 muestra el mensaje
"HOLA"
ELSE
"Usted debe
pulsar el número 1" MSGBOX
' Si no se cumple la condición muestra
este mensaje
END>>
' Fin de la Condicional
En un programa se pueden encadenar varias condicionales cuando se desea comparar un valor introducido con varios predeterminados.
Para esta instrucción también se pueden utilizar los comandos
AND, OR o XOR
Este es otra instrucción condicional, su estructura es CASE Condicion 1 THEN Evento1 END Condición 2 THEN Evento 2 END ...Condicion n THEN Evento n END END
Veamos como quedaría el ejemplo mostrado para la instrucción anterior.
<<"Pulse
el número 1" {0} INPUT OBJ-> 'N' STO
' Muestra la etiqueta y almacena el valor en N
CASE 1 N ==
THEN
' Compara si el valor de N es igual a 1
"HOLA" MSGBOX
' Si la condición es verdadera muestra el mensaje HOLA
END
' Fin de la primera condición
CASE 1 N
THEN
' Compara si el valor de N es diferente de 1
"Usted debe
pulsar el número 1" MSGBOX
' Si la condición 2 es verdadera muestra
este mensaje
END
' Fin de la segunda condición
END END>>
' Fin de la instrucción