Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
EXPORT programName ()
BEGIN
LOCAL TEXT_MOSTAR:="MANUAL DE PROGRAMACION HP-PRIME ESCRIBIR EN PANTALLA-2019";
DIMGROB_P(G1,640,240,RGB(255,255,255));
TEXTOUT_P(TEXT_MOSTAR,G1,0,100,2,RGB(0,0,255));
BLIT_P(G0,G1,320,0);
FREEZE;
END;
1: fuente pequeña
2: fuente grande.
EXPORT programName()
BEGIN
LOCAL SI;
LOCAL TEXT_ESCRI:="MANUAL DE PROGRAMACION HP PRIME";
DIMGROB_P(G1,320,240,RGB(255,255,255));
SI:=TEXTOUT_P(TEXT_ESCRI,G1,10,50,2,RGB(0,0,255),320,RGB(255,255,255));
TEXTOUT_P("PRONTO",G1,SI+2,50,2,RGB(0,0,255),320,RGB(255,255,255));
BLIT_P(G0,G1);
FREEZE;
END;
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
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 {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). El índice de
parámetros opcional es el elemento n-ésimo que se devolvería (x, y, x original, etc.) si se hubiera omitido
el parámetro (o –1 si no se registra actividad del puntero).
Ejemplo 4.-en este ejemplo se muestra lo que hace el comando MOUSE, para el
cual se ha agregado el comando WAIT (), para evitar el parpadeo de la pantalla.
EXPORT programName()
BEGIN
DIMGROB_P(G1,320,240,RGB(0,0,0));
BLIT_P(G0,G1);
DRAWMENU("","","","BORRAR","ATRAS","OK");
LOCAL TACTIL;
LOCAL TOCAR;
REPEAT
TACTIL:=WAIT(-1);
TOCAR:=MOUSE();
BLIT_P(G0,G1);
TEXTOUT_P(B→R(TACTIL),G0,50,60,5,RGB(255,255,255),250,RGB(0,0,0));
TEXTOUT_P(B→R(TOCAR),G0,5,120,3,RGB(255,255,255),320,RGB(0,0,0));
DRAWMENU("","","","BORRAR","ATRAS","OK");
UNTIL
ISKEYDOWN(4)
END;
END;
OBSERVACIONES
Al iniciar el programa solo aparare el la pantalla de graficos con el menu en la parte inferior,eso se debe por
que se a colocado el comando WAIT() que detiene la ejecucion del programa.
Para poder ver lo que hace el comando MOUSE ,si no se presiona la pantalla (no hay actividad del
mouse),no tocar la pantalla durante un minuto y aparecera como que se muesra en la figura {{},{}}.
ICON name5L
89504E470D0A1A0A0000000D494844520000002A000000140103000000C17D3DC500000006504C5445
FFFBF0000000F82165E
80000000274524E5300007693CD380000005649444154780175CEB10D80300C44D12FA5A0CC081925A
3304AB2012BB10123843128900F2720A8A89E2C59FAC724E980E89C901C83AC3D098AB6A68AB434AD
4E1CD883BF0EDA3F16BEAB742AB9E32163B6377B8FB80059885C7192B359A10000000049454E44AE42
6082;
ICON name6L
89504E470D0A1A0A0000000D494844520000002A000000140103000000C17D3DC500000006504C5445
FFFBF0000000F82165E80000000274524E5300007693CD380000004D49444154780155CEB11180300C4
3D1DF516604466134329AB7610452E410068B0237EF72B6E5B0481AD092096B72C19608F6878E744A9
11C45B4975EF07BB9E749EF65C517E6681FF2D9FAC40D3F905C8C788CCEC60000000049454E44AE4260
82;
ICON name7L
89504E470D0A1A0A0000000D494844520000002A000000140103000000C17D3DC500000006504C5445
FFFBF0000000F82165E80000000274524E5300007693CD38000000544944415478012DCEBB1180300C0
35075D06501EE324A464B26E3330B4340C14558B61BBF7361C95848BE40313EA01A136806812E063479
8A23A8CE5E9CCDB7B936DFEC468C38B8825B743E0ACBE82CCADA78E20724BF5BCB5C25E3160000000
049454E44AE426082;
LOCAL CAS_MEN:={{181,215,223,235},{225,215,267,235},{269,215,311,235}};
EXPORT programName()
BEGIN
DIMGROB_P(G2,320,240,RGB(255,255,255));
BLIT_P(G2,CAS_MEN(1,1),CAS_MEN(1,2),CAS_MEN(1,3),CAS_MEN(1,4),"name5L");
BLIT_P(G2,CAS_MEN(2,1),CAS_MEN(2,2),CAS_MEN(2,3),CAS_MEN(2,4),"name6L");
BLIT_P(G2,CAS_MEN(3,1),CAS_MEN(3,2),CAS_MEN(3,3),CAS_MEN(3,4),"name6L");
LOCAL j;
FOR j FROM 1 TO 3 DO
TEXTOUT_P("L:",G2,10+j,192-j,2,RGB(192,192,192),120);
RECT_P(G2,25+j,190-j,65+j,170-j+35,RGB(0,0,0),RGB(0,0,0));
END;
TEXTOUT_P("L:",G2,10,192,2,RGB(0,0,255),120);
RECT_P(G2,25,190,65,205,RGB(0,0,0),RGB(255,255,255));
RECT_P(G2,20,217,110,232,RGB(255,255,255),RGB(255,255,255));
TEXTOUT_P("1:",G2,10,222,1,RGB(0,0,0),120,RGB(255,255,255));
BLIT_P(G0,G2);
FREEZE;
END;
1: EXPORT programName()
2: BEGIN
3: DIMGROB_P(G1,320,240,RGB(255,255,255));
4: BLIT_P(G0,G1);
5: LOCAL TECLA;
6: LOCAL POS:=100;
7: REPEAT
8: TECLA:=GETKEY;
9: CASE
10: IF TECLA = 42
11: THEN
12: POS:=TEXTOUT_P("1",G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
13: END;
14: END;
15: UNTIL
16: TECLA= 4
17: END;
18: END;
EXPORT programName()
BEGIN
DIMGROB_P(G1,320,240,RGB(255,255,255));
BLIT_P(G0,G1);
LOCAL TECLA;
LOCAL POS:=100;
REPEAT
TECLA:=GETKEY;
CASE
IF TECLA = 42 THEN
POS:=TEXTOUT_P("1",G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 43 THEN
POS:=TEXTOUT_P("2", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 44 THEN
POS:=TEXTOUT_P("3", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 37 THEN
POS:=TEXTOUT_P("4", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 38 THEN
POS:=TEXTOUT_P("5", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 39 THEN
POS:=TEXTOUT_P("6", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 32 THEN
POS:=TEXTOUT_P("7", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 33 THEN
POS:=TEXTOUT_P("8", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 34 THEN
POS:=TEXTOUT_P("9", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 47 THEN
POS:=TEXTOUT_P("0", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
IF TECLA = 48 THEN
POS:=TEXTOUT_P(".",G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
END;
END;
UNTIL TECLA= 4
END;
END;
Ejemplo 8.-escribir en pantalla, el numero 11111 Y borrar
1: EXPORT programName()
2: BEGIN
3: DIMGROB_P(G1,320,240,RGB(255,255,255));
4: BLIT_P(G0,G1);
5: LOCAL TECLA;
6: LOCAL POS:=100;
7: LOCAL POS_LIST:={100};
8: LOCAL INC:=1;
9: REPEAT
10: TECLA:=GETKEY;
11: CASE
12: IF TECLA = 42
13: THEN
14: POS:=TEXTOUT_P("1",G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
15: INC:=INC+1;
16: POS ▶ POS_LIST(INC);
17: END;
18: IF TECLA = 19 AND SIZE(POS_LIST)>1
19: THEN
20: INC:=INC-1;
21: TEXTOUT_P("1",G0,POS_LIST(INC),200,7,RGB(255,255,255),50,RGB(255,255,255));
22: POS_LIST:=tail(revlist(POS_LIST));
23: POS_LIST:=revlist(POS_LIST);
24: POS:=POS_LIST(INC);
25: END;
26: IF TECLA = 50
27: THEN
28: TEXTOUT_P(POS_LIST,G0,50,20,3,RGB(0,0,255),320,RGB(255,255,255));
29: END;
30: END;
31: UNTIL TECLA= 4
32: END;
33: END;
EXPORT programName()
BEGIN
DIMGROB_P(G1,320,240,RGB(255,255,255));
BLIT_P(G0,G1);
LOCAL TECLA;
LOCAL POS:=100;
LOCAL POS_LIST:={100};
LOCAL INC:=1;
REPEAT
TECLA:=GETKEY;
CASE
IF TECLA = 42 THEN
POS:=TEXTOUT_P("1",G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 43 THEN
POS:=TEXTOUT_P("2", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 44 THEN
POS:=TEXTOUT_P("3", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 37 THEN
POS:=TEXTOUT_P("4", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 38 THEN
POS:=TEXTOUT_P("5", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 39 THEN
POS:=TEXTOUT_P("6", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 32 THEN
POS:=TEXTOUT_P("7", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 33 THEN
POS:=TEXTOUT_P("8", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 34 THEN
POS:=TEXTOUT_P("9", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 47 THEN
POS:=TEXTOUT_P("0", G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 48 THEN
POS:=TEXTOUT_P(".",G0, G0,POS,200,7,RGB(0,0,255),50,RGB(255,255,255));
INC:=INC+1;
POS ▶ POS_LIST(INC);
END;
IF TECLA = 19 AND SIZE(POS_LIST)>1 THEN
INC:=INC-1;
TEXTOUT_P("1",G0,POS_LIST(INC),200,7,RGB(255,255,255),50,RGB(255,255,255));
POS_LIST:=tail(revlist(POS_LIST));
POS_LIST:=revlist(POS_LIST);
POS:=POS_LIST(INC);
END;
IF TECLA = 50 THEN
TEXTOUT_P(POS_LIST,G0,50,20,3,RGB(0,0,255),320,RGB(255,255,255));
END;
END;
UNTIL TECLA= 4
END;
END;
ICON name5
89504E470D0A1A0A0000000D494844520000002A000000140103000000C17D3DC500000006504C5445
FFFBF0000000F82165E80000000274524E5300007693CD380000005649444154780175CEB10D80300C4
4D12FA5A0CC081925A3304AB2012BB10123843128900F2720A8A89E2C59FAC724E980E89C901C83AC3
D098AB6A68AB434AD4E1CD883BF0EDA3F16BEAB742AB9E32163B6377B8FB80059885C7192B359A100
00000049454E44AE426082;
ICON name6
89504E470D0A1A0A0000000D494844520000002A000000140103000000C17D3DC500000006504C5445
FFFBF0000000F82165E80000000274524E5300007693CD380000004D49444154780155CEB11180300C4
3D1DF516604466134329AB7610452E410068B0237EF72B6E5B0481AD092096B72C19608F6878E744A9
11C45B4975EF07BB9E749EF65C517E6681FF2D9FAC40D3F905C8C788CCEC60000000049454E44AE4260
82;
ICON name7
89504E470D0A1A0A0000000D494844520000002A000000140103000000C17D3DC500000006504C5445
FFFBF0000000F82165E80000000274524E5300007693CD38000000544944415478012DCEBB1180300C0
35075D06501EE324A464B26E3330B4340C14558B61BBF7361C95848BE40313EA01A136806812E063479
8A23A8CE5E9CCDB7B936DFEC468C38B8825B743E0ACBE82CCADA78E20724BF5BCB5C25E3160000000
049454E44AE426082;
LOCAL
CA_MEN:={{5,215,47,235},{49,215,91,235},{93,215,135,235},{137,215,179,235},{181,215,223,235},{225,
215,267,235},{269,215,311,235}};
EXPORT programName()
BEGIN
LOCAL j;
DIMGROB_P(G4,320,240,RGB(255,255,255));
BLIT_P(G4,CA_MEN(5,1),CA_MEN(5,2),"name5");
BLIT_P(G4,CA_MEN(6,1),CA_MEN(6,2),"name6");
BLIT_P(G4,CA_MEN(7,1),CA_MEN(7,2),"name7");
FOR j FROM 1 TO 4 DO
TEXTOUT_P("NC:",G4,20+j,180-j+2,2,RGB(192,192,192),120);
RECT_P(G4,40+j,180-j,40+j+25,180-j+15,RGB(0,0,0),RGB(255,255,255));
TEXTOUT_P("Xo:",G4,75+j,180-j+2,2,RGB(192,192,192),120);
RECT_P(G4,90+j,180-j,90+j+40,180-j+15,RGB(255,255,255),RGB(0,0,0));
TEXTOUT_P("Wo:",G4,140+j,180-j+2,2,RGB(192,192,192),120);
RECT_P(G4,160+j,180-j,160+j+40,180-j+15,RGB(255,255,255),RGB(0,0,0));
TEXTOUT_P("Xf:",G4,75+j,180-j+2+20,2,RGB(192,192,192),120);
RECT_P(G4,90+j,180-j+16,90+j+40,180-j+15+16,RGB(0,0,0),RGB(255,255,255));
TEXTOUT_P("Wf:",G4,140+j,180-j+2+20,2,RGB(192,192,192),120);
RECT_P(G4,160+j,180-j+16,160+j+40,180-j+15+16,RGB(0,0,0),RGB(255,255,255));
END;
TEXTOUT_P("1:",G4,1,220+2,2,RGB(0,0,0),120,RGB(255,255,255));
RECT_P(G4,1,178,1+15,178+15,RGB(0,0,0),RGB(255,255, 255));
TEXTOUT_P("◀",G4,1,170+2,7,RGB(0,0,255),120);
RECT_P(G4,210,178,210+15,178+15,RGB(0,0,0),RGB(255,255,255));
TEXTOUT_P("▶",G4,210,170+2,7,RGB(0,0,255),120);
TEXTOUT_P("NC:",G4,20,180+2,2,RGB(255,0,0),120);
RECT_P(G4,40,180,40+25,180+15,RGB(0,0,0),RGB(255,255,255));
TEXTOUT_P("1",G4,45,180+5,1,RGB(255,0,0),120);
TEXTOUT_P("Xo:",G4,75,180+2,2,RGB(0,0,255),120);
RECT_P(G4,90,180,90+40,180+15,RGB(0,0,0),RGB(255,255,255));
TEXTOUT_P("Wo:",G4,140,180+2,2,RGB(0,0,255),120);
RECT_P(G4,160,180,160+40,180+15,RGB(0,0,0),RGB(255,255,255));
TEXTOUT_P("Xf:",G4,75,180+2+20,2,RGB(0,0,255),120);
RECT_P(G4,90,180+16,90+40,180+15+16,RGB(0,0,0),RGB(255,255,255));
TEXTOUT_P("Wf:",G4,140,180+2+20,2,RGB(0,0,255),120);
RECT_P(G4,160,180+16,160+40,180+15+16,RGB(0,0,0),RGB(255,255,255));
BLIT_P(G0,G4);
FREEZE;
END;
QUE ES PROGRAMACION MODULAR
Uno de los métodos más conocidas para resolver un problema es dividirlo en problemas más pequeños,
llamados subproblemas, de esta manera, en lugar de resolver una tarea compleja y tediosa, resolveremos
otras más sencilla y a partir de ellas llegamos a la solución .esta técnica se usa mucho en programación ya
que programar no es más que resolver problemas, y se le suele llamar diseño descendente, metodología
divide y vencerás o programación top-Down. Es evidente que si esta metodología nos lleva a tratar con
subproblemas, entonces también tengamos necesidad de poder crear y trabajar con subprogramas para
resolverlos .a estos subprogramas se les suele llamar módulos, de ahí viene el nombre de programación
modular.
Los procedimientos
Un procedimiento es un subprograma que realiza una tarea específica .para invocarlo, es decir, para hacer
que se ejecute, basta con escribir su nombre en el cuerpo de otro procedimiento o en el programa
principal .pero hay que tener en cuenta que su declaración debe hacerse antes de que sea llamado por
otro modulo
Para escribir un número en pantalla se requiere una posición inicial horizontal y vertical
1 1 1 1
LOCAL FONDO();
EXPORT programName()
BEGIN
FONDO();
END;
FONDO()
BEGIN
DIMGROB_P(G4,320,240,RGB(255,255,255));
LOCAL j;
FOR j FROM 1 TO 4 DO
TEXTOUT_P("Xo:",G4,75+j,180-j+2,2,RGB(192,192,192),120);
RECT_P(G4,90+j,180-j,90+j+40,180-j+15,RGB(255,255,255),RGB(0,0,0));
END;
TEXTOUT_P("Xo:",G4,75,180+2,2,RGB(0,0,255),120);
RECT_P(G4,90,180,90+40,180+15,RGB(0,0,0),RGB(255,255,255));
BLIT_P(G0,G4);
FREEZE;
END;
1: LOCAL TECLA;
2: LOCAL TOCAR;
3: LOCAL FONDO();
4: EXPORT programName()
5: BEGIN
6: FONDO();
7: REPEAT
8: TECLA:=GETKEY;
9: TOCAR:=MOUSE;
10: CASE
11: IF SIZE(TOCAR(1))=0 THEN
12: END;
13: IF SIZE(TOCAR(1)) THEN
14: END;
15: END;
16: UNTIL TECLA = 4 ;
17: END;
18: END;
19: FONDO()
20: BEGIN
21: //commando del subprogram FONDO().
22: END;
1: Declaración de variable local TECLA
2: Declaración de variable local TOCAR
3: Declaración de variable local FONDO()
4: Se estable como variable global programName()
5: Inicio de programa principal
6: Subprograma FONDO(),este subprograma coloca el fondo de pantalla
7: Inicio de estructura de repetición
8: Asignación de variable (se asigna el código de tecla al presionar una tecla)
9: Asignación de variable (si se toca la pantalla)
10: Inicio de estructura de selección múltiple
11: Si el tamaño de la primera lista es igual a cero(sin elementos) hacer
12: Fin
13: Si el tamaño de la primera lista es igual a uno(un elemento) hacer
14: Fin
15: Fin de la estructura de selección múltiple
16: Hasta que se presión una tecla cuyo código se a 4 (ID 4)
17: Fin de la estructura de repetición
18: Fin del programa principal