Académique Documents
Professionnel Documents
Culture Documents
MANUAL DE PROGRAMACION
ESCRIBIR EN PANTALLA
ESCRIB IR EN PANTALLA
USANDO VARIABLES LOCALES
USANDO VARIABLES GLOBALES
RECOBRAR PANTALLA DE GRAFICOS
BORRAR PANTALLA DE GRAFICOS
CONTACTAR WHATSAPP: ENTRE OTROS…….
+51 924179935
P1
U
S
E
R
-
R
P
L
MANUAL DE PROGRAMACION HP-PRIME
FUNDAMENTOS
DE PROGRAMACIÓN
INTRODUCCION
1.2Algoritmos
Un ordenador es capaz de realizar “solo” determinadas acciones sencillas, tales como sumar, com-
parar 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:
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 “herramien-
tas” 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:
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í
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
EXPORT P1()
BEGIN
MSGBOX ("hola amigo");
END;
Sintaxis:
BEGIN
stmt1;
stm2;
… Bloque
StmtN;
END;
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
EXPORT PROGRAMA1 ( )
BEGIN
LOCAL A: =10, B: =20;
MSGBOX (A+B);
Programa principal
C: =A+B;
PROGRAMA2 ( );
END;
PROGRAMA2 ( )
BEGIN
LOCAL C: =300; Subprograma
MSGBOX(C+100);
END;
ESTRUCTURAS DE SELECCIÓN
IF THEN.- Evalúa prueba. Si prueba es verdadero (no 0), ejecuta comandos. De lo contrario, no se
produce ninguna acción.
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
NO
LOCAL N; C
INPUT (N);
IF N≥0
THEN MSGBOX ("SI") SI
END;
P1
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
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 NO
C P1
THEN MSGBOX ("SI")
ELSE MSGBOX ("NO")
END;
SI
END;
P2
REPEAT.-Repite la secuencia de comandos hasta que el valor de prueba es verdadero (no 0).
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));
UNTIL
ISKEYDOWN (4)
END;
END;
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
C1 P1a
END; NO
END;
P2b
SI
Cn Pna
NO
Pnb
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.
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)); i=m
N
FOR j FROM 1 TO 20 DO
+1 o S
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; P
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;
MANUAL DE PROGRAMACION HP-PRIME
REPEAT.-
La estructura general de este comando es:
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 ; P
DIMGROB_P (G1,320,240 ) ;
RECT_P (G1,RGB(0,225,0));
REPEAT NO
FOR j FROM 1 TO 120 DO C
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); SI
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;
WHILE.-
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.INICIAL-
GL.FINAL","._CARGA EXTERNA","._EJECUCION","._RESULTADOS","._SALIR");
CASE
IF A == 1 THEN MSGBOX ("OPCION" +1);
END; NO
IF A == 2 THEN MSGBOX ("OPCION" +2); C
END;
IF A == 3 THEN MSGBOX ("OPCION" +3);
END; SI
IF A == 4 THEN MSGBOX ("OPCION" +4);
END;
P1
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;
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;
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
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).
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
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).
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;
EXPORT dobles ( )
BEGIN
i=j
N
+1 o S
EXPORT TITULO ( )
BEGIN
END;
Peo en el ejemplo podemos poner el fondo de color negro para ello haremos uso del comando RECT_P
( ).
EXPORT TITULO ( )
BEGIN
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.
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.
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.
EXPORT FORMA1 ( )
BEGIN
LOCAL Vv, Vs;
INPUT ({Vv, Vs})
END;
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;
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 DE VACIOS",{"Vv:","Vs:"},{"VOLUMEN DE
VACIOS","VOLUMEN DE SOLIDOS"});
END;
EXPORT FORMA6 ()
BEGIN
END;
EXPORT FORMA7 ( )
BEGIN
END;
EXPORT programName ( )
BEGIN
END;
Sintaxis:
BEGIN
stmt1;
stm2;…
stmtN;
END;
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;… Estructura de comandos
stmtN;
END;
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 ¿Pero si quiero todos los
10+20; resultados?
RETURN 10-20;
10*20;
10/20;
END;
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 ¿Cómo mostrar los
resultados en una sola
PRINT("suma:"+(10+20));
PRINT("resta:"+(10-20)); línea?
PRINT("multiplicacion:"+(10*20));
PRINT("division:"+(10/20));
END;
EXPORT programName( )
BEGIN
MANUAL DE PROGRAMACION HP-PRIME
PRINT ("suma:"+(10+20)+" resta:"+(10-20)+" multiplicación:"+(10*20)+" división:"+(10/20));
END;
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.
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})
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á.
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
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;
(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
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.
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
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}; //declaración de variables locales
FOR // define la variable i para en inicio
i //variable de control
FROM // de
1 //1
TO // a
SIZE (L1) //tamaño de la lista (L1)
DO // hacer
IF // si
L1 (i) = 20 // el elemento i de la lista L1 es igual a 20
THEN //entonces
"20" ▶ L1 (i); // el texto (“20”) se guarda en la posición i de la lista L1
i ▶ L2 (k); //la posición i se guarda en la lista L2 en la posición k
k:=k+1; //el valor de k se incrementa en una unidad para ser guardada en la variable k
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); // {"0","0.","0.1","0.12","0.125"}
END;
END;
EXPORT programName ( )
BEGIN
LOCAL NUMER:="0.125", j,CIFRAS:={};
FOR
j
FROM
1
TO
DIM (NUMER)
DO
MID (NUMER, j, 1) ▶CIFRAS (j); // {"0",".","1","2","5"}
END;
END;
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)
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;
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;
Ejemplos: haciendo uso del comando CHOOSE crear una caja de selección dentro de otra caja de
selección.
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
EXPORT programName()
BEGIN
LOCAL MA_TRIZ:=[[0,0]];
EDITMAT( MA_TRIZ,{"COORDENADAS",{},{"X","Y",""}});
END;
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;
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
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
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));
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;
Para ver los otros tipos de datos es necesario cargar los datos necesarios.
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
𝑀𝑢
𝐴𝑠 =
∅. 𝑓𝑦 . (𝑑 − 𝑎/2)
𝐴𝑠 . 𝑓𝑦
𝑎=
0.85. 𝑓𝑐 . 𝑏
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);
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
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