MANUAL-HP-PRIME-2021

MANUAL DE PROGRAMACION HP-PRIME MANUAL DE PROGRAMACION ESCRIBIR EN PANTALLA LENGUAJE DE PROGRAMACIÓN HP-PPL TIPO DE

Views 439 Downloads 84 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Citation preview

MANUAL DE PROGRAMACION HP-PRIME

MANUAL DE PROGRAMACION ESCRIBIR EN PANTALLA

LENGUAJE DE PROGRAMACIÓN

HP-PPL

TIPO DE PROGRAMACION

PROGRAMACION MODULAR

ESCRIB IR EN PANTALLA

CONTACTAR WHATSAPP: +51 924179935

P1

U S E R R P

L

    

USANDO VARIABLES LOCALES USANDO VARIABLES GLOBALES RECOBRAR PANTALLA DE GRAFICOS BORRAR PANTALLA DE GRAFICOS ENTRE OTROS…….

MANUAL DE PROGRAMACION HP-PRIME FACEBOOK: leo suca yunga

#CELULAR: +51 924179935

FUNDAMENTOS DE PROGRAMACIÓN INTRODUCCION Este capítulo le introduce a la metodología a seguir para la resolución de problemas con la calculadora HP-PRIME y con un lenguaje de programación como HP Prime Programming Language (HPPP). La resolución de un problema con una calculadora HP-PRIME se hace escribiendo un programa, que exige al menos los siguientes pasos: 1.-Definición o análisis del problema. 2.- Diseño

del algoritmo. 3.-Transformación del algoritmo en un programa. 4.- Ejecución y validación del programa. Uno de los objetivos fundamentales de este libro es el aprendizaje y diseño de los algoritmos. Este capítulo introduce al lector en el concepto de algoritmo y de programa, así como las herramientas que permiten «dialogar» al usuario con la máquina: los lenguajes de programación. 1.1 Fases de creación de un programa El proceso de resolución de problemas en LA CALCULADORA HP-PRIME conduce a la escritura de un programa y su ejecución. Las fases en el desarrollo de un programa pueden resumirse de la siguiente forma: 1. Analizar el problema consiste en conocer perfectamente en qué consiste y qué resultados se desean obtener. 2. Planificación de la resolución del problema, dividiéndolo, si es complicado, en una secuencia de etapas más simples. Esta fase se lleva a cabo EN UN PAPEL, estableciendo lo más claramente posible la finalidad de cada etapa, los datos que se necesitan de entrada, los datos que producirán en salida, los algoritmos (ver la Sección 5.2) que se utilizaran. etc. 3. Edición del código fuente, es decir, escritura del mismo utilizando un editor de textos simple (sin formato) y un lenguaje de programación. 4. Compilación y ejecución del programa al lenguaje máquina. 5. Corrección de errores del programa. Los errores se corregirán en el código fuente, repitiendo los pasos 3 y 4 tantas veces como sea necesario. Si se producen errores en la lógica del programa, es decir, si el programa “funciona” pero produce resultados incorrectos, hay que modificar el algoritmo volviendo al paso 2. Estos errores son los más difíciles de detectar. 6. Documentación. Una vez que el programa funcione correctamente, es conveniente revisar el código fuente para ordenarlos, eliminar cálculos innecesarios e incluir las líneas de comentario

MANUAL DE PROGRAMACION HP-PRIME necesarias, que normalmente deben incluir unas breves explicaciones al principio del código sobre la finalidad del programa y sus argumentos de entrada y de salida. 1.2Algoritmos Un ordenador es capaz de realizar “solo” determinadas acciones sencillas, tales como sumar, comparar o transferir datos, pero los problemas que normalmente interesa resolver son más complejos. Para resolver un problema real es necesario, en primer lugar, encontrar un método de resolución y, posteriormente, determinar la sucesión de acciones sencillas (susceptibles de ser ejecutadas por un ordenador) en que se descompone dicho método. No todos los métodos de solución de un problema pueden ser puestos es practica en un ordenador. Para que un procedimiento pueda ser implantado en un ordenador debe ser: Preciso: estar compuesto de pasos bien definidos (no ambiguos) y ordenados. Definido: si se sigue dos veces, se obtiene el mismo resultado cada vez. Finito: tener un número finito de pasos. Un procedimiento o método para resolver un problema que cumpla los requisitos anteriores se dice que es un algoritmo. Se puede dar por tanto la siguiente definición: Un algoritmo es un método para resolver un problema mediante una secuencia de pasos bien definidos, ordenados y finitos. Para que se pueda ejecutar el algoritmo es preciso, además, que se disponga de las “herramientas” adecuadas para llevar a cabo cada uno de los pasos. Si no es así, estos deberán, a su vez, ser descompuestos en una secuencia (algoritmo) de pasos más simples que si se puedan llevar a cabo. Un programa es una sucesión de ´ordenes que describen un algoritmo, escritas de forma que puedan ser entendidas por la calculadora. En un algoritmo (y por tanto en un programa) se distinguen las siguientes acciones: Entrada: es la información de partida que necesita el algoritmo para arrancar. Proceso: es el conjunto de todas las operaciones a realizar. Salida: son los resultados obtenidos. Un ejemplo elemental es el Algoritmo 5.1.

Algoritmo 1.1 Preparar una taza de t´e. Entrada: tetera, taza, bolsa de t´ e Salida: taza de t´ e Inicio Tomar la tetera Llenarla de agua Encender el fuego Poner la tetera en el fuego Esperar a que hierva el agua Tomar la bolsa de t´ e Introducirla en la tetera Esperar 1 minuto Echar el t´ e en la taza Fin 1.3 Representación de algoritmos Las dos herramientas más utilizadas comúnmente para describir algoritmos son:

MANUAL DE PROGRAMACION HP-PRIME Diagramas de flujo: son representaciones graficas de secuencias de pasos a realizar. Cada operación se representa mediante un símbolo de normalización, el Instituto Norteamericano de normalización (ANSI - American National Standars Institute). Las líneas de flujo indican el orden de ejecución. Algunos de los símbolos principales se muestran en la Figura 5.1, como son: Inicio/Fin del algoritmo, Lectura/Escritura de datos que el programa necesita o genera (por ejemplo, lectura de datos que se teclean o escritura de datos en un fichero); Proceso conjunto de instrucciones secuenciales; Decisión es una bifurcación en el flujo del algoritmo en base a que se verifique o no cierta condición (ver la sección 1.5). Los diagramas de flujo suelen ser usados solo para representar algoritmos pequeños , ya que abarcan mucho espacio.

Proceso Decisión

No Sí

Figura 1.1: símbolos en diagramas de flujo. Seudocódigos: describen un algoritmo de forma similar a un lenguaje de programación pero sin su rigidez, de forma más parecida al lenguaje natural. Presentan la ventaja de ser más compactos que los diagramas de flujo, más fáciles de escribir para las instrucciones complejas y más fáciles de transferir a un lenguaje de programación. El seudocódigo no está regido por ningún estándar. En estos apuntes usaremos las palabras LEER/IMPRIMIR para representar las acciones de lectura de datos (el programa recibe datos desde algún sitio) y salida de datos (el programa escribe información en algún medio) El Algoritmo 1.2 y la Figura 1.2 muestran respectivamente el seudocódigo y el diagrama de flujo del algoritmo para calcular la altura de una persona en pulgadas y pies a partir de la altura en centímetros introducida por el teclado.

MANUAL DE PROGRAMACION HP-PRIME Algoritmo 1.2 Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12 pulgadas), a partir de la altura en centímetros, que se introduce por el teclado. Inicio 1- IMPRIMIR ’Introduce la altura en centímetros: ’ 2- LEER: altura 3- CALCULAR pulgadas=altura/2.54 4- CALCULAR pies=pulgadas/12 5- IMPRIMIR ’La altura en pulgadas es: ’, pulgadas 6- IMPRIMIR ’La altura en pies es: ’, pies Fin

Figura 1.2: Diagrama de flujo para determinar la altura de una persona en pulgadas y pies a partir de la altura en centímetros introducida por el teclado.

MANUAL DE PROGRAMACION HP-PRIME

MANUAL DE PROGRAMACION HP-PRIME Para editar los programas se hará uso del editor PrimeComm, link de descarga https://www.hpcalc.org/details/7470 Como usar: https://www.youtube.com/watch?v=tDrK_fZmjs4

EXPORT (Exportar). Exporta la función FunctionName para que esté disponible globalmente y aparezca en el menú de usuario

Ejemplo: Mostar un mensaje en pantalla “hola amigo” EXPORT P1() BEGIN MSGBOX ("hola amigo"); END; BLOQUE.- Los comandos de bloque determinan el comienzo y el final de una subrutina o función. También hay un comando RETURN para llamar a los resultados de las subrutinas o funciones. BEGIN END

Sintaxis: BEGIN stmt1; stm2; … StmtN;

Bloque

END;

PROGRAMAS MULTIFUNCIÓN.-Si un programa contiene más de una función EXPORT, al tocar se mostrará una lista para que elija qué función desea ejecutar. Para ver esta función, cree un programa con el texto:

EJEMPLO.-el siguiente programa muestra un programa que contienen más de una función EXPORT

EXPORT PROGRAMA1 () BEGIN //inicio de programa 1 LOCAL A:=10, B:=20; //declaración de variables MSGBOX(A+B); //mostrar la suma de A+B C:=A+B; //c es igual a la suma de A+B END; //fin de programa 1

MANUAL DE PROGRAMACION HP-PRIME EXPORT PROGRAMA2 () BEGIN //inicio de programa 2 LOCAL C:=300; //declaración de variables MSGBOX(C+100); //mostrar la suma de C+100 END; //fin de programa 2 SUBPROGRAMAS.-cuando requiere el uso de un programa dentro de otro programa

PROGRAMA2 ( );

declarar el subprograma antes del programa principal

EXPORT PROGRAMA1 ( ) BEGIN LOCAL A: =10, B: =20; MSGBOX (A+B); C: =A+B; PROGRAMA2 ( ); END;

PROGRAMA2 ( ) BEGIN LOCAL C: =300; MSGBOX(C+100); END;

Programa principal

Subprograma

ESTRUCTURAS DE SELECCIÓN En programación, la estructura de selección es un tipo de estructura de control. También llamado estructura de decisión o estructura selectiva. En una estructura de selección /decisión, el algoritmo al ser ejecutado toma una decisión, ejecutar o no ciertas instrucciones si se cumplen o no ciertas condiciones, las condiciones devuelven un valor, verdadero o falso, determinado así la secuencia a seguir. Básicamente se tiene tres tipos de estructuras de selección.    IF

Estructura de selección simple (IF THEN END) Estructura de selección doble (IF THEN ELSE END) Estructura de selección multiple (CASE IF THEN THEN END END) THEN.-

Sintaxis:

IF

Evalúa prueba. Si prueba es verdadero (no 0), ejecuta comandos. De lo contrario, no se produce ninguna acción. prueba

THEN comandos

END;

EJMPLO: el siguiente programa pide un dato de ingreso, si el numero ingresado es mayor o igual a cero, mostrará un mensaje en pantalla (SI). EXPORT CONDICION () BEGIN LOCAL N; INPUT (N); IF N≥0 THEN MSGBOX ("SI") END;

C

SI P1

NO

MANUAL DE PROGRAMACION HP-PRIME END;

IF THEN ELSE. - Evalúa prueba. Si prueba es verdadero (no 0), ejecuta comandos1; de lo contrario, ejecuta comandos2

Sintaxis: IF prueba THEN comandos1 ELSE comandos2 END; EJMPLO: el siguiente programa pide un dato de ingreso, si el numero ingresado es mayor o igual a cero, mostrará un mensaje en pantalla (SI), caso contrario mostrara en mensaje (NO) en pantalla. EXPORT CONDICION2 () BEGIN LOCAL N; INPUT (N); IF N≥0 THEN MSGBOX ("SI") ELSE MSGBOX ("NO") END; END;

C

NO P1

SI P2

REPEAT.-Repite la secuencia de comandos hasta que el valor de prueba es verdadero (no 0). Sintaxis: REPEAT comandos UNTIL prueba; EJMPLO: el siguiente programa muestra tres opciones, y termina el programa cuando se presiona la tecla ESC EXPORT RECTANGULO ( ) BEGIN RECT ( ); RECT (RGB (225, 225, 0)); RECT_P (G0, 30, 35, 50, 50, #E10000h, #E1h); TEXTOUT_P("OPCION 1 CHEK",G0,60,35,0,RGB(0,0,225),200,RGB(0,225,225));

P1

RECT_P (G0, 30, 65, 50, 80, #E10000h, #E1h); TEXTOUT_P("OPCION 2 CHEK",G0,60,65,0,RGB(0,0,225),200,RGB(0,225,225)); RECT_P (G0, 30, 95, 50, 111, #E10000h, #E1h); TEXTOUT_P("OPCION 3 CHEK",G0,60,95,0,RGB(0,0,225),200,RGB(0,225,225)); FREEZE; REPEAT UNTIL ISKEYDOWN (4) END;

END;

C NO SI

MANUAL DE PROGRAMACION HP-PRIME La instrucción CASE: La instrucción CASE (traducción: caso) puede ser utilizado para cifrar varias trayectorias posibles del flujo de programa, como en el caso de los IF anidados, presentado anteriormente. El formato general de esta instrucción es como sigue: CASE IF Expresión lógica 1 THEN expresiones del programa1 END; IF Expresión lógica 2 THEN expresiones del programa2 END; . . . IF Expresión lógica THEN expresiones del programa END; Default expresiones del programa (opcional) END; Al evaluar esta instrucción, el programa prueba cada una de las expresiones lógicas hasta que encuentra una que sea verdad. El programa ejecuta las expresiones del programa correspondientes, y pasa el flujo de programa al paso que sigue la instrucción END.

EXPORT SELECCION_MULTIPLE ( ) BEGIN

SI

CASE IF Condicion 1 (C1) THEN proceso 1a (P1a) END;

C1 NO

IF Condicion 1 (C1) THEN proceso 1a (P1a) END; IF Condicion 1 (C1) THEN proceso 1a (P1a) END; . . . IF Condicion n (C1) THEN proceso 1a (P1a) END; END; END;

P1a

P1b

SI C2

P2a

NO P2b

SI Cn NO Pnb

Pna

MANUAL DE PROGRAMACION HP-PRIME ESTRUCTURAS DE REPETICION FOR .- Define la variable var para inicio y, siempre que el valor de esta variable sea inferior o igual a fin, ejecuta la secuencia de comandos y, a continuación, añade 1 (incremento) a var. Sintaxis: FOR var FROM inicio TO fin DO comandos END; Sintaxis: FOR var FROM inicio TO fin STEP incr DO comandos END; Sintaxis: FOR var FROM fin DOWNTO inicio STEP incr DO comandos END; EJMPLO: el siguiente programa muestra el texto MANUAL HP-PRIME desplazándose horizontal y verticalmente EXPORT programName() BEGIN LOCAL j; DIMGROB_P (G1, 320, 240, RGB (255,255,255)); FOR j FROM 1 TO 20 DO TEXTOUT_P ("MANUAL HP-PRIME",G1,100+j,100+j); END; TEXTOUT_P ("MANUAL HP-PRIME",G1,100+20,100+20,3,RGB(0,255,0)); BLIT_P (G0,G1); FREEZE; END; EXPORT programName() BEGIN LOCAL j; DIMGROB_P (G1, 320, 240, RGB (255,255,255)); FOR j FROM 1 TO 20 STEP 1 DO TEXTOUT_P ("MANUAL HP-PRIME",G1,100+j,100+j); END; TEXTOUT_P ("MANUAL HP-PRIME",G1,100+20,100+20,3,RGB(0,255,0)); BLIT_P (G0,G1); FREEZE; END; EXPORT programName() BEGIN LOCAL j; DIMGROB_P (G1, 320, 240, RGB (255,255,255)); FOR j FROM 20 DOWNTO 1 STEP 1 DO TEXTOUT_P ("MANUAL HP-PRIME",G1,100+j,100+j); END; TEXTOUT_P ("MANUAL HP-PRIME",G1,100+20,100+20,3,RGB(0,255,0)); BLIT_P (G0,G1); FREEZE; END;

i=m +1 o S

P

N

MANUAL DE PROGRAMACION HP-PRIME REPEAT.La estructura general de este comando es: Sintaxis: REPEAT expresiones del programa UNTIL expresión lógica;

La instrucción REPEAT comienza un lazo indefinido ejecutando las expresiones del programa hasta que la expresión lógica produce un falso (FALSE (0)). La expresión lógica debe contener el valor de un índice cuyo valor se cambia en las expresiones del programa. EXPORT MENU () BEGIN LOCAL j ; DIMGROB_P (G1,320,240 ) ; RECT_P (G1,RGB(0,225,0)); REPEAT FOR j FROM 1 TO 120 DO TEXTOUT_P("METODO-RIGIDEZ-ARMADURAS",G1,j+5,3,2,RGB(0,0,0),320,RGB(0,225,0)); BLIT_P (G0,G1); WAIT (0.01); END; FOR j FROM 1 TO 120 DO TEXTOUT_P("METODO-RIGIDEZ-ARMADURAS",G1,125-j,3,2,RGB(0,0,0),320,RGB(0,225,0)); BLIT_P (G0,G1); WAIT (0.01); END; UNTIL ISKEYDOWN (4) ; END;

P

NO

C

SI

WHILE.La estructura general de este comando es: Sintaxis: WHILE expresión lógica DO expresiones del programa END;

La instrucción WHILE repetirá las expresiones del programa mientras expresión lógica es verdadero (no cero). Si no, el control de programa se pasa a la instrucción que sigue a la declaración END. Las expresiones del programa deben incluir un índice de lazo que se modifica antes de que se verifique la expresión lógica al principio de la repetición siguiente.

MANUAL DE PROGRAMACION HP-PRIME EXPORT SELECCION ( ) BEGIN LOCAL A:=2; WHILE A == 1 OR A == 2 OR A == 3 OR A == 4 OR A==5 OR A==6 DO CHOOSE(A,"RIGIDEZ-ARMADURAS","._DATOS GENERALES-ARMADURA","._A E L 0","._GL.INICIALGL.FINAL","._CARGA EXTERNA","._EJECUCION","._RESULTADOS","._SALIR"); CASE IF A == 1 THEN MSGBOX ("OPCION" +1); END; IF A == 2 THEN MSGBOX ("OPCION" +2); END; IF A == 3 THEN MSGBOX ("OPCION" +3); END; IF A == 4 THEN MSGBOX ("OPCION" +4); END; IF A == 5 THEN MSGBOX ("OPCION" +5); END; IF A == 6 THEN MSGBOX ("OPCION" +6); END; IF A == 7 THEN MSGBOX ("SALIENDO" +7); END; END; END; END;

NO C SI P1

EJMPLO: el siguiente programa repite el ingreso de datos, y se detiene hasta que se presione la tecla cancel, del ingreso de datos INPUT;

EXPORT REPETIR ( ) BEGIN LOCAL X; LOCAL Y; LOCAL Z:=0; REPEAT Z+1 ▶ Z; UNTIL INPUT ({X, Y},"COORDENADAS # " +STRING (Z), {"X:","Y:"},{"ABSCISA X","ORDENADA Y"}) == 0;

END; EJEMPLO: tomando como referencia el programa anterior, ahora podemos guardar todas las coordenadas en la variable loca D. EXPORT REPETIR ( ) BEGIN LOCAL X; LOCAL Y; LOCAL Z:=0; LOCAL D:={}; REPEAT Z+1 ▶ Z; IF Z≠1 THEN

MANUAL DE PROGRAMACION HP-PRIME {X, Y} ▶ D (Z-1); END; MSGBOX (D); UNTIL INPUT ({X, Y},"COORDENADAS # " +STRING (Z), {"X:","Y:"},{"ABSISA X","ORDENADA Y"}) == 0 ; END; EJEMPLO: mostrar una secuencia de número de manera que se detenga cuando presiones la tecla ESC

EXPORT CONTEO ( ) BEGIN LOCAL A: =0; RECT ( ); TEXTOUT_P ("NUMERO: " 25, 25); REPEAT A+1 ▶ A; TEXTOUT_P(" " +STRING(A),90,28,2,RGB(225,225,0),100,RGB(0,0,225)); UNTIL ISKEYDOWN (4) ; END;

Una función en un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor.

Variables globales Las variables globales son variables que se declaran fuera de la función y por defecto (omisión) son visibles a cualquier función.

EJEMPLO: el siguiente programa muestra cómo crear una variable global, para ser usada en las diferentes funciones EXPORT DIAMETRO; EXPORT GLOBAL ( ) BEGIN INPUT (DIAMETRO,"DIAMETRO","D:","DIAMETRO DEL CIRCULO EN (M)",1); PRINT ( ); PRINT ("D:" +STRING (DIAMETRO+200)); END;

Pero también se pueden crear variable global que son solo visibles para la función principal, veamos en ejemplo siguiente.

EJEMPLO: el siguiente programa muestra cómo crear una variable global, para la función o funciones internas del programa LOCAL DIAMETRO;

//VARIABLE GLOBAL

EXPORT GLOBAL ( ) //FUNCION PRINCIPAL BEGIN INPUT (DIAMETRO,"DIAMETRO","D:","DIAMETRO DEL CIRCULO EN (M)",1); PRINT ( );

MANUAL DE PROGRAMACION HP-PRIME PRINT ("D:" +STRING (DIAMETRO+200)); END; Variables locales Además de tener un ámbito restringido, las variables locales son especiales por otra razón: existen en memoria sólo cuando la función está activa (es decir, mientras se ejecutan las sentencias de la función).

Cuando la función no se está ejecutando, sus variables locales no ocupan espacio en memoria, ya que no existen. Algunas reglas que siguen las variables locales son: a.-Los nombres de las variables locales no son únicos. Dos o más funciones pueden definir la misma variable test. Cada variable es distinta y pertenece a su función específica. b.- Las variables locales de las funciones no existen en memoria hasta que se ejecute la función. Por esta razón, múltiples funciones pueden compartir la misma memoria para sus variables locales (pero no al mismo tiempo).

EXPORT GLOBAL ( ) //función principal BEGIN LOCAL DIAMETRO;

//variable local de la función

INPUT (DIAMETRO,"DIAMETRO","D:","DIAMETRO DEL CIRCULO EN (M)",1); PRINT ( ); PRINT ("D:" +STRING (DIAMETRO+200)); END;

FREEZE.-Pausa la ejecución del programa hasta que se pulsa una tecla. Evita que la pantalla vuelva a dibujarse después de que se termine la ejecución del programa, manteniendo la visualización modificada en la pantalla para que el usuario la vea.

Sintaxis: FREEZE

EJEMPLO: el ejemplo muestra el uso del comando

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

(270,50)

(270,190) (50,190)

MANUAL DE PROGRAMACION HP-PRIME MOUSE.- Devuelve dos listas que describen la ubicación actual de cada puntero potencial (o listas vacías si no se utilizan punteros). La salida es {Xmovil, Ymóvil, Xstático, Yestatico, 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). El índice de parámetros opcional es el elemento n-ésimo que se devolvería (Xmovil, Ymóvil, Xstático, etc.) si se hubiera omitido el parámetro (o –1 si no se registra actividad del puntero). Sintaxis: MOUSE [(índice)] EXPORT RATON1 ( ) BEGIN LOCAL RATON; REPEAT RATON:=MOUSE; CASE IF SIZE (RATON(1)) THEN TEXTOUT_P(B→R(RATON),G0,200,150,2,RGB(0,225,0),100,RGB(225,225,225)); END; END; UNTIL ISKEYDOWN (4); END;

FILLPOLY.-Rellena el polígono especificado por las coordenadas del pixel proporcionado

utilizando los colores suministrados .Si se proporciona Alfa (0 a 255), el polígono es dibujado con transparencia.

Sintaxis: FILLPOLY_P ([G], {coordenadas...} o [coordenadas], Color, [Alpha]) EJEMPLO: el siguiente programa muestra el doblez de una página por la esquina

EXPORT dobles ( ) BEGIN DIMGROB_P (G1, 320,240); DIMGROB_P (G2, 320,240); BLIT_P (G1, G0); WHILE 1 DO FOR Z FROM 0 TO 170 STEP 1 DO BLIT_P (G2, G1); FILLPOLY_P (G2, {{0, 0}, {320, 0}, {320,240}, {0,240}}, #000000, Z); FILLPOLY_P (G2, {{150,240}, {320, 70}, {320-Z, 240-Z}}, #000000, 225); BLIT_P (G0, G2); WAIT (0.005); END; END; END;

MANUAL DE PROGRAMACION HP-PRIME FOR.- Define la variable var para inicio y, siempre que el valor de esta variable sea inferior o igual a fin, ejecuta la secuencia de comandos y, a continuación, añade 1 (incremento) a var. Sintaxis: FOR var FROM inicio TO fin DO comandos END;

i=j

N

+1 o S

P

TEXTOUT_P.-Dibuja texto de color c1 en la posición x,y de la gráfica G con la fuente especificada. No dibuje texto con un ancho en píxeles mayor que el especificado y borre el fondo antes de dibujar el texto utilizando el color c2. G puede ser cualquiera de las variables gráficas y es opcional. El valor predeterminado es G0. La fuente puede ser: 0: fuente actual seleccionada en la pantalla de modo, 1: fuente pequeña 2: fuente grande. La fuente es opcional y, si no se especifica, es la fuente actual seleccionada en la pantalla Configuración de Inicio. c1 puede ser cualquier color especificado cómo #RRGGBB. El valor predeterminado es negro (#000000). Ancho es opcional y, si no se especifica, no se realiza ningún recorte. Sintaxis: TEXTOUT (texto, G, x, y, fuente, c1, ancho, c2) TEXTOUT_P (texto, G, x, y, fuente, c1, ancho, c2)

EJEMPLO: el siguiente programa muestra muestra un texto en la gráfica G5

EXPORT TITULO ( ) BEGIN DIMGROB_P (G5, 320,240); TEXTOUT_P("MANUAL DE PROGRAMACION HP-PRIME",G5,30,25,2,RGB(225,225,0),220,RGB(0,0,0)); BLIT_P (G0, G5); FREEZE; END;

Peo en el ejemplo podemos poner el fondo de color negro para ello haremos uso del comando RECT_P ( ).

EXPORT TITULO ( ) BEGIN DIMGROB_P (G5, 320,240); RECT_P (G5, RGB (0, 0, 0)); TEXTOUT_P("MANUAL DE PROGRAMACION HP-PRIME",G5,30,25,2,RGB(225,225,0),220,RGB(0,0,0)); BLIT_P (G0, G5); FREEZE;

MANUAL DE PROGRAMACION HP-PRIME END;

INPUT.-Abre un cuadro de diálogo con el texto del título, título, con un campo denominado etiqueta, que muestra ayuda en la parte inferior y que utiliza el valor predeterminado. Actualiza la variable var si el usuario toca y devuelve 1. Si el usuario toca, no actualiza la variable y devuelve 0. Sintaxis: INPUT (var, ["título", "etiqueta", "ayuda", predeterminado]); INPUT (Var, [“titulo”], [“etiqueta”], [“ayuda”], [restablecer valor], [valor inicial]); INPUT ({Var}, [“titulo”], [{“etiqueta”}], [{“ayuda”}], [{restablecer valores}], [{valor iniciales}]); Var:{nombre var, real, [{pos}]} Var:{nombre var, [tipos permitidos de matriz], [{pos}]} La fórmula más simple de este comando abre un cuadro de dialogo con el título dado y un campo llamado etiqueta, además de que muestra la ayuda en la parte inferior. El cuadro de dialogo incluye las teclas de menú cancelar u ok.el usuario puede introducir 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 se devuelve 1.si el usuario presiona la tecla de menú cancelar, no actualiza var y se devuelve 0. En la forma más compleja del comando, las listas se utilizan para crear un cuadro, de dialogo pluridisciplinar. Sí var es una lista, cada elemento puede ser un nombre de variable, o una lista utilizando el siguiente formato: {Nombre var, real, [{pos}]} para crear un control con casillas de verificación .si real es >1, esta casilla de verificación se agrupa con la siguiente casilla de verificación n-1 en un grupo de radio (por ejemplo solo una casilla de verificación n puede ser marcada en cualquier momento). {Nombre var, [tipos permitidos de matriz], [{pos}]} para crear un campo de edición, tipos permitidos de matriz enumera todos los tipos permitidos ([-1] representa todos los tipos permitidos).si el único tipo permitido es una cadena, entonces la edición ocultara las comillas dobles. {Nombre var, {elegir elementos}, [{pos}]} para crear un campo de selección. Si se especifica pos, esta es una lista del formulario {inicio del campo en el porcentaje de pantalla, línea (empieza cero)} esto permite que controle con precisión la posición y el tamaño de los campos .tome en cuenta que tiene que especificar pos para ninguno o todos los campos en el cuadro de dialogo. Hay un máximo de 7 líneas de controles por pagina .los controles con más de 7 líneas se colocaran en la siguientes páginas .si se crea más de una pagina, los títulos pueden ser una lista de títulos. EJEMPLO: en los siguientes programas se mostrara el uso de comando INPUT, en sus diferentes variaciones. a.-formulario de entrada para 2 variables

EXPORT FORMA1 ( ) BEGIN LOCAL Vv, Vs; INPUT ({Vv, Vs}) END; b.-formulario de entrada para 2 variables y un título.

EXPORT FORMA2 ( ) BEGIN LOCAL Vv , Vs; INPUT ({Vv, Vs},"RELACION DE VACIOS"); END;

MANUAL DE PROGRAMACION HP-PRIME c.-formulario de entrada para 2 variables y un título, con 2 etiquetas.

EXPORT FORMA3 ( ) BEGIN LOCAL Vv, Vs; INPUT ({Vv, Vs},"RELACION DE VACIOS", {"Vv:","Vs:"}); END;

d.-formulario de entrada para 2 variables y un título, con 2 etiquetas, ayudas de campo

EXPORT FORMA4 ( ) BEGIN LOCAL Vv, Vs; INPUT ({Vv, Vs},"RELACION DE VACIOS", {"Vv:","Vs:"},{"VOLUMEN DE VACIOS","VOLUMEN DE SOLIDOS"}); END;

También podemos colocar la ubicación de la celda y el tipo de objeto para el campo. Formato para la ubicación, tipo de objeto y orden de las variables.

Common Types: -1: todo 0: real 1: entero 2: cadena 3: complejo 4: matrices 6: lista 8: funciones 9: unidad 14?: Objeto CAS la parte fraccionaria es de tipo cas

EXPORT FORMA5 ( ) BEGIN LOCAL Vv, Vs; INPUT({{Vv,[0],{30,40,1}},{Vs,[0],{30,40,2}}},"RELACION VACIOS","VOLUMEN DE SOLIDOS"}); END;

DE

VACIOS",{"Vv:","Vs:"},{"VOLUMEN

También podemos colocar opciones CHECK, para las diferentes opciones

DE

MANUAL DE PROGRAMACION HP-PRIME

EXPORT FORMA6 () BEGIN LOCAL Vv, Vs; INPUT ({{Vv, 1}, {Vs, 0}},"RELACION DE VACIOS", {"Vv:","Vs:"},{"VOLUMEN DE VACIOS","VOLUMEN DE SOLIDOS"}); END;

También podemos colocar opciones CHOOSE, para las diferentes opciones

EXPORT FORMA7 ( ) BEGIN LOCAL Vv, Vs; INPUT ({{Vv, {"100","200"}}, {Vs, {"1","2"}}},"RELACION DE VACIOS", {"Vv:","Vs:"},{"VOLUMEN DE VACIOS","VOLUMEN DE SOLIDOS"}); END;

Pero como ver los valores de restauración

MANUAL DE PROGRAMACION HP-PRIME

PRIMERO PASOS DE PROGRAMACION EN HP-PRIME Cuando se inicia el editor, lo que se ve es lo siguiente

EXPORT programName ( ) BEGIN END;

Donde se distinguen las siguientes partes

EXPORT.- Exporta la variable para que esté disponible de forma global. BLOQUE.-Los comandos de bloque determinan el comienzo y el final de una subrutina o función. Define un comando o conjunto de comandos para su ejecución en bloque. Sintaxis: BEGIN stmt1; stm2;… stmtN; END; programName ( ).-nombre del programa ( ).-para el ingreso de datos Estructura de comandos Los comandos se separan con punto y coma (;). Los comandos que aceptan varios argumentos incluyen a estos últimos entre paréntesis, separados por comas ( , ).

EXPORT programName ( ) BEGIN stmt1; stm2;… stmtN; END;

Estructura de comandos

MANUAL DE PROGRAMACION HP-PRIME

EJEMPLO.-realizar un programa que muestre las operaciones suma, resta, multiplicación y división, con los números 10 y 20. EXPORT programName( ) BEGIN 10+20; 10-20; 10*20; 10/20; END;

Pero aquí solo se muestra la última operación

RETURN.- Devuelve el valor actual de expresión. Sintaxis: RETURN expresión;

EXPORT programName( ) BEGIN 10+20; RETURN 10-20; 10*20; 10/20;

¿Pero si quiero todos los resultados?

END;

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

EXPORT programName( ) BEGIN

¿Pero no se sabe quién es quién?

PRINT (10+20); PRINT (10-20); PRINT (10*20); PRINT (10/20); END;

EXPORT programName() BEGIN PRINT("suma:"+(10+20)); PRINT("resta:"+(10-20)); PRINT("multiplicacion:"+(10*20)); PRINT("division:"+(10/20)); END;

EXPORT programName( ) BEGIN

¿Cómo mostrar los resultados en una sola línea?

MANUAL DE PROGRAMACION HP-PRIME PRINT ("suma:"+(10+20)+" resta:"+(10-20)+" multiplicación:"+(10*20)+" división:"+(10/20)); END;

Pero cada vez que se ejecuta el programa muestra el resultado anterior

EXPORT programName( ) BEGIN PRINT; PRINT ("suma:"+(10+20)+" resta:"+(10-20)+" multiplicación:"+(10*20)+" división:"+(10/20)); END;

INPUT.- Abre un cuadro de diálogo con el texto del título, título, con un campo denominado etiqueta, que muestra ayuda en la parte inferior y que utiliza el valor predeterminado. Actualiza la variable var si el usuario toca y devuelve 1. Si el usuario toca , no actualiza la variable y devuelve 0. Sintaxis: INPUT ({vars} [{"título"}],[{ "etiqueta"}],[ {"ayuda”}], [{predeterminado}]);

Ejemplo.-determinar la relación de vacíos e=

Vv Vs

Ejemplo: determinar la relación de vacíos, donde Vv 𝑦 Vs son desconocidos EXPORT programName() BEGIN LOCAL Vv,Vs; IF INPUT({{Vv,[0],{10,30,1}},{Vs,[0],{50,30,1}}},"RELACION DE VACIOS","Vv:",{"VOLUMEN DE VACIOS","VOLUMEN SE SOLIDOS"},{10,20},{100,200}) THEN MSGBOX ("OK"); ELSE MSGBOX ("CANC"); END;

END;

MANUAL DE PROGRAMACION HP-PRIME

Como crear un menú, en informática, un menú es una serie de opciones que el usuario puede elegir para realizar determinadas tareas.

ISKEYDOWN Devuelve verdadero (no cero) si está pulsada actualmente la tecla cuyo id_tecla se proporciona y falso (0) si no lo está.

Sintaxis: ISKEYDOWN (id_tecla); EJEMPLO.-en este ejemplo

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

EJEMPLO.-en este ejemplo se puede ver que cuando no está condicionada el comando GETKEY solo muestra -1, dado que no se ha presionado tecla alguna EXPORT programName ( ) BEGIN LOCAL TECLA; REPEAT TECLA:= GETKEY; PRINT (TECLA); UNTIL TECLA = 4 END;

MANUAL DE PROGRAMACION HP-PRIME

EJEMPLO.-en este ejemplo se muestra la manera de condicionar el comando GETKEY

EXPORT programName ( ) BEGIN LOCAL TECLA; PRINT ("PRESIONA UNA TECLA"); REPEAT TECLA:=GETKEY; CASE IF TECLA ≥ 0 THEN PRINT (TECLA); END; END; UNTIL TECLA = 4; END;

Ejemplo.-crear un menú de 3 opciones: Se creara 3 casillas rectangulares en la variable grafica con las siguientes características (10,20) (100,40) (10,45) (100,65) (10,70) (100,90)

EXPORT programName ( ) BEGIN DIMGROB_P(G1,320,240,RGB(0,0,225)); RECT_P(G1,20,20,100,40,RGB(225,0,0),RGB(0,0,0)); RECT_P(G1,20,45,100,65,RGB(225,0,0),RGB(0,225,0)); RECT_P(G1,20,70,100,90,RGB(225,0,0),RGB(0,225,0));

BLIT_P(G0,G1); FREEZE; END;

MANUAL DE PROGRAMACION HP-PRIME

P1

(110,70)

P3 P4

DECLARACION DE VARIABLES LOCALES Las variables locales son aquellas variables temporales dentro de los programas, es decir solo están presentes en la ejecución de los programas. Es muy recomendable el uso de estas variables ya que utiliza menos memoria y son más rápidos al ejecutarse. Sintaxis: LOCAL var1, var2,…var_n; Convierte las variables var1, var2, etc. en locales del programa en que se encuentran.

EXPORT P1 () BEGIN LOCAL A, B; END;

3.1.5. Comentarios Un comentario es cualquier información que se añade a su archivo fuente para proporcionar documentación de cualquier tipo. El compilador ignora los comentarios, no realiza ninguna tarea concreta. El uso de comentarios es totalmente opcional, aunque dicho uso es muy recomendable. Generalmente, se considera buena práctica de programación comentar su archivo fuente tanto como sea posible, al objeto de que usted mismo y otros programadores puedan leer fácilmente el programa con el paso de tiempo. Es buena práctica de programación comentar su programa en la parte superior de cada archivo fuente. La información que se suele incluir es el nombre del archivo, el nombre del programador, una breve descripción, la fecha en que se creó la versión y la información de la revisión. Los comentarios en C estándar comienzan con la secuencia / * y terminan con la secuencia * /. Todo el texto situado entre las dos secuencias es un comentario ignorado por el compilador

MANUAL DE PROGRAMACION HP-PRIME

Determinar los elementos comunes de dos listas:

member.-Prueba si un elemento está en una lista o un conjunto. Si el elemento está en la lista o el conjunto, devuelve 1+ el índice de la primera incidencia del elemento. Si elemento no está en la lista o el conjunto, devuelve 0.

Sintaxis: member (Elem(e),(Lst(l) o Set(l)))

Ejemplo: determinar la posición del número 20 en la lista {10, 20,30}. EXPORT programName ( ) BEGIN LOCAL L1 :={ 10, 20, 30}; MSGBOX (member (20, L1)); END;

//declaración de variable local definido //muestra el numero 2 (posición que ocupa el número 20 en la lista (L1))

Ejemplo: determinar todas las posiciones del número 20 en la lista {10, 20, 30, 20, 50, 20,20}. EXPORT programName ( ) BEGIN LOCAL i,k=1,L1 :={ 10, 20, 30, 20,50,20,20}; FOR i FROM 1 TO SIZE (L1) DO IF L1 (i) = 20 THEN "20" ▶ L1 (i); i ▶ L2 (k); k:=k+1; END; END; MSGBOX (L2); END;

//declaración de variables locales // define la variable i para en inicio //variable de control // de //1 // a //tamaño de la lista (L1) // hacer // si // el elemento i de la lista L1 es igual a 20 //entonces // el texto (“20”) se guarda en la posición i de la lista L1 //la posición i se guarda en la lista L2 en la posición k //el valor de k se incrementa en una unidad para ser guardada en la variable k //fin de la instruction IF THEN END; //fin de la instruction FOR FROM TO DO; //muestra la lista de todos las posiciones del 20 en pantalla

//

Determinar las cifras acumuladas del texto "0.125"

EXPORT programName ( ) BEGIN LOCAL NUMER:="0.125",j,NUMERO:={}; FOR

MANUAL DE PROGRAMACION HP-PRIME j FROM 1 TO DIM (NUMER) DO MID (NUMER, 1, j) ▶ NUMERO (j); END; END;

// {"0","0.","0.1","0.12","0.125"}

Determinar las cifras individuales del texto "0.125"

EXPORT programName ( ) BEGIN LOCAL NUMER:="0.125", j,CIFRAS:={}; FOR j FROM 1 TO DIM (NUMER) DO MID (NUMER, j, 1) ▶CIFRAS (j); END;

//

{"0",".","1","2","5"}

END;

Devuelve las soluciones a una ecuación polinómica o un conjunto de ecuaciones polinómicas.

EXPORT ECUACION ( ) BEGIN solve ('X^2+2*X-3', X); END;

MANUAL DE PROGRAMACION HP-PRIME

CHOOSE.-muestra un cuadro de selección con el “titulo” dado y elementos con las cadenas Si el usuario selecciona un objeto, var se actualizara para contener el número del objeto seleccionado (un entero 1, 2, 3,4,…); de lo contrario, almacena cero en var si el usuario sale sin realizar una selección. Devuelve verdadero (no cero) si el usuario selecciona un objeto de lo contario devuelve falso (0) Sintaxis: CHOOSE (var, “titulo”, “item1”, “titulo2”…“titulo14”); Sintaxis: CHOOSE (var, “titulo”, {“item1”, “titulo2”…}); Ejemplos: haciendo uso del comando CHOOSE crear una caja de selección. EXPORT programName () BEGIN LOCAL t: =2; //var indica el número de celda seleccionada CHOOSE (t,"SELECCIONAR", {"OPCION","OPCION","OPCION","OPCION"}); END;

¿Pero caga vez que se escoge una opción se sale de la caja de selección? Ejemplos: haciendo uso del comando CHOOSE crear una caja de selección de manera que no se salga de la caja de selección cada vez que se escoja una opción. EXPORT programName () BEGIN LOCAL t:=2; REPEAT CHOOSE (t,"SELECCIONAR", {"OPCION","OPCION","OPCION","OPCION","SALIR"}); CASE IF t= 1 THEN MSGBOX(t); END; IF t= 2 THEN MSGBOX(t); END; IF t= 3 THEN MSGBOX(t); END; IF t= 4 THEN MSGBOX(t); END; IF t= 5 THEN MSGBOX("SALIR"); END; END; UNTIL t=5; END;

¿Pero si quiero otra caja de selección dentro de una de las opciones?

MANUAL DE PROGRAMACION HP-PRIME

Ejemplos: haciendo uso del comando CHOOSE crear una caja de selección dentro de otra caja de selección. LOCAL CAJA_INTERIOR (); EXPORT programName () BEGIN LOCAL t: =2; REPEAT CHOOSE (t,"SELECCIONAR", {"OPCION","OPCION","OPCION","OPCION","SALIR"}); CASE IF t= 1 THEN MSGBOX(t); CAJA_INTERIOR (); END; IF t= 2 THEN MSGBOX(t); END; IF t= 3 THEN MSGBOX(t); END; IF t= 4 THEN MSGBOX(t); END; IF t= 5 THEN MSGBOX ("SALIR"); END; END; UNTIL t=5; END; CAJA_INTERIOR () BEGIN LOCAL r: =2; REPEAT CHOOSE (r, "SELECCIONAR1", {"OPCION1","OPCION1","OPCION1","OPCION1","SALIR1"}); CASE IF r= 1 THEN MSGBOX(r); END; IF r= 2 THEN MSGBOX(r); END; IF r= 3 THEN MSGBOX(r); END; IF r= 4 THEN MSGBOX(r); END; IF r= 5 THEN MSGBOX ("SALIR"); END; END; UNTIL r=5; END;

EDITMAT.-permite que el usuario edite o vea una matriz especificada .si se usa una matriz variable (M0-M9), se actualiza la variable cuando el usuario pulsa la tecla de menú OK.el título opcional puede ser “titulo” o {“”título, {“nombre de fila…”}, {“nombre de columna…”}} si existe título se mostrara en la parte superior del editor. Si se especifica los row names (nombre de filas) y column names(nombre de columnas),se utilizaran como los encabezados de la fila y la columna en el editor. Si solo lectura no es 0 ,el usuario no podrá modificar ,solo puede verla .

MANUAL DE PROGRAMACION HP-PRIME Ejemplos: haciendo uso del comando EDITMAT ingresar coordenadas

EXPORT programName() BEGIN LOCAL MA_TRIZ:=[[0,0]]; EDITMAT( MA_TRIZ,{"COORDENADAS",{},{"X","Y",""}}); END;

¿Pero cómo sería para que se mantenga la matriz?

Para poder recobrar los datos cargados (coordenadas) se debe de trabajar MA_TRIZ como variable global. LOCAL MA_TRIZ:=[[0,0]]; EXPORT programName() BEGIN EDITMAT( MA_TRIZ,{"COORDENADAS",{},{"X","Y",""}}); END;

Ejemplos: extraer las coordenadas x e y de una matriz, en dos listas

LOCAL MA_TRIZ:=[[0,0]]; LOCAL X_LIST:={},Y_LIST:={}; EXPORT programName() BEGIN LOCAL j; LOCAL N; MA_TRIZ:=EDITMAT( MA_TRIZ,{"COORDENADAS",{},{"X","Y",""}}); N:=SIZE(MA_TRIZ); N:=N(1); FOR j FROM 1 TO N DO MA_TRIZ(j,1) ▶ X_LIST(j); MA_TRIZ(j,2) ▶ Y_LIST(j); END; EDITLIST(X_LIST); EDITLIST(Y_LIST); END;

MANUAL DE PROGRAMACION HP-PRIME

Ejemplos: graficar lar coordenadas cargados de una matrz

LOCAL MA_TRIZ:=[[0,0]]; LOCAL X_LIST:={},Y_LIST:={}; LOCAL GRAFICAR(); LOCAL N_F; EXPORT programName() BEGIN DIMGROB_P(G1,320,240,RGB(255,255,255)); LOCAL j; MA_TRIZ:=EDITMAT( MA_TRIZ,{"COORDENADAS",{},{"X","Y",""}}); N_F:=SIZE(MA_TRIZ); N_F:=N_F(1); FOR j FROM 1 TO N_F DO MA_TRIZ(j,1) ▶ X_LIST(j); MA_TRIZ(j,2) ▶ Y_LIST(j); END; GRAFICAR(); END; GRAFICAR() BEGIN LOCAL X_MAX,Y_MAX; LOCAL L_max,L_papel:=100,FAC_ESC,j; X_MAX:=MAX(X_LIST); Y_MAX:=MAX(Y_LIST); L_max:={X_MAX,Y_MAX}; L_max:=MAX(L_max); CASE IF L_max==0 THEN END; IF L_max>0 THEN FAC_ESC:=L_papel/L_max; END; END; FOR j FROM 1 TO N_F DO ARC_P(G1,X_LIST(j)*FAC_ESC,Y_LIST(j)*FAC_ESC,5,0,360,RGB(0,0,255)); END; BLIT_P(G0,G1); FREEZE; END;

MANUAL DE PROGRAMACION HP-PRIME

¿Pero cómo se haría para que no grafique de cabeza?

Para poder verlo en forma normal es necesario expresar las componentes y, de cada coordenada como 240-y, es decir: ARC_P(G1,X_LIST(j)*FAC_ESC,240-Y_LIST(j)*FAC_ESC,5,0,360,RGB(0,0,255));

¿Pero cómo se haría para centrar las coordenadas?

Para poder desplazar o centrar las coordenadas es necesario sumar a las componentes x e y, 100 y 50 respectivamente. ARC_P(G1,100+X_LIST(j)*FAC_ESC,240-(Y_LIST(j)*FAC_ESC+50)5,0,360,RGB(0,0,255));

MANUAL DE PROGRAMACION HP-PRIME

Ejemplos: dado tres vectores, componer una matriz teniendo como filas los elementos de los vectores.

EXPORT programName() BEGIN LOCAL VECT_1:=[10,20,30]; LOCAL VECT_2:=[40,50,60]; LOCAL VECT_3:=[60,70,80]; LOCAL VECT_T,MAT_TRIZ; VECT_T:=mat2list(VECT_1,VECT_2,VECT_3); MAT_TRIZ:=list2mat(VECT_T,3); EDITMAT(MAT_TRIZ); END;

Ejemplos: graficar una carga distribuida

MANUAL DE PROGRAMACION HP-PRIME EXPORT programName() BEGIN DIMGROB_P(G1,320,240,RGB(255,255,255)); LOCAL Xo:=50,Xf:=200,Wo:=40,Wf:=40,Y,j; LINE_P(G1,30, 240-140, 290, 240-140, RGB(0,0,255)); FOR j FROM Xo TO Xf STEP 3 DO Y:=Wo+((Wf-Wo)/(Xf-Xo))*(j-Xo); LINE_P(G1,j,240-140,j,240-(Y+140),RGB(0,0,0)); END; BLIT_P(G0,G1); DRAWMENU("","","","CARGA","SALIR","OK"); FREEZE; END;

¿y si existen otro tipo de cargas?

Para ver los otros tipos de datos es necesario cargar los datos necesarios. LOCAL Xo:=50,Xf:=200,Wo:=-40,Wf:=-40,Y,j; carga distribuida negativa LOCAL Xo:=50,Xf:=200,Wo:=0,Wf:=40,Y,j; carga distribuida triangular LOCAL Xo:=50,Xf:=200,Wo:=-40,Wf:=40,Y,j; carga triangular positiva y negativa

Ejemplos: graficar una carga distribuida de grado n

EXPORT programName() BEGIN DIMGROB_P(G1,320,240,RGB(255,255,255)); LOCAL Xo:=50,Xf:=200,Wo:=40,Wf:=40,Y,j ,n:=2; LINE_P(G1,30, 240-140, 290, 240-140, RGB(0,0,255)); FOR j FROM Xo TO Xf STEP 3 DO Y:=Wo+(Wf-Wo)*((j-Xo)/(Xf-Xo))^n; LINE_P(G1,j,240-140,j,240-(Y+140),RGB(0,0,0)); END; BLIT_P(G0,G1); DRAWMENU("","","","CARGA","SALIR","OK"); FREEZE; END;

MANUAL DE PROGRAMACION HP-PRIME

Ejemplo.-calcular el acero necesario para que la viga de b=30cm, y d=50cm, resista Mu=20ton.m, sabiendo que fy=4200kg/cm2 y f’c=250kg/cm2.

𝐴𝑠 =

𝑀𝑢 ∅. 𝑓𝑦 . (𝑑 − 𝑎/2)

𝑎=

𝐴𝑠 . 𝑓𝑦 0.85. 𝑓𝑐 . 𝑏

El valor de a (asumido) debe ser igual al valor de a (calculado) a(asumido) As(a=aasumido) a(calculado)

LOCAL RESULTADOS (); LOCAL CALCULOS (); LOCAL Mu:=2000000,ф:=0.90,fy:=4200,fc:=210,b:=30,d:=55; LOCAL a_asu_lista:={ },As_lista:={ },a_calcu_lista:={ }; LOCAL CONTAR:=1; EXPORT programName () BEGIN LOCAL SIP; SIP:=INPUT({Mu,ф,fy,fc,b,d},"calculo de As",{"Mu:","ф:","fy:","fc:","b:","d:"}, {"momento ultimo -(kg.cm)","factor de reduccion","fluencia del acero-(kg/cm2)","resistencia del concreto(kg/cm2)","ancho de la viga-(cm)","peralte efectivo-(cm)"},{0,0,0,0,0,0},{Mu,ф,fy,fc,b,d}); IF SIP=1 THEN CALCULOS (); ELSE MSGBOX ("SALIR"); END;

MANUAL DE PROGRAMACION HP-PRIME END; CALCULOS () BEGIN LOCAL As,a,a_calculado,a_asumido; a_asumido:=d/5; a:=a_asumido; a:=ROUND(a,3); a ▶ a_asu_lista(CONTAR); As: =Mu/(ф*fy*(d-a/2)); As: =ROUND (As, 3); As ▶ As_lista(CONTAR); a_calculado:=As*fy/(0.850*fc*b); a_calculado:=ROUND (a_calculado,3); a_calculado ▶ a_calcu_lista(CONTAR); REPEAT CONTAR:=CONTAR+1; a_asumido:=a_calculado; a:=a_asumido; a:=ROUND(a,3); a ▶ a_asu_lista(CONTAR); As:=Mu/(ф*fy*(d-a/2)); As: =ROUND (As, 3); As ▶ As_lista(CONTAR); a_calculado:=As*fy/(0.850*fc*b); a_calculado:=ROUND (a_calculado, 3); a_calculado ▶ a_calcu_lista(CONTAR); UNTIL ROUND (a_asumido, 3)=ROUND ( a_calculado, 3); RESULTADOS (); CONTAR:=1; END; RESULTADOS () BEGIN LOCAL RESULT; LOCAL j; RESULT: =MAKEMAT (0, CONTAR, 3); FOR j FROM 1 TO CONTAR DO a_asu_lista (j) ▶ RESULT (j, 1); As_lista (j) ▶ RESULT (j, 2); a_calcu_lista (j) ▶ RESULT (j, 3); END; EDITMAT (RESULT, {"RESULTADOS", { }, {"a_asumido","As","a_calculado"}}); END;

MANUAL DE PROGRAMACION HP-PRIME Ejemplo.-crear un menú.

EXPORT programName() BEGIN DIMGROB_P(G1,320,240,RGB(255,255,255)); BLIT_P(G0,G1); DRAWMENU("","","","","SALIR","OK"); FREEZE; END;

¿Pero cómo se podría controlar las opciones de menú?

Para poder controlar las opciones del menú es necesario conocer las coordenadas de los extremos opuesto de cada opción (rectángulo), es decir:

(50,50)

(62,80)

Ejemplo.-crear un menú, de manera que se pueda controlar las opciones del menú.

LOCAL TOCAR; LOCAL TECLA; LOCAL ACTIVO:=1; LOCAL RECT_TAN:={}; LOCAL CASE_TOCAR(); EXPORT programName() BEGIN DIMGROB_P(G1,320,240,RGB(255,255,255)); LOCAL H:=0,b:=51,t:=2,V:=218,h:=20,j; FOR j FROM 1 TO 6 DO RECT_P(G1,H+(j-1)*b+(j-1)*t,V,H+j*b+(j-1)*t,V+h,RGB(0,0,0)); {H+(j-1)*b+(j-1)*t,V,H+j*b+(j-1)*t,V+h} ▶ RECT_TAN(j); END;

MANUAL DE PROGRAMACION HP-PRIME BLIT_P(G0,G1); REPEAT TECLA:=GETKEY; TOCAR:=MOUSE; CASE IF SIZE(TOCAR(1))=0 THEN // CASE_TECLAS(); END; IF SIZE(TOCAR(1)) THEN CASE_TOCAR(); END; END; UNTIL TECLA == 4 ; END; CASE_TOCAR() BEGIN LOCAL j; FOR j FROM 1 TO 5 DO IF RECT_TAN(j,1) ≤ TOCAR(1,3)≤ RECT_TAN(j,3) AND RECT_TAN(j,2) ≤ TOCAR(1,4) ≤ RECT_TAN(j,4)

THEN ACTIVO:=j; MSGBOX(ACTIVO); BLIT_P(G0,G1); END; END; END;

CIRCULO DE ESTUDIOS

MANUAL DE PROGRAMACION HP-PRIME

“EL INGENIERO”

RESOLUCION DE EXAMENES ASESORAMIENTO DE TRABAJOS RESOLUCION DE EJERCICIOS DE LOS SIGUIENTES CURSOS  MATEMATICA BASICA  GEOMETRIA ANALITICA  FISICA I,II

 CALCULO I,II,II  ECUACIONES DIFERENCIALES  ESTATICA  RESISTENCIA DE MATERIALES I,II  SUELOS I,II  ANALISIS ESTRUCTURAL I,II  PUENTES…ENTRE OTROS CURSOS…

WHATSAPP:+51 9241779935