DEACHP Software - Todo sobre Calculadoras gráficas HP [Menú EJEMPLOS RPL][Menú Principal DEACHP]
Ejemplo: Giro de figuras vectoriales [Descargar ejemplo]
Nota: El ejemplo mostrado a continuación ha sido escrito de manera sencilla para una mejor comprensión, es por eso que en algunos casos parece no aprovecharse al máximo el potencial de la sintáxis RPN. Dentro del archivo comprimido ejgiro.zip encontrará las versiones para los diversos modelos de calculadoras y para el editor HPUserEdit, además de un texto de ayuda.
Captura de pantalla Breve descripción
 

El siguiente ejemplo permite combinar el teclado y el entorno gráfico para girar figuras vectoriales en 2D.

Importante:
1. Colocar a la calculadora en base decimal DEC antes de digitar el programa, esto permitirá que los enteros binarios # no afecten la visualización de las imagenes.
2. La pantalla de la calculadora sólo muestra un área limitada del sistema rectangular es por eso que se sugiere verificar, antes de ejecutar el programa, que todos los puntos quepan en dicha área y que de preferencia ésta sea proporcional a 131×64 (en la 48G, 48G+, 48GX, 49G y 48GII) ó 131×80 (en la 49G+ y 50G) para no distorcionar la figura.
Por defecto los valores de los rangos X e Y en el sistema rectangular de la calculadora son:
En la 48G, 48G+, 48GX, 49G y 48GII: X { -6.5 6.5 } e Y { -3.1 3.2 }
En la 49G+ y 50G: X { -6.5 6.5 } e Y { -3.9 4 }
3. El entero binario #58, que figura 3 veces dentro del programa, esta referido a la altura de una pantalla de 131×64, para calculadoras como la HP49G+ y la HP50G que cuentan con pantallas más amplias 131×80 el valor debe ser cambiado a #74.

Leyendo el código:

Al inicio se puede observar la matriz de pares ordenados de dimensiones 2×n (en este caso la matriz sólo tiene tres columnas n=3), se calcula el número de columnas de la matriz, y estos valores se asignan a las variables locales data y n. También se crean las variables salir?, alfa y subgiro a las cuales se les asigna inicialmente el valor 0.

Se abre el procedimiento << >>, y en su interior se crea al iniciar un subprograma << >> (en color azul) el cual es almacenado en la variable subgiro que será descrito más adelante.

El giro de las imagenes se dará en grados sexsagecimales por lo que se aplica el comando DEG, además se desactiva el indicador mostrar hora con la línea -40 CF.
Se ejecuta la línea { #0 #0 } PVIEW y apartir de allí se empieza la visualización del entorno gráfico, seguidamente se evalúa el subprograma subgiro, el cual se describe a continuación:

Código fuente
El subprograma subgiro se inicia borrando el entorno gráfico y colocando los dibujos de las etiquetas de menú que corresponderán a las teclas de giro y salir del programa GROBs.
Luego crea la matriz de rotación ó giro a partir del valor de la variable alfa la cual se multiplica con la matriz de datos data, se duplica el resultado y se le extrae el primer vector ó par ordenado para convertirlo en una coordenada rectangular. A partir de allí se inicia la estructura bucle FOR NEXT para extraer cada uno de los vectores de la matriz de datos los cuales son unidos al par extraído en la iteración anterior mediante una línea LINE.
Luego de finalizar la estructura bucle se dibuja en la pantalla el texto que muestra el valor actual del ángulo alfa en las coordenadas { #1 #1 }.
Se cierra el subprograma subgiro.
A continuación se abre la estructura indefinida DO UNTIL END, en su interior la línea 0 WAIT permite detener la ejecución del programa hasta que se presione una tecla y el código de la tecla presionada es almacenado en la variable local K. Se abre un nuevo procedimiento dentro del cual la estructura CASE END decide que acción realizará la tecla presionada, la cual puede ser:

- Tecla A de código 11.1 disminuirá el valor de la variable alfa en 20 unidades.
- Tecla B de código 12.1 aumentará el valor de la variable alfa en 20 unidades.
- Tecla F de código 16.1 asignará el valor 1 a la variable salir? para finalizar el bucle indefinido DO UNTIL END y terminar la ejecución del programa.

Se cierra el procedimiento.

Finalizando, el bucle DO UNTIL END permite continuar o terminar la ejecución del programa dependiendo del valor que tenga la variable salir?: para continuar 0 y para terminar 1.

Almacenamiento y prueba (En Modo RPN)

1. Digitar y verificar la escritura del programa, luego presionar ENTER.
2. Activar el indicador ALFA y digitar el nombre del programa entre apostrofes: 'NOMBRE'.
3. Presionar la tecla STO.
4. Para ejecutar el programa ingresar al menú VAR y presionar la tecla del menú correspondiente al programa.

Nota: Los valores de la matriz de datos data pueden ser cambiados o ampliados a conveniencia dentro del programa.
DEACHP Software Jr. Virú 471 - Rimac Telf: (+511) 481-0146 / (+511) 9711-1260 E-mail: deachp@uni.edu.pe [Mapa de Ubicación]