Programacion en HP PRIME

October 11, 2018 | Author: John ORE MENDOZA | Category: Algorithms, Variable (Computer Science), Bracket, Computer Program, Calculator
Share Embed Donate


Short Description

HP PRIME...

Description

HP PRIME

CEIC UNSCH

"CURSO DE PROGRAMACIÓN EN LA CALCULADORA HP PRIME"

AYALA BIZARRO, Rocky Giaban

ÍNDICE GENERAL

I I

Índice General

ii

Índice de Cuadros

vi

Índice de Figuras

vii

CLASES I

1

INTRODUCCIÓN 1.1 Conociendo la Calculadora . . 1.2 Programación . . . . . . . . 1.3 Programa . . . . . . . . . . . 1.4 Problemas y algoritmos . . . 1.4.1 Ejemplo de algoritmos

. . . . .

2 2 4 4 4 5

. . . . . .

6 6 7 7 8 8 9

. . . .

11 11 15 15 16

Ingreso de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Función . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 Comando INPUT . . . . . . . . . . . . . . . . . . . . . . . . . .

18 18 18 19

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

II PROGRAMACIÓN EN HP PPL 2.1 2.2 2.3 2.4

Estructura de comandos . . . . . . . . . Comentarios . . . . . . . . . . . . . . . Catalogo de programas . . . . . . . . . Creación de un nuevo programa . . . . . 2.4.1 Desde la HP PRIME . . . . . . . 2.4.2 Desde el software de conectividad

. . . . . . . . . . . . . . . . . . . . . . . . . de la HP

. . . . . . . . . . . . . . . . . . . . . . . . . PRIME.

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

III VARIABLES Y OBJETOS 3.1 3.2 3.3 3.4

Variables Globales . . . Variables locales. . . . . Objetos . . . . . . . . . Declaración de variables

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

IV INGRESO Y SALIDA DE DATOS 4.1

ii

Índice General

4.2 4.3 4.4

4.5

4.1.3 Pantalla táctil . . . . . . . . . Formularios interactivos . . . . . . . . Otros . . . . . . . . . . . . . . . . . . Salida de datos . . . . . . . . . . . . . 4.4.1 Comando MSGBOX . . . . . . 4.4.2 Comando PRINT . . . . . . . 4.4.3 Ingreso de datos personalizados Ejercicios . . . . . . . . . . . . . . . . 4.5.1 Ejercicio 1 . . . . . . . . . . . 4.5.2 Ejercicio 2 . . . . . . . . . . . 4.5.3 Ejercicio 3 . . . . . . . . . . . 4.5.4 Ejemplo Nro 4 . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

22 22 23 23 24 24 25 26 26 26 27 27

. . . . . . . . . . . . . . . . . . .

29 29 29 30 30 31 32 33 34 34 35 35 36 37 38 39 40 41 42 42

. . . . . .

44 44 45 45 45 46 46

V BIFURCACIONES Y BUCLES 5.1

5.2

Bifurcación . . . . . . . . . . . . . . 5.1.1 Operadores . . . . . . . . . . 5.1.2 Ejemplos . . . . . . . . . . . 5.1.3 Comando IF THEN . . . . . 5.1.4 Comando IF THEN ELSE . . 5.1.5 Comando CASE . . . . . . . 5.1.6 Comando IFERR . . . . . . . 5.1.7 Comando IFERR ELSE . . . 5.1.8 Ejemplo 01 . . . . . . . . . . Bucle . . . . . . . . . . . . . . . . . 5.2.1 Ejercicios . . . . . . . . . . . 5.2.2 Comando FOR . . . . . . . . 5.2.3 Comando FOR STEP . . . . 5.2.4 Comando FOR DOWN . . . 5.2.5 Comando FOR STEP DOWN 5.2.6 Comando WHILE . . . . . . 5.2.7 Comando REPEAT . . . . . 5.2.8 Comando BREAK . . . . . . 5.2.9 Ejemplos . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

VI CADENAS 6.1 6.2 6.3 6.4 6.5 6.6

Definición ASC . . . LOWER . CHAR . . DIM . . . STRING .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

iii

Índice General

VIILISTAS Y MATRICES 7.1 7.2

7.3

7.4

7.5

Array . . . . . . . . . . . Listas . . . . . . . . . . . 7.2.1 Creación de listas 7.2.2 SORT . . . . . . 7.2.3 CONCAT . . . . . 7.2.4 Posición . . . . . 7.2.5 Tamaño . . . . . 7.2.6 EDITLIST . . . . Matrices . . . . . . . . . 7.3.1 ADDCOL . . . . . 7.3.2 ADDROW . . . . 7.3.3 DELCOL . . . . . 7.3.4 DELROW . . . . 7.3.5 EDITMAT . . . . 7.3.6 REDIM . . . . . . 7.3.7 REPLACE . . . . 7.3.8 SCALE . . . . . . 7.3.9 SCALEADD . . . 7.3.10 SUB . . . . . . . 7.3.11 SWAPCOL . . . . 7.3.12 SWAPROW . . . 7.3.13 Posición . . . . . Comandos especiales . . . 7.4.1 GETKEY . . . . . 7.4.2 ISKEYDOWN . . Ejemplos . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

47 47 48 48 48 48 48 49 49 49 50 50 50 50 50 50 51 51 51 51 51 51 52 52 52 52 53

. . . . . . . . . . . .

55 56 56 56 58 58 58 59 59 60 60 60 61

VIIIObjetos Gráficos 8.1

8.2

8.3

Comando de ingreso de datos 8.1.1 MOUSE . . . . . . . 8.1.2 WAIT . . . . . . . . Comandos . . . . . . . . . . 8.2.1 DRAWMENU . . . . 8.2.2 FREEZE . . . . . . . 8.2.3 RGB . . . . . . . . . 8.2.4 LINE P . . . . . . . 8.2.5 RECT P . . . . . . . 8.2.6 TEXTOUT P . . . . 8.2.7 BLIT P . . . . . . . Ejemplo . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

iv

Índice General

IX Procedimientos y Subrutinas

65

v

ÍNDICE DE CUADROS

3.1

Tipo de objetos o identificadores de variables . . . . . . . . . . . . . . . .

16

6.1

Tipo de objetos o identificadores de variables . . . . . . . . . . . . . . . .

46

8.1

Tipo de objetos o identificadores de variables . . . . . . . . . . . . . . . .

57

vi

ÍNDICE DE FIGURAS

1.1 1.2

Conociendo la calculadora HP PRIME . . . . . . . . . . . . . . . . . . . . Módulo o secciones de un algoritmo . . . . . . . . . . . . . . . . . . . . .

3 5

2.1

Se ingresa presionando los botones Shift + 1 . . . . . . . . . . . . . . .

8

3.1 3.2 3.3 3.4

Variables de aplicaciones Variables de usuario . . Variables locales . . . . Declaracion de variables

4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Formularios Interactivos . . Declaracion de variables . . Declaracion de variables . . Ingreso de datos a través de Formularios Interactivos . . Formularios interactivos . . Formularios interactivos . . Formularios interactivos . . Formularios interactivos . . Formularios interactivos . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

14 15 15 17

. . . . . . . . . . . . . . . . . . . . . . . . . . . la pantalla táctil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

20 20 21 22 23 23 25 26 26 27

7.1 7.2

Tipos de array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Valores de teclas obtenidos con el comando GETKEY . . . . . . . . . . .

47 52

8.1

Modelo aditivo de colores rojo, verde, azul. . . . . . . . . . . . . . . . . .

59

vii

PARTE I



Proyecto: CURSO DE PROGRAMACIÓN EN LA CALCULADORA HP PRIME

CAPÍTULO



I

INTRODUCCIÓN

1.1 Conociendo la Calculadora La calculadora gráfica HP Prime es una calculadora potente de fácil uso diseñada específicamente para la enseñanza de matemáticas con una amplia biblioteca de funciones y comandos, la calculadora incluye un conjunto de aplicaciones de HP. La calculadora HP Prime también dispone de su propio lenguaje de programación que puede utilizar para explorar y resolver problemas matemáticos.

2

QSG_Fir.book Page iii Tuesday, July 2, 2013 11:09 AM

1.1 Conociendo la Calculadora | Capitulo I

Figura No 1.1: Conociendo la calculadora HP PRIME

Leyenda del teclado de HP Prime Número

Función

1

Pantalla táctil y LCD: 320 × 240 píxeles

2

Menú de botones táctiles contextuales

3

Teclas de aplicaciones de HP

4

Configuración de las preferencias y la vista de Inicio

5

Funciones matemáticas y científicas habituales

6

Teclas Alpha y de alternancia

3

7

Tecla de encendido, de cancelación y de apagado

4

8

Catálogos de listas, matrices, programas y notas

9

Tecla de última respuesta (Ans)

10

Tecla de aceptación

11

Tecla de retroceso y eliminación

12

Tecla de menú y pegado

13

Configuración de las preferencias y de la vista del sistema algebraico computacional

14

Tecla de vista y copiado

15

Tecla de escape y borrado

16

Tecla de ayuda

17

Rueda basculante (para mover el cursor)

1 2

17 16

5

15 14 13 12 11

10

6 7

9

8

iii

3 iii

1.2

Programación | Capitulo I

1.2 Programación Indicar a la calculadora qué es lo que tiene que hacer. ¿Qué es programar? Decirle a un tonto muy rápido exactamente lo que tiene que hacer Especificar la estructura y el comportamiento de un programa, así como probar que el programa realiza su tarea adecuadamente y con un rendimiento aceptable.

1.3 Programa Transforma entrada en salida. 1. Secuencia de instrucciones 2. Instrucciones que entiende la computadora 3. Y que persiguen un objetivo: ¡resolver un problema!

1.4 Problemas y algoritmos Casi inconscientemente, los humanos efectuamos cotidianamente una serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema. Un algoritmo como un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema. Muchas veces aplicamos el algoritmo de manera inadvertida, inconsciente o automáticamente. Esto generalmente se produce cuando el problema que tenemos enfrente lo hemos resuelto con anterioridad un gran número de veces. Supongamos que simplemente tenemos que abrir una puerta. Lo hemos hecho tantas veces que difícilmente nos ponemos a enumerar los pasos para alcanzar este objetivo. Lo hacemos de manera automática. Lo mismo ocurre cuando queremos subirnos a un automóvil. Por otra parte, existe una gran cantidad de problemas que requieren de un análisis profundo y de un pensamiento flexible y estructurado para su solución. En este curso nos interesa abordar ese tipo de problemas. Invariablemente surgen ciertas preguntas 1. ¿Podemos enseñar a resolver un problema? 2. ¿Podemos enseñar a analizar el mismo? 3. ¿Podemos enseñar a pensar .... ? Por otra parte, un algoritmo consta de tres secciones o módulos principales. En la figura 1.2 podemos observar las secciones que constituyen un algoritmo. El módulo 1 representa la operación o acción que permite el ingreso de los datos del problema. El módulo 2 representa la operación o conjunto de operaciones secuenciales, cuyo objetivo es obtener la solución al problema.

4

1.4 Problemas y algoritmos | Capitulo I

El módulo 3 representa una operación o conjunto de operaciones que permiten comunicar al exterior el o los resultados alcanzados. 4

Figura No 1.2: Módulo o seccionesAlgoritmos, de un algoritmo diagramas de flujo y

programas

Figura 1.2 Módulos o 5ecclones de un Algoritmo

1.4.1 Ejemplo de algoritmos

1.4.1.1 Ejemplo 1 1.2 Diagramas de flujo Elaborar un algoritmo para calcular el promedio final de la materia de algoritmos. Dicha Un diagrama de flujo representa la esquematización gráfica de un algoritmo. En

calificación se compone delos siguientes porcentajes. realidad muestra gráficamente los pasos o procesos a seguir para alcanzar la solu­ 55% ción —–del finalSudecorrecta sus calificaciones parciales (3) de promedio un problema. construcción es sumamente importante porque a partir del mismo se escribe un programa en algún lenguaje de programación. Si 30% —– de la calificación de promedio el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de 15% programación —– de la calificación de un trabajo es relativamente simplefinal y directo. A continuación en la tabla 1.1 presentamos los símbolos que utilizaremos, y una explicación de los mismos. Estos satisfacen las recomendaciones de la “Jnternational 1.4.1.2 Ejemplo 2Organization for Standardizatiorí' (ISO) y la “American National Standards Institute” (ANSI). Elabora un algoritmo para un numero y determinar es parque o impar. A continuación en leer la figura 1.3 presentamos las si etapas debemos seguir en la construcción de un diagrama de flujo.

1.4.1.3 Ejemplo 3

Solicitar unReglas entero para y determinar sí es múltiplo de 3 y además que se encuentre en el rango 1.2.1 la construcción de diagramas de flujo (100-200). Debemos recordar que un diagrama de flujo debe ilustrar gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Los símbolos pre­

1.4.1.4 Ejemplo 4 sentados, colocados adecuadamente, permiten crear una estructura gráfica flexi­ ble que losque pasos a seguir para alcanzar un resultado El entre Desarrolle un ilustra algoritmo realice la sumatoria de los números enterosespecífico. comprendidos diagrama de flujo facilitará más tarde la escritura del programa en algún lenguaje

el 1 ydeelprogramación. 10, es decir, 1 + 2 + 3 + . . . . + 10. 1.4.1.5 Ejemplo 5

Determinar la hipotenusa de un triángulo rectángulo conocidas las longitudes de sus dos catetos. Desarrolle el algoritmo correspondiente.

www.FreeLibros.com

1.4.1.6 Ejemplo 6

Desarrolle un algoritmo que permita leer dos números y ordenarlos de menor a mayor, si es el caso. 5

CAPÍTULO

II

PROGRAMACIÓN EN HP PPL

Este lenguaje esta orientado a secuencias y permite el manejo de datos de una forma muy aprovechable, por lo que se precisa indicar que estas consideraciones pueden llegar a ser exclusivas de PPL.

2.1 Estructura de comandos Los programas pueden contener cualquier número de subrutinas (cada una de las cuales es una función o procedimiento). Las subrutinas se inician con un encabezado que consta del nombre seguido por paréntesis que contienen una lista de parámetros o argumentos, separados por comas. El cuerpo de una subrutina consta de una secuencia de instrucciones incluidas entre un par BEGIN-END. Por ejemplo, el cuerpo de un programa simple, denominado MYPROGRAM, podría parecerse a esto:

EXPORT MYPROGAM() BEGIN

PIXON(1,1); END;

Los comandos se separan con punto y coma (;). Los comandos que aceptan varios argumentos incluyen a estos últimos entre paréntesis, separados por comas( , ). Por ejemplo.

»> TEXTOUT_P(texto,posicion x, posicion y);

6

2.2

Comentarios | Capitulo II

En ocasiones, los argumentos de un comando son opcionales. Si se omite un argumento, se utiliza un valor predeterminado en su lugar. En el caso del comando TEXTOUTP , podría utilizarse un tercer argumento que especificara la fuente del texto:

»> TEXTOUT_P(texto,[G],posicion x, posicion y, [fuente]); En este manual, los argumentos opcionales a los comandos aparecen dentro de corchetes, como se ha mostrado anteriormente. En el ejemplo TEXTOUTP , una variable gráfica (G) podría especificarse como segundo argumento. El valor predeterminado es G0, que contiene siempre la pantalla mostrada en ese momento. Por lo tanto, la sintaxis mas completa del comando TEXTOUTP es:

»> TEXTOUT_P(texto,[G],posicion x, posicion y, [fuente]);

2.2 Comentarios Cuando una línea de un programa empieza con dos barras diagonales, //, se ignorará el resto de la línea. Esto le permite introducir comentarios en el programa:

EXPORT MYPROGAM() BEGIN

PIXON(1,1); //Esta linea es solo un comentario. END;

2.3 Catalogo de programas El catálogo de programas es donde se ejecutan, depuran y guardan los programas. También se puede cambiar el nombre de los programas o eliminarlos y es donde se inicia el editor de programas. El editor de programa es donde se crean y editan los programas. También se pueden ejecutar programas desde Vista de inicio o desde otros programas.

7

2.4 Creación de un nuevo programa | Capitulo II

Figura No 2.1: Se ingresa presionando los botones Shift + 1

2.4 Creación de un nuevo programa Existen dos maneras practicas para crear un nuevo programa la primera es desde la misma HP PRIME y la segunda utilizando el software de conectividad de la Hp Prime: 2.4.1 Desde la HP PRIME

Se sigue los siguientes pasos: 1. Abra el catálogo de programas e inicie un programa nuevo.

2. Introduzca un nombre para el nuevo programa.

8

2.4 Creación de un nuevo programa | Capitulo II

3. Presione OK. Se crea automáticamente una plantilla para el programa. La plantilla consta de un encabezado para una función del mismo nombre que el programa, que encerrará las instrucciones de la función.

EXPORT HOLAMUNDO() BEGIN END;

2.4.2 Desde el software de conectividad de la HP PRIME.

Se sigue los siguientes pasos: 1. Abra el software de conectividad de la HP PRIME.

9

2.4 Creación de un nuevo programa | Capitulo II

2. En Programas presione anticlick y seleccioneNuevo introduzca el nombre del programa y le teclee enter. 3. Se crea automáticamente una ventana nueva para el programa.

: Sugerencia Un nombre de programa solo puede contener caracteres alfanuméricos (letras y números) y el carácter de subrayado. El primer carácter debe ser una letra. Por ejemplo, HELLO_WORLD y Programa2 son nombres de programa válidos, mientras que HELLO WORLD (no se permiten espacios) y 2Program! (empieza con un número e incluye un signo !) no son válidos.

10

CAPÍTULO

III

VARIABLES Y OBJETOS

Son valores asignados en la memoria con un nombre dentro de un programa que se requieren constantemente para ser operados. Las variables en un programa de HP Prime pueden utilizarse para almacenar números, listas, matrices, objetos de gráficos y cadenas. El nombre de una variable debe tener una secuencia de carácteres alfanuméricos (letras y números), comenzado con una letra. Los nombres reconocen mayúsculas y minúsculas, por lo tanto las variables denominadas VarTem y varTEM son diferentes.

3.1 Variables Globales Son aquellos valores que se declaran en un programa y pueden ser reconocidos en cualquier otro programa de la calculadora( visible en cualquier lugar de la calculadora). Estos variables se clasifican en los siguientes tipos: 3.1.0.1 Variables de inicio

Son las variables que poseen nombres reservados, es decir ya están declarados por defecto dentro de la calculadora. Por ejemplo, las variables integradas A a Z pueden utilizarse para almacenar números reales, Z0 a Z9 pueden utilizarse para almacenar números complejos, M0 a M9 pueden utilizarse para almacenar matrices y vectores y así sucesivamente. Estos nombres están reservados. No se pueden usar para otros datos. Por ejemplo, no puede darle a un programa el nombre M1ni almacenar un número real en una variable denominada Z8. Estos variables se clasifican en los siguientes tipos: 1. Reales. 11

3.1 Variables Globales | Capitulo III

2. Complejos.

3. Listas.

4. Matrices.

12

3.1 Variables Globales | Capitulo III

5. Gráficos.

6. Configuración.

7. Sistema.

13

3.1 Variables Globales | Capitulo III

3.1.0.2 Variables de aplicaciones.

Son las variables que se utilizan para almacenar datos en las aplicaciones o para cambiar la configuración de la aplicación. Poseen nombres reservados y no pueden ser creados por el usuario. Figura No 3.1: Variables de aplicaciones

3.1.0.3 Variables de usuario

Son variables creadas por el usuario. Puede crear variables de usuario en un programa o por asignación en la vista de inicio. Las variables de usuario creadas por asignación o exportadas desde un programa aparecerán en el menú de usuario Vars.

14

3.2

Variables locales. | Capitulo III

Figura No 3.2: Variables de usuario

3.2 Variables locales. En un programa puede declarar variables para usar solo dentro de una función específica. Esto se realiza usando la declaración LOCAL. El uso de variables locales le permite declarar y utilizar variables que no afectarán el resto de la calculadora. Las variables locales no están vinculadas a un tipo particular; es decir, puede almacenar números de punto flotante, enteros, listas, matrices y expresiones simbólicas en una variable con cualquier nombre local. Aunque el sistema le permite almacenar distintos tipos en la misma variable local, esto es una mala práctica de programación y debe ser evitada. Figura No 3.3: Variables locales

3.3 Objetos Son valores asignados en una variable para ser operados dentro de un programa.

15

3.4 Declaración de variables | Capitulo III

Cuadro No 3.1 : Tipo de objetos o identificadores de variables Valor asignado Nombre objeto 0 Real 1 Entero 2 Cadena 3 Compleja 4 Matriz 5 Error 6 Lista 8 Función 9 Unidad

3.4 Declaración de variables Expresión combinada. Para declarar variables usamos el comando LOCAL seguido de los identificadores de la variable, esta acción no solo declara la variable (Reserva de espacio en memoria), también le asigna un valor inicial aún si no se indicó ninguno, el valor predeterminado es 0, entonces la variable queda definida como tipo Real. Si estamos trabajando y vemos que de repente nos aparece un 0, es por esta razón. Para evitar ésto, podemos iniciar de buena vez si es necesario, los tipos de datos a asignar.

EXPORT HOLAMUNDO() BEGIN

LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL

var1; var2:=""; var3:=(0,0); var4:=[0]; var5:=[[0]]; var6:={}; var7:=)0);

END;

16

3.4 Declaración de variables | Capitulo III

Figura No 3.4: Declaracion de variables

17

CAPÍTULO

IV

INGRESO Y SALIDA DE DATOS

En este capítulo aprenderemos cómo ingresar valores por el teclado y/o pantalla y hacer que estos se guarden en variables. Nos permitirá hacer programas cuya ejecución cambie según un valor que ingresemos.

4.1 Ingreso de datos La entrada de datos consiste en colocar en la memoria principal datos provenientes desde algún dispositivo de entrada( teclado, disco, etc. ) para que la computadora, de acuerdo a un programa, realice una tarea. La salida de datos consiste en enviar datos ( que, generalmente, son el resultado de un procesamiento) desde la memoria principal hacia un dispositivo de salida ( pantalla, impresora, disco, etc.). Existen Muchas maneras de ingreso de datos en la creación de programas; el mas simple es utilizando el comando INPUT con sus diferentes variables, también se puede realizar el ingreso de datos a través de la pantalla táctil de la calculadora y uno mas avanzado es con la creación formularios interactivos. 4.1.1 Función

Los programas mas simples no necesitan de la creación de formularios. Con la asignación de variables le es suficiente para poder operar y funcionar adecuadamente. Ejemplo :

EXPORT RArea(b,h) BEGIN

18

4.1

Ingreso de datos | Capitulo IV

LOCAL Area; Area:=b*h; RETURN "Area="+Area; END;

(a) Ingreso de datos A

(b) Ingreso de datos A

4.1.2 Comando INPUT

La forma más sencilla de este comando abre un cuadro de diálogo con el título dado y un campo denominado etiqueta, y muestra el contenido de ayuda en la parte inferior. El cuadro de diálogo incluye las teclas de menú CANCEL y OK. Se puede ingresar un valor en el campo etiquetado. Al presionar la tecla de menú OK, la variable var se actualiza con el valor introducido y el comando devuelve 1. Si se presiona la tecla de menú CANCEL, la variable no se actualiza y devuelve 0. En las formas más complejas del comando, se utilizan listas para crear un cuadro de diálogo con varios campos. Si las variables son una lista, cada elemento puede ser un nombre de variable o una lista que usa la siguiente sintaxis. 4.1.2.1 Sintaxis

Para una entrada:

INPUT(V,[title],[label],[help],[valor_reset],[valor_inicial]) Para múltiples entrada:

INPUT({V},[{title}],[{label}],[{help}],[{valor_reset}],[{valor_inicial}]) 4.1.2.2 Forma simple

EXPORT AREACALC()

19

4.1

Ingreso de datos | Capitulo IV

BEGIN

LOCAL radio; INPUT(radio, "Radio del circulo","R = ","Enter radius",1); END;

Ejecución del programa Figura No 4.1: Formularios Interactivos

4.1.2.3 Forma completa

Estructura del comando INPUT: Figura No 4.2: Declaracion de variables

Ejecución del programa:

20

4.1

Ingreso de datos | Capitulo IV

Figura No 4.3: Declaracion de variables

Código del programa:

EXPORT RInput BEGIN

LOCAL Aa,Bb, Cc,Dd,Ee; INPUT ( { {Aa,[0],{25,25,0}}, {Bb,[1],{25,20,1}}, {Cc,[6],{25,25,2}}, {Dd,{"Esc A","Esc B","Esc C","Esc D"},{25,25,3}}, {Ee,0,{25,25,4}} }, "TITULO DEL FORMULARIO", { "Etiqueta 1: ", "Etiqueta 2: ", "Etiqueta 3 : ", "Etiqueta 4 : ", "Etiqueta 5 : " }, { "Ayuda 1", "Ayuda 2", "Ayuda 3", "Ayuda 4", 21

4.2

Formularios interactivos | Capitulo IV

"Ayuda 5" }, {2.5,20,{2,5},2,0}, {2.5,20,{2,5},2,0} ); END;

4.1.3 Pantalla táctil

La calculadora HP PRIME permite el ingreso de datos a través de su pantalla táctil, para ello utiliza los comandos MOUSE y WAIT, en capítulos posteriores se desarrollara a detalle este tipo de ingreso. Ejemplo de Ingreso de datos con el teclado. Figura No 4.4: Ingreso de datos a través de la pantalla táctil

4.2 Formularios interactivos Este tipo de ingreso de datos consiste en crear un formulario personalizado al gusto del programador. En capítulos posteriores de desarrollara. Ejemplos:

22

4.3

Otros | Capitulo IV

Figura No 4.5: Formularios Interactivos

Figura No 4.6: Formularios interactivos

4.3 Otros También se puede personalizar el ingreso de datos a través de matrices, vectores, listas, etc.

4.4 Salida de datos Los datos de salida son datos derivados, es decir, obtenidos a partir de los datos de entrada. Por esta razón, a los datos de salida se les considera más significativos que a los datos de entrada. Ambos tipos de datos son información (textos y imágenes) que maneja la calculadora. Sin embargo, en un sentido más filosófico, a los datos de entrada se les considera la materia prima de los datos de salida, considerados estos como la verdadera información. Al igual que el ingreso de datos la calculadora presenta una gama de formatos de salida de datos por defecto y personalizadas 23

4.4

Salida de datos | Capitulo IV

4.4.1 Comando MSGBOX

Muestra un cuadro de mensaje con el valor de la expresión o cadena dada. 4.4.1.1 Sintaxis

MSGBOX(expresion o cadena [ok_cancel]); Ejemplo:

EXPORT AREACALC() BEGIN

LOCAL radio,ar; INPUT(radio, "Radio del circulo","R = ","Enter radius",1); ar:=PI*radio^2; MSGBOX("El area del circulo es:" + ar); END;

Procesando el programa.

(a) Ingreso del valor = 10

(b) Comando MSGBOX

4.4.2 Comando PRINT

Imprime el resultado de expresión o cadena en el terminal. El terminal es un mecanismo de visualización de salida de texto que se muestra solo cuando se ejecutan los comandos PRINT. 4.4.2.1 Sintaxis

PRINT(expresion o cadena); Ejemplo:

24

4.4

Salida de datos | Capitulo IV

EXPORT AREACALC() BEGIN

LOCAL radio,ar; INPUT(radio, "Radio del circulo","R = ","Enter radius",1); ar:=PI*radio^2; PRINT("El radio es: " +ar); END;

Procesando el programa.

(c) Ingreso del valor = 10

(d) Comando PRINT

4.4.3 Ingreso de datos personalizados

Existen comandos para salida de datos en la sección Gráficos. En particular, se pueden utilizar los comandos TEXTOUT y TEXTOUTP para salida de texto. Figura No 4.7: Formularios interactivos

4.5 Ejercicios

25

4.5 Ejercicios | Capitulo IV

4.5.1 Ejercicio 1

Figura No 4.8: Formularios interactivos

4.5.2 Ejercicio 2

Figura No 4.9: Formularios interactivos

26

4.5 Ejercicios | Capitulo IV

4.5.3 Ejercicio 3

Figura No 4.10: Formularios interactivos

4.5.4 Ejemplo Nro 4

Realizar un programa donde se calcule el momento de inercia geométrico de un rectángulo con respecto al eje X y Y. 1. Variables de entrada: Longitud de Base del rectángulo y altura del rectángulo. 2. Proceso: Calculo de Momentos de inercia. 3. Salida de datos: Momento de inercia con respecto al eje X y Y. Código del programa.

EXPORT MI() BEGIN

//1 ->Declaracion de variables. LOCAL a , b, Ix, Iy, Icg; //2 ->Ingreso de datos. INPUT ( { {a ,[0],{ 25,25,0}}, {b ,[0],{ 25,20,1}} }, "MOMENTO DE INERCIA" , { " Base: " , 27

4.5 Ejercicios | Capitulo IV

" Altura : " }, { " Ingrese la base del rectangulo (cm)" , " Ingrese la altura del rectangulo (cm)" }, {25,20 }, {25,20 } ); //3 ->Calculo de momentos de inercia. Icg:=b*a^3/12; Ix:= Icg+b*a*(a/2)^2; Iy:= Icg+b*a*(b/2)^2; //4 ->Salida de datos. PRINT(); //->limpiar pantalla PRINT(" CALCULO DE MOMENTO DE INERCIA"); PRINT(""); PRINT("1.−Momento de inercia I_cg"); PRINT(" Icg =" + Icg + " cm"); PRINT("2.−Momento de inercia Ixx"); PRINT(" Ixx =" + Ix + " cm"); PRINT("3.−Momento de inercia Iyy"); PRINT(" Iyy =" + Iy + " cm"); END;

Procesando el programa.

(a) Ingreso de datos

(b) Resultados

28

CAPÍTULO

V

BIFURCACIONES Y BUCLES

5.1 Bifurcación Un condicional en la programación es una sentencia o grupo de sentencias que puede ejecutarse o no en función del valor de una condición. Los tipos más conocidos de condicionales son el SI (IF) y el SEGÚN (case), aunque también podríamos mencionar al lanzamiento de errores como una alternativa más moderna para evitar los cierres inesperados de nuestros programas. 5.1.1 Operadores

La calculadora HP Prime realiza cálculos en función del siguiente orden de precedencia. Las funciones con la misma precedencia se evalúan de izquierda a derecha. 1. Expresiones entre paréntesis. Los paréntesis anidados se evalúan de dentro hacia fuera. 2. Raíz n-ésima (sqrt) 3. Potencia, 10n 4. Negación, multiplicación, división y módulo 5. Suma y resta 6. Operadores relacionales (, ≤, ≥, ==, 6=, =) 7. AND y NOT 8. OR y XOR 9. Argumento izquierdo de | (where) 10. Asignación a una variable (:=)

29

5.1

Bifurcación | Capitulo V

5.1.2 Ejemplos

5.1.2.1 Ejemplo 1

Elabore un programa que pida al usuario dos numero e imprima el mayor de ellos. 5.1.2.2 Ejemplo 2

Elabore un programa que pida un numero y si diga si es o no múltiplo de 3. 5.1.2.3 Ejemplo 3

Elabore un programa que pida un numero y si diga si es o no múltiplo de 3. 5.1.2.4 Ejemplo 4

Dado 3 números deducir cual es el central. 5.1.2.5 Ejemplo 5

Que dados dos números n1 y n2 se quiere dividir n1 entre n2 siempre y cuando n2 no sea cero, determinar e imprimir el resultado de la división en caso contrario imprimir “No se puede dividir”. 5.1.2.6 Ejemplo 6

Que lea dos temperaturas, imprimir “Hace Frio” si la temperatura es inferior a 15o , en caso contrario imprimir “Hace Calor”. 5.1.3 Comando IF THEN

Evalúa prueba. Si prueba es verdadero (distinto de 0), ejecuta comandos. De lo contrario, no sucede nada. 5.1.3.1 Sintaxis

IF prueba THEN

comandos END;

Ejemplo :

EXPORT C1(A) BEGIN

PRINT(); IF AProceso de datos Factorial:=1; FOR i:=1 TO A DO

Factorial:=i*Factorial; END;

//3 ->Salida de datos PRINT(); PRINT("El factorial de "+A + " es igual a " +Factorial ); END;

Procesando el programa.

(i) Código del programa

(j) Resultado del programa

5.2.3 Comando FOR STEP

Define la variable var con el valor inicio y siempre que el valor de esta variable sea inferior o igual a fin ejecuta la secuencia de comandos y luego suma incremento a var. 5.2.3.1 Sintaxis

FOR var FROM inicio TO fin [STEP incremento] DO

comandos END;

FOR var:=inicio TO fin [STEP incremento] DO

37

5.2

Bucle | Capitulo V

comandos END;

Ejemplo :

EXPORT BUCLES(A,b) BEGIN

//1 ->Declaracion de variables. LOCAL Mult,i; //2 ->Proceso de datos Mult:=1; FOR i:=1 TO A STEP b DO

Mult:=i*Mult; END;

//3 ->Salida de datos PRINT(); PRINT("Producto de los primeros "+ A +"numeros tomados de" +b+ "en"+ ←b+ " es igual a " +Mult ); END;

Procesando el programa.

(k) Código del programa

(l) Resultado del programa

5.2.4 Comando FOR DOWN

Define la variable var con el valor inicio y siempre que el valor de esta variable sea mayor o igual a fin, ejecuta la secuencia de comandos, y luego resta 1 (decremento) a var. 5.2.4.1 Sintaxis

38

5.2

Bucle | Capitulo V

FOR var FROM inico DOWNTO fin DO

comandos END;

FOR var:=inico DOWNTO fin DO

comandos END;

Ejemplo :

EXPORT BUCLES(A,b) BEGIN

//1 ->Declaracion de variables. LOCAL i; //2 ->Proceso de datos y salida de datos PRINT(); FOR i:=A DOWNTO b DO PRINT("Numero " + i ); END; END;

Procesando el programa.

(m) Código del programa

(n) Resultado del programa

5.2.5 Comando FOR STEP DOWN

Define la variable var con el valor inicio y siempre que el valor de esta variable sea mayor o igual a fin ejecuta la secuencia de comandos y luego resta decremento a var. 5.2.5.1 Sintaxis

39

5.2

Bucle | Capitulo V

FOR var FROM inicio DOWNTO fin [STEP incremento] DO

comandos END;

5.2.6 Comando WHILE

Evalúa prueba. Si el resultado es verdadero (distinto de 0), ejecuta los comandos y repite. Es decir, repite mientras el test sea verdadero. 5.2.6.1 Sintaxis

WHILE prueba DO comandos END;

Ejemplo :

EXPORT BUCLES(A) BEGIN

//1 ->Declaracion de variables. LOCAL Factorial,i; //2 ->Proceso de datos Factorial:=1; i:=1; WHILE iSalida de datos PRINT(); PRINT("El factorial de "+A + " es igual a " +Factorial ); END;

Procesando el programa.

40

5.2

(o) Código del programa

Bucle | Capitulo V

(p) Resultado del programa

5.2.7 Comando REPEAT

Repite la secuencia de comandos hasta que el valor de test sea verdadero (distinto de 0). Es decir, repite mientras el test sea falso. 5.2.7.1 Sintaxis

REPEAT

comandos UNTIL prueba ;

EXPORT BUCLES(A) BEGIN

//1 ->Declaracion de variables. LOCAL Factorial,i; //2 ->Proceso de datos Factorial:=1; i:=1; REPEAT

i:=i+1; Factorial:=i*Factorial; UNTIL i=A; //3 ->Salida de datos PRINT(); PRINT("El factorial de "+A + " es igual a " +Factorial ); END;

41

5.2

Bucle | Capitulo V

Procesando el programa.

(q) Código del programa

(r) Resultado del programa

5.2.8 Comando BREAK

Sale del comando de bucles rompiendo n niveles de bucle. La ejecución retoma en la primera instrucción después del bucle. Sin un argumento, sale desde un único bucle. 5.2.8.1 Sintaxis

BREAK(n); 5.2.9 Ejemplos

5.2.9.1 Ejemplo 1

Calcule la suma de los números ingresados en una lista.

EXPORT LISTAS() BEGIN

//1 ->Declaracion de variables. LOCAL List:={},i,n,Suma; //2 ->Ingreso de datos. INPUT ( { {List ,[6],{25,50,3}} }, "Suma" , { " Numeros: " }, 42

5.2

Bucle | Capitulo V

{ "Ingrese una lista de numeros" }, {{1,2,3,4,5}}, {{1,2,3,4,5}} ); //3 ->Calculo del area del poligono. n:=length(List); //-> Numero de elemntos de la lista FOR i:=1 TO n DO Suma:=Suma+List(i); END;

//4 ->Salida de datos. PRINT(); //-> Limpia la pantalla PRINT("La suma de los numeros es:" +Suma); END;

5.2.9.2 Ejemplo 2

Calcule el área de cualquier polígono ingresando sus coordenadas.

43

CAPÍTULO

VI

CADENAS

6.1 Definición Una cadena es una secuencia de carácteres entre comillas (""). Para poner comillas dobles en una cadena, use dos comillas consecutivas. Las cadenas se pueden utilizar en los diferentes tipos de salida de datos en los programas. 1 Salida de datos con el comando PRINT.

EXPORT CPRINT() BEGIN

LOCAL Variable; PRINT(); PRINT("La Variable A = " + Variable + "metros"); END;

2 Salida de datos con el comando TEXTOUT.

EXPORT CTEXTOUT() BEGIN

LOCAL Variable:=10; RECT(); TEXTOUT_P("La Variable A = " + Variable + " metros", 10, 10 ,1); WAIT; 44

6.2

ASC | Capitulo VI

END;

3 Salida de datos con el comando MSGBOX.

EXPORT CMSGBOX() BEGIN

LOCAL Variable:=10; MSGBOX("La Variable A = " + Variable + " metros"); END;

6.2 ASC Devuelve una lista que contiene los códigos ASCII de cadena. Sintaxis: ASC(cadena) Por ejemplo:

»> ASC("AB") devuelve [65,66]

6.3 LOWER Convierte caracteres en mayúsculas a una cadena en minúsculas. Sintaxis: LOWER(cadena) Ejemplos:

»> LOWER("ABC") devuelve "abc"

6.4 CHAR Devuelve la cadena correspondiente a los códigos de carácter en vector o el código único del entero. Sintaxis 1: CHAR(cadena) Sintaxis 2: CHAR(entero) Ejemplos:

»> CHAR([82,77,72]) devuelve "RMH"

45

6.5 DIM | Capitulo VI

6.5 DIM Devuelve a la cantidad de caracteres en cadena. Sintaxis: DIM(cadena) Ejemplos:

»> DIM("12345") devuelve 5 »> DIM( "" "" )devuelve 1 »> DIM("n") devuelve 1 (Observe el uso de dos comillas dobles y la secuencia de escape).

6.6 STRING Evalúa la expresión y devuelve el resultado como una cadena. Los parámetros adicionales especifican cómo se muestran los números. Si se especifica el Modo, debe ser: Cuadro No 6.1 : Tipo de objetos o identificadores de variables Valor Asignado

Nombre del Objeto

0

Utilice la configuración actual

1

Estándar

2

Fijo

3

Científico

4

Ingeniería

5

Flotante

6

Redondeo

7

Fracción

La precisión es -1 para la configuración actual o de 0 a 12. Sintaxis: STRING(Expresión, [Modo], [Precisión])

46

CAPÍTULO

VII

LISTAS Y MATRICES

7.1 Array Un array es una colección de datos del mismo tipo, que se almacena en posiciones consecutivas de memoria y reciben un nombre común. Para referirse a un determinado elemento de un array se debera utilizar un índice, que especifique su posicion relativa en el array. Los array podran ser. 1 Unidimensionales −→ Vectores. 2 Bidimensionales −→ Matrices o tablas. 3 Multidimensionales con 3 o mas dimensiones. Figura No 7.1: Tipos de array

47

7.2 Listas | Capitulo VII

7.2 Listas Una lista consta de números reales o complejos separados por comas, expresiones o matrices, todos entre llaves. Por ejemplo, una lista puede contener una secuencia de números reales como 1,2,3. Las listas representan una forma práctica de agrupar objetos relacionados. Puede realizar operaciones realizadas con las listas en Inicio y en los propios programas. Hay diez variables de lista disponibles, denominadas de L0 a L9. Puede utilizarlas en cálculos o expresiones en Inicio o en un programa. Recupere el nombre de la lista del menú Vars. ( ) o escriba su nombre con el teclado. 7.2.1 Creación de listas

Calcula una secuencia de elementos para una nueva lista mediante la sintaxis: Sintaxis: MAKELIST(expresión,[variable],[principio],[final],[incremento]) Ejemplos:

»> MAKELIST(A,A,1,5,1) devuelve {1,2,3,4,5} 7.2.2 SORT

Ordena los elementos de la lista en orden ascendente. Sintaxis: SORT(lista) Ejemplos:

»> SORT({2,5,3}) devuelve {2,3,5} 7.2.3 CONCAT

Concatena dos listas para formar una nueva lista. Sintaxis: CONCAT(lista1,lista2) Ejemplos:

»> CONCAT({1,2,3},{4}) devuelve {1,2,3,4}. 7.2.4 Posición

Devuelve la posición de un elemento en la lista. El elemento puede ser un valor, una variable o una expresión. Si hay más de una instancia del elemento, devuelve la posición de la primera incidencia del elemento. Si no hay ninguna incidencia del elemento especifcado, devuelve un valor 0. 48

7.3

Matrices | Capitulo VII

Sintaxis: POS(lista, elemento) Ejemplos 1:

»> POS({3,7,12,19},12) devuelve 3 Ejemplos 2 - lenguaje de programción HP PPL:

»> A:={3,7,12,19}; // Lista A declarada. »> b:=A(3); obtenemos b=12 7.2.5 Tamaño

Devuelve el número de elementos de una lista o una lista que contiene las dimensiones de un vector o matriz. Sintaxis 1: SIZE(lista) Sintaxis 2: SIZE(Vector) Sintaxis 3: SIZE(Matriz) Ejemplos:

»> SIZE({1,2,3}) devuelve 3 »> SIZE([[1 2 3], [4 5 6]]) devuelve {2, 3} 7.2.6 EDITLIST

Inicia el Editor de lista cargando listvar y muestra la lista especifcada. Si se utiliza en programación, retorna al programa cuando el usuario pulsa . Sintaxis: EDITLIST(listvar) Ejemplos:

»> EDITLIST(L1) devuelve lista L1 editable.

7.3 Matrices Algunos comandos de matriz toman como su argumento el nombre de la variable de matriz sobre la cual se aplica el comando. Los nombres válidos son las variables globales M0–M9 o una variable local que contenga una matriz. También puede introducir una matriz directamente como un argumento para el comando.

49

7.3

Matrices | Capitulo VII

7.3.1 ADDCOL

Inserta los valores en vector en una nueva columna insertada antes de número-columna en la matriz especificada. El número de valores en el vector debe ser igual a la cantidad de filas de la matriz. Sintaxis: ADDCOL(nombrematriz, vector, número-columna)

7.3.2 ADDROW

Inserta los valores en vector en una nueva fila insertada antes de número-fila en la matriz especificada. Sintaxis: ADDROW(nombrematriz, vector, número-fila) El número de valores en el vector debe ser igual al número de columnas de la matriz. 7.3.3 DELCOL

Elimina la columna número-columna de la matriz. Sintaxis: DELCOL(nombre, número-columna)

7.3.4 DELROW

Elimina la fila número-fila de la matriz. Sintaxis: DELROW(nombre,número-fila)

7.3.5 EDITMAT

Inicia el Editor de matriz y muestra la matriz especificada. Si se utiliza en programación, vuelve al programa cuando el usuario presiona. A pesar de que este comando devuelve la matriz que ha sido editada, EDITMAT no puede ser utilizado como un argumento en otros comandos de matriz. Sintaxis: EDITMAT(matvar) Ejemplos:

»> EDITMAT(M1) devuelve lista M1 editable. 7.3.6 REDIM

Redimensiona la matriz o vector especificado a tamaño. Para una matriz, tamaño es una lista de dos números enteros (n1, n2). Para un vector, tamaño es una lista que contiene un número entero (n). Se mantienen los valores existentes en la matriz. El valor de relleno será 0. 50

7.3

Matrices | Capitulo VII

Sintaxis: REDIM(nombre, tamaño)

7.3.7 REPLACE

Reemplaza parte de una matriz o vector almacenado en matriz con un objeto comenzando por la posición de inicio. El inicio para una matriz es una lista que contiene dos números; para un vector, es un único número. Sintaxis: REPLACE(nombre, inicio, objeto) REPLACE también funciona con listas, gráficos y cadenas. Ejemplo,

»> REPLACE("123456", 2, "GRM") devuelve "1GRM56" 7.3.8 SCALE

Multiplica el número − fila de la matriz especificada por valor. Sintaxis: SCALE(nombre, valor, número-fila)

7.3.9 SCALEADD

Multiplica fila1 de la matriz (nombre) por valor y, a continuación, añade este resultado a fila2 de la matriz (nombre) y sustituye fila1 por el resultado. Sintaxis: SCALEADD(nombre, valor, fila1, fila2)

7.3.10 SUB

Extrae un subobjeto (una parte de una lista, matriz o gráfico) y lo guarda en nombre. Inicio y fin se especifican por medio de una lista de dos números para una matriz, un número para un vector o para listas, o un par ordenado, (X,Y), para gráficas: SUB(M11,2,2,2) Sintaxis: SUB(nombre, inicio, fin)

7.3.11 SWAPCOL

Intercambia columna1 y columna2 de la matriz especificada (nombre). Sintaxis: SWAPCOL(nombre, columna1, columna2)

7.3.12 SWAPROW

Intercambia fila1 y fila2 en la matriz especificada (nombre). Sintaxis: SWAPROW(nombre, fila1, fila2)

51

7.4

Comandos especiales | Capitulo VII

7.3.13 Posición

Devuelve la posición de un elemento de la matriz dada. Ejemplos 2 - lenguaje de programción HP PPL:

»> M2:=[[10 20 30], [15 25 35]]; // Matriz M2 declarada. »> b:=M2(2,3); obtenemos b=35

7.4 Comandos especiales 7.4.1 GETKEY

Devuelve el ID(identifcador) de la primera tecla en el búfer del teclado, o -1 si no se pulsó ninguna tecla desde la última llamada a GETKEY. Los ID de tecla son enteros de 0 GETKEY a 50, numerados desde la esquina superior izquierda (tecla 0) a la esquina inferior derecha Sintaxis: GETKEY (tecla 50) como se muestra en la figura.

Devuelve el ID (identificador) de la primera tecla en el búfer del teclado, o –1 si no se pulsó ninguna tecla desde la última llamada a GETKEY. de tecla son enteros de 0 a 50, numerados desde la esquina Figura Los NoID7.2: superior izquierda (tecla 0) a la esquina inferior derecha (tecla 50) como se muestra en la figura 27-1. Valores de teclas obtenidos con el comando GETKEY

INPUT

7.4.2 ISKEYDOWN

Sintaxis: INPUT(var,[“title”], [“label”], [“help”], [reset_value], [initial_value]) Devuelve true(verdadero) (distinto de cero) si la tecla cuyo id-tecla se proporciona está Sintaxis: INPUT({vars},[“título”], [{“etiquetas”}], [{“ayuda”}], presionada actualmente y falso (0) si no es así. [{restablecer_valores}], [{valores_iniciales}]) Sintaxis: ISKEYDOWN(id-tecla)

La forma más sencilla de este comando abre un cuadro de diálogo con el título dado y un campo denominad etiqueta, y muestra el contenido de ayuda en la parte inferior. El cuadro de diálogo incluye las teclas de men CANCEL y OK. El usuario puede ingresar un valor en el campo etiquetado. Si el usuario presiona la tecla de menú OK, la variable var se actualiza con el valor introducido y el comando devuelve52 1. Si el usuario presion la tecla de menú CANCEL, la variable no se actualiza y devuelve 0. En las formas más complejas del comando, se utilizan listas para crear un cuadro de diálogo con varios

7.5

Ejemplos | Capitulo VII

7.5 Ejemplos Ejemplo 1

Desarrolle una funcion que encuentre el máximo y mínimo valor en una lista de listas de numeros naturales.

Solución: Codigo Fuente :

EXPORT MaxLista() BEGIN

// 1->Declarando variables LOCAL Lista:={2,3,15,7,10},i,n,mayor,menor; // 2->Ingreso de datos INPUT ( { {Lista,[6],{25,70,0}} }, "MAX VALOR LISTA", { "Lista: " }, { "Ingrese una lista {a,b,c,...,z}" }, {Lista}, {Lista} ); // 3->Proceso del programa n:=SIZE(Lista); mayor:=Lista(1); menor:=Lista(1); FOR i:=1 TO n DO IF Lista(i)>mayor THEN mayor:=Lista(i) END; IF Lista(i)Proceso del programa MSGBOX("El Maximo valor de la lista es: " + mayor + " y el minimo es: " + ←menor ); END;

Procesando el codigo se obtiene :

(a) Ingreso de datos

(b) Resultados

Ejemplo 2

Calcular el promedio de n valores almacenados en un vector. determinar además cuantos son menor que el promedio, imprimir el promedio, el número de datos menores que el promedio y una lista de valores menores que el promedio.

Ejemplo 3

Hacer un algoritmo que llene una matriz de m * n y que imprima cuantos de los números almacenados son ceros, cuántos son positivos y cuántos son negativos.

54

CAPÍTULO

VIII Objetos Gráficos

Existen 10 variables de gráficos integradas en HP Prime llamadas G0–G9. G0 es siempre el gráfico de la pantalla actual. El G1 al G9 pueden utilizarse para almacenar los objetos gráficos temporales (abreviados GROBs) al programar aplicaciones que usen gráficos. Son temporales y, por consiguiente, se borran al apagar la calculadora. Se pueden usar veintiséis funciones para modificar las variables de gráficos. Trece de ellas trabajan con coordenadas cartesianas utilizando el plano cartesiano definido en la aplicación actual por las variables Xmin, Xmax, Ymin e Ymax.

»> RECT(); »> ARC(G0, 0, 0, 100); »> WAIT(1);

Las trece restantes trabajan con coordenadas de píxel donde el píxel 0,0 es el píxel superior izquierdo de la GROB y 320, 240 es el inferior derecho. Las funciones de este segundo 55

8.1

Comando de ingreso de datos | Capitulo VIII

conjunto tienen un sufijo -P para el nombre de la función.

»> RECT(); »> ARC_P(G0, 100, 100, 100); »> WAIT(1);

8.1 Comando de ingreso de datos 8.1.1 MOUSE

Devuelve dos listas que describen la ubicación actual de cada puntero posible (listas vacías si no se utilizan punteros). La salida es {x, y, z original, y original, tipo } donde tipo es 0 (para nuevo), 1 (para completado), 2 (para arrastrar), 3 (para alargar), 4 (para girar) y 5 (para un clic largo). Sintaxis: MOUSE(índice)

EXPORT CMOUSE() BEGIN

LOCAL tocar; REPEAT

RECT(); tocar:=B->R(MOUSE()); WAIT(-1); IF SIZE(tocar(1))=0 THEN MSGBOX(tocar); END; UNTIL ISKEYDOWN(4); END;

8.1.2 WAIT

Pausa la ejecución del programa durante n segundos. Con ningún argumento o con n = 0, pausa la ejecución durante un minuto.

56

8.1

Comando de ingreso de datos | Capitulo VIII

Sintaxis: WAIT(n) Si n=-1, pausa la ejecución hasta que se pulsa una tecla o exista una actividad del mouse, devolviendo el código de la tecla o una lista de la forma {tipo, x, y, dx, dy }. Donde: =

 

x, y : : eslaposicióndelevento  tipo : eseltipodeactividad

Cuadro No 8.1 : Tipo de objetos o identificadores de variables Tipo 0

Descripción :

mouse hacia abajo

1 :

movimiento del mouse

2 :

mouse hacia arriba

3 :

Clic del mouse

5 :

estiramiento del mouse

6 :

rotación del mouse

7 :

clic largo del mouse

EXPORT Programa() BEGIN

LOCAL SALIR,accion; RECT(); REPEAT

RECT(); accion:=B->R(WAIT(-1)); IF TYPE(accion)==6 THEN // Tipo de argumento Lista. IF accion(1)==1 THEN MSGBOX("Movimiento del mouse: "+accion(1)); END; IF accion(1)==3 THEN

MSGBOX("Clic del mouse: "+accion(1)); END; IF accion(1)==7 THEN

MSGBOX("Clic largo del mouse: "+accion(1)); END; END;

57

8.2

Comandos | Capitulo VIII

IF TYPE(accion)==0 THEN // Tipo de argumento Real.

MSGBOX(accion); SALIR:=accion; END; UNTIL SALIR==4; END;

(a) Resultados

(b) Resultados

(c) Resultados

8.2 Comandos 8.2.1 DRAWMENU

Dibuja un menú de seis botes en la parte inferior de la pantalla, con etiquetas cadena1, cadena2,..., cadena6. Sintaxis: DRAWMENU(cadena1, cadena2, . . . , cadena6).

EXPORT MENU() BEGIN

RECT(); DRAWMENU("Menu 1","Menu 2","Menu 3","Menu 4","Menu 5","Menu 6"); WAIT(-1); END;

8.2.2 FREEZE

Pausa la ejecución de un programa hasta que se pulse una tecla. Esto evita que la pantalla se redibuje después de finalizada la ejecución del programa, dejando la visualización modificada en la pantalla para que el usuario la vea. Sintaxis: FREEZE

EXPORT () BEGIN

RECT(); DRAWMENU("Menu 1","Menu 2","Menu 3","Menu 4","Menu 5","Menu 6"); 58

8.2

Comandos | Capitulo VIII

FREEZE; END;

8.2.3 RGB

La descripción RGB (del inglés Red, Green, Blue; «rojo, verde y azul») de un color hace referencia a su composición de la intensidad de los colores primarios con que se forma: el rojo, el verde y el azul. Este un modelo de color basado en lo q se conoce como síntesis aditiva, con lo que es posible representar a un color por la mezcla por adición de los tres colores luz primarios. Figura No 8.1: Modelo aditivo de colores rojo, verde, azul.

Para indicar con qué proporción se mezcla cada color, le asignamos un valor a cada uno de los colores primarios, así, por ejemplo, el valor 0 significa que no interviene en la mezcla, y en la medida que ese valor aumenta, aportará más intensidad a la mezcla. Devuelve un número entero que puede utilizarse como el parámetro de color para una función de dibujo, en base a los valores de los componentes rojo, verde y azul (cada uno de 0 a 255). Sintaxis: RGB(R, G, B, [A])

EXPORT CRGB() BEGIN

RECT(RGB(0,0,255,0.5)); DRAWMENU("Menu 1","Menu 2","Menu 3","Menu 4","Menu 5","Menu 6"); FREEZE; END;

8.2.4 LINE P

El formato básico de LINE P ó LINE dibuja una línea entre las coordenadas píxel ó cartesiano del gráfico utilizando el color especificado. Sintaxis: LINE P([G], x1, y1, x2, y2, [color]) 59

8.2

Comandos | Capitulo VIII

EXPORT () BEGIN END;

8.2.5 RECT P

Dibuja un rectángulo en G entre los puntos x1,y1 y x2,y2 utilizando color del borde para el perímetro y color de relleno para el interior. Sintaxis: RECT P([G, x1, y1, x2, y2, colorborde, colorrelleno])

EXPORT () BEGIN END;

8.2.6 TEXTOUT P

Dibuja un texto utilizando un color en el gráfico G en la posición x, y usando un tamaño de fuente. 0: fuente actual seleccionada en la pantalla Configuración de Inicio, 1: Tamaño 10 2: Tamaño 12 3: Tamaño 14 4: Tamaño 16 5: Tamaño 18 6: Tamaño 20 7: Tamaño 22 Sintaxis: TEXTOUT P(texto [ ,G], x, y [ ,fuente, c1, ancho, c2])

EXPORT () BEGIN END;

8.2.7 BLIT P

Copia la región de srcGRB entre el punto (sx1, sy1) al punto (sx2, sy2) en la región de trgtGRB entre los puntos (dx1, dy1) y (dx2, dy2). Sintaxis: BLIT P([trgtGRB, dx1, dy1, dx2, dy2], [srcGRB, sx1, sy1, sx2, sy2,c])

60

8.3

Ejemplo | Capitulo VIII

EXPORT () BEGIN END;

8.3 Ejemplo Ejemplo 1

Desarrolle una aplicacion que calcule el error de cierre de un poligono en un levantamiento topografico. Solución: Estructura de programacion general.

//-----------------------------------------------// VARIABLES GLOBALES //-----------------------------------------------n:=3; dAz:=1;Azz:={84,50,00};dC:=1;CE:=100;CN:=100;Az:=0; Ang:={};GMS:=[[0]],Lad:=[0];SUMAng:=0; //-----------------------------------------------// VARIABLES COLORES //-----------------------------------------------White:=RGB(255,255,255); Plomo:=RGB(192,192,192); //-----------------------------------------------// FUNCIONES DECLARADAS //-----------------------------------------------FInDat(); FMOUSEP(); //-----------------------------------------------// NOMBRE : INICIO PROGRAMA POLIGONAL // DESCRIPCION : Inicio del programa //-----------------------------------------------EXPORT Poligonal() BEGIN END;

//-----------------------------------------------61

8.3

Ejemplo | Capitulo VIII

Creacion de la pantalla principal.

EXPORT Poligonal() BEGIN

LOCAL accion,cx,cy,salir; REPEAT

RECT_P(); DRAWMENU("Datos","Proceso","Resultados","","","Salir"); accion:=B->R(WAIT(-1)); IF TYPE(accion)==6 THEN IF accion(1)==3 THEN cx:=accion(2); cy:=accion(3); IF cy>=219 AND cy=0 AND cx=53 AND cx=106 AND cx=265>= AND cx
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF