TEMAS APLICADOS A INGENIERÍA CIVIL
TALLER DE PROGRAMACIÓN EN LA CALCULADORA HP PRIME
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH CEL: 982925212 GMAIL:
[email protected] WHATSAPP: 982925212
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212
PROGRAMACIÓN EN HP PPL CLASE N°10
TEMA: CÓDIGO FUENTE DE PROGRAMAS
TEMAS ESPECÍFICOS
COMANDOS A UTILIZAR
TEMA DE APLICACIÓN
1. Código fuente clase N°01: EXPORT CLASE_N°01() BEGIN //Declaración de variables LOCAL NA,NB,EA,EB,L,Ang; //Datos asignados directamente NA:=8584272; EA:=7475234; L:=850; Ang:=55; //Proceso de cálculo NB:=NA+L*COS(Ang); EB:=EA+L*SIN(Ang); //Limpiando la pantalla PRINT; //Imprimiendo resultados PRINT("RESULTADOSCOORDENADAS UTM"); PRINT("Norte en B="+EA); PRINT("Este en B="+EB); END;
2. Código fuente clase N°02: EXPORT f(Long,Wo,x) BEGIN //Declaracion de variables
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
Introducción a objetos gráficos Comando FREEZE Comando WAIT(n) Comando RGB Comando RECT_P Comando LINE_P Comando ARC_P Comando TRIANGLE_P Comando FILLPOLY_P Comando TEXTOUT_P Insertar imágenes en la programación LOCAL INPUT PRINT MSGBOX IF FOR WHILE HIDRAÚLICA DE CANALES: Cálculo del caudal de un canal de sección compuesta
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 LOCAL RA,RB,V,M,Y; //Proceso de calculo RA:=Wo*Long/PI; RB:=RA; V:=Wo*Long/PI*COS(PI*X/Long); M:=Wo*Long^2/PI^2*SIN(PI*X/Long); Y:=-Wo*Long^4/PI^4*SIN(PI*X/Long); //Limpiando la pantalla PRINT; //Imprimiendo resultados PRINT("RESULTADOS"); PRINT("Reaccion en A = "+ROUND(RA,3)+"Ton"); PRINT("Reaccion en B = "+ROUND(RB,3)+"Ton"); PRINT("Cortante(V) en el punto "+X+" = "+ROUND(V,3)+"Ton"); PRINT("Momento(M) en el punto "+X+" = "+ROUND(M,3)+"Ton-m"); END;
3. Código fuente clase N°03: EXPORT CLASE_N°03_() BEGIN //Declaracion de variables LOCAL Q,s,n,Z,b; LOCAL Yi, Emax,Ei; LOCAL K,A,P,F,Fd; LOCAL dA,dP,Ymej; //Valores por defecto //Ingreso de datos a traves del comando INPUT INPUT({Q,s,n,Z,b},"CANALES TRAPEZOIDALES",{"Caudal[m3/s]=","Pend.[m/m]=","Rugosidad(n)=","Talud(Z)=","Base[m]="}); //Valores constantes K:=Q*n/s^0.5; //Asiganado valores iniciales Yi:=1; Emax:=0.0001; Ei:=1; I:=1; //Limpiar la pantalla PRINT; //Textos de resultados PRINT("-----------------------------"); PRINT("RESULTADOS"); PRINT("-----------------------------"); //Manejo del comando WHILE WHILE Ei>Emax DO A:=b*Yi+Z*Yi^2; dA:=b+2*Yi*Z; P:=b+2*Yi*(1+Z^2)^0.5; dP:=2*(1+Z^2)^0.5; F:=A^(5/3)*P^(-2/3)-K; Fd:=(5/3)*A^(2/3)*P^(-2/3)*dA-(2/3)*A^(5/3)*P^(-5/3)*dP; Ymej:=Yi-F/Fd; //Imprimir iteraciones PRINT("Iteración N°"+I); PRINT("Area="+A); PRINT("Perimetro="+P); PRINT("Tirante="+Ymej); PRINT("-----------------------------"); Ei:=Yi-Ymej; Yi:=Ymej; I:=I+1; END; //Imprimir resultado PRINT("RESULTADOS FINALES"); PRINT("Tirante="+ROUND(Ymej,3)); PRINT("Area mojada="+ROUND(A,3));
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 PRINT("Perimetro mojado="+ROUND(P,3)); PRINT("Espejo de agua="+ROUND((b+2*Ymej*Z),3)); PRINT("Radio hidraulico="+ROUND(A/P,3)); PRINT("Velocidad="+ROUND(Q/A,3)) END;
4. Código fuente clase N°04: //Código fuente Ecuacion de Colebrook White EXPORT CLASE_N°04_COLEBROOK() BEGIN //Declaracion de variables LOCAL Re,D,K,Emax; LOCAL F,FD,Xmej,Xi,Ei; //Valores por defecto Re:=2500; D:=203; K:=0.16; //Entrada de datos con INPUT INPUT({Re,D,K,Emax},"Colebrook White",{"Reynolds=","Diametro=","Rugosidad=","Emax="}); //Valores constantes A:=K/(3.7*D); B:=2.51/Re; //Valores iniciales Ei:=1; Xi:=1; //Limpiando al pantalla y colocando textos PRINT; PRINT("-----------------------------"); PRINT("RESULTADOS"); PRINT("-----------------------------"); //Aplicando el coma do FOR FOR I FROM 1 TO 40 DO //Definiendo la funcion F:=2*LOG(A+B*Xi)+Xi; //Definiendo la derivada de la funcion FD:=1+2*B/((A+B*Xi)*LN(10)); //Aplicando la fórmula de Newton Raphson Xmej:=Xi-F/FD; //Reemplazamos el Ei Ei:=1/Xi^2-1/Xmej^2; //Imprimiendo iteraciones PRINT("ITERACION N°"+I); PRINT("Fricción="+1/Xmej^2); PRINT("Error="+Ei); PRINT("-----------------------------"); //Condionando con el comando IF IF Ei<Emax THEN I:=41; END; //Asigamos nuevo valor a Xi Xi:=Xmej; END; //Resulatados finales PRINT("Resultado final"); PRINT("La fricción es="+1/Xmej^2); END;
5. Código fuente clase N°05: EXPORT CLASE_N°05() BEGIN //Declaración de variables LOCAL MENU,f,a,b,Emax; LOCAL Ei,F,fd,Fd,Xmej;
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 LOCAL Pf,Nr,B,s,Nm; REPEAT CHOOSE(MENU,"FUNCIONES","DATOS INCIALES","CALCULAR","RESULTADOS","SALIR"); //DATO INICIALES IF MENU==1 THEN //Manejo del comando INPUT INPUT({ {f ,[8],{20,25,1}}, {X ,[0],{20,25,2}}, {Emax,[0],{20,25,3}}, {a ,[0],{20,25,4}}, {b ,[0],{20,25,5}}, {Pf ,0,{80,0,1}}, {Nr ,0,{80,0,2}}, {B ,0,{80,0,3}}, {s ,0,{80,0,4}}}, "DATOS INICIALES", {"Fun.=","Xi=","Emax=","a=","b=","P. Fijo=","N. Raphson=","Bisecc.=","Secante="}); END; //CALCULAR IF MENU=2 THEN //Condicional para Newton Raphason IF Nr==1 THEN Nm:="Newton Raphson"; fd:=CAS.diff(f,X); Ei:=1; //Aplicando comando WHILE WHILE Ei>Emax DO F:=EVAL(f); Fd:=EVAL(fd); Xmej:=X-F/Fd; Ei:=ABS(X-Xmej); X:=Xmej; END; MSGBOX("Cálculo realizado con éxito!!!"); END; END; //RESULTADOS IF MENU==3 THEN //Limpiar la pantalla PRINT; //Imprimiendo resultados PRINT("RESULTADOS"); PRINT(""); PRINT("Método="+Nm); PRINT("La función es="+f); PRINT("La derivada de la función es="+fd); PRINT("La raiz de la función es="+X); //Congelando la pantalla para visualizar WAIT(-1); END; UNTIL MENU==4; END;
6. Código fuente clase N°06: //CODIGO FUENTE DISEÑO DE CANALES EXPORT CLASE_N°06_CANALES() BEGIN //Declaracion de variables LOCAL MENU; LOCAL Q,s,n,Z,b; LOCAL Yi, Emax,Ei; LOCAL K,A,P,F,Fd; LOCAL dA,dP,Ymej;
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 LOCAL MR; REPEAT CHOOSE(MENU,"CANALES VARIAS SECCIONES",{"DATOS INICIALES","CALCULAR","ITERACIONES","RESULTADOS","SALIR"}); //Datos inciales IF MENU==1 THEN //Datos por defecto Q:=3; s:=0.01; n:=0.014; Z:=1; b:=1.5; //Ingreso de datos a traves del comando INPUT INPUT({ {Q,[0],{40,20,1}}, {s,[0],{40,20,2}}, {n,[0],{40,20,3}}, {Z,[0],{40,20,4}}, {b,[0],{40,20,5}} }, "CANALES TRAPEZOIDALES", {"Caudal[m3/s]=","Pend.[m/m]=","Rugos.(n)=","Talud(Z)=","Base[m]="}); END; //Calcular IF MENU==2 THEN //Valores constantes K:=Q*n/s^0.5; //Asiganado valores iniciales Yi:=1; Emax:=0.0001; Ei:=1; I:=1; //Crear la matriz MR:=[[0]]; //Manejo del comando WHILE WHILE Ei>Emax DO A:=b*Yi+Z*Yi^2; dA:=b+2*Yi*Z; P:=b+2*Yi*(1+Z^2)^0.5; dP:=2*(1+Z^2)^0.5; F:=A^(5/3)*P^(-2/3)-K; Fd:=(5/3)*A^(2/3)*P^(-2/3)*dA-(2/3)*A^(5/3)*P^(-5/3)*dP; Ymej:=Yi-F/Fd; Ei:=Yi-Ymej; MR(I,1):=Yi; //Tirante inicial MR(I,2):=A; //Area MR(I,3):=dA; //Dife. Area MR(I,4):=P; //Perimetro MR(I,5):=dP; //Dif. Perimetro MR(I,6):=F; //Funcion MR(I,7):=Fd; //Funcion derivada MR(I,8):=Ymej; //Tirante mejorada Yi:=Ymej; I:=I+1; END; MSGBOX("Calculo realizado con éxito!!!"); END; //Iteraciones IF MENU==3 THEN MR:=ROUND(MR,4); EDITMAT(MR,{"ITERACIONES",{},{"Yi[m]","A[m2]","dA","P[m]","dP","F","Fd","Yf[m]",""}}); END; //Resultados IF MENU==4 THEN PRINT; PRINT("--------------------------"); PRINT("RESULTADOS FINALES"); PRINT("--------------------------");
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 PRINT("Tirante="+ROUND(Ymej,3)); PRINT("Area mojada="+ROUND(A,3)); PRINT("Perimetro mojado="+ROUND(P,3)); PRINT("Espejo de agua="+ROUND((b+2*Ymej*Z),3)); PRINT("Radio hidraulico="+ROUND(A/P,3)); PRINT("Velocidad="+ROUND(Q/A,3)); WAIT(-1); END; UNTIL MENU==5; MSGBOX("Gracias por su preferencia!!!"); END;
7. Código fuente clase N°07: EXPORT CLASE_N°01_ARMADURAS() BEGIN //Declaracion de variables LOCAL Teta, Bet, MENU, MF,MR,k; REPEAT //Apliando el comando CHOOSE CHOOSE(MENU,"ARMADURAS",{"DATOS INICIALES","DATOS DE FUERZAS","CALCULAR","TABLAS","RESULTADOS","SALIR"}); //Datos iniciales IF MENU==1 THEN INPUT({ {Teta,[0],{40,10,2}}, {Bet,[0],{40,10,3}}}, "DATOS INCIALES", {"Áng. Teta=","Áng. Beta="}); END; //Datos de fuerzas IF MENU==2 THEN MF:=MAKEMAT(0,6,1); EDITMAT(MF,{"FUERZAS EXTERNAS",{"F1-H","F1-V","F2-H","F2-V","F3-H","F3-V",""},{"F[Ton]",""}}); END; //Calcular IF MENU==3 THEN //Implementado la Matriz K k:=[[COS(Teta),0,-COS(Bet),0,0,0], [SIN(Teta),0,SIN(Bet),0,0,0], [-COS(Teta),-1,0,-1,0,0], [-SIN(Teta),0,0,0,-1,0], [0,1,COS(Bet),0,0,0], [0,0,-SIN(Bet),0,0,-1]]; //Proceso de cálculo MR:=MF/k; MSGBOX("Calculo realizado con éxito!!!"); END; //Tablas IF MENU==4 THEN LOCAL MENU1; REPEAT CHOOSE(MENU1,"TABLAS",{"MATRIZ [K]","MATRIZ FUERZA EXTERNA","VOLVER"}); IF MENU1==1 THEN EDITMAT(k,{"MATRIZ [K]",{},{}}); END; IF MENU1==2 THEN EDITMAT(MF,{"FUERZAS EXTERNAS",{"F1-H","F1-V","F2-H","F2-V","F3-H","F3-V",""},{"F[Ton]",""}}); END; UNTIL MENU1==3; END ; //Resulatados IF MENU==5 THEN
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 LOCAL IT; PRINT; PRINT("....................................................."); PRINT("RESULTADOS FINALES"); PRINT("....................................................."); FOR I FROM 1 TO 6 DO IF I<=3 THEN IT:="Barra N°"+I+"="; ELSE IT:="Reacción=" END; PRINT(IT+MR(I,1)); END; WAIT(-1); END; UNTIL MENU==6; END;
8. Código fuente clase N°08: EXPORT CLASE_N°08() BEGIN //Declaracion de variables LOCAL MENU,n,s,Nc,MC; LOCAL Lx,Sa1,Sa2,A,P,Q; LOCAL T,R,V; //Uso de comando CHOOSE REPEAT CHOOSE(MENU,"SECCIONES COMPUESTAS",{"DATOS INICIALES","COORDENADAS","CALCULAR","RESULTADOS","SALIR"}); //Datos iniciales IF MENU==1 THEN INPUT({ {Nc,[0],{50,20,2}}, {n ,[0],{50,20,3}}, {s ,[0],{50,20,4}}}, "DATOS INICIALES", {"N° de coordenadas=","Rugosidad=","Pendiente="}); END; //Coordenadas IF MENU==2 THEN //Filas Lx:={0}; FOR I FROM 1 TO Nc DO Lx(I):="C-"+I; END; Lx(I):=""; MC:=MAKEMAT(0,Nc,2); EDITMAT(MC,{"COORDENADAS",Lx,{"X[m]","Y[m]",""}}); END; //Calcular IF MENU==3 THEN //Creando una copia de la fila una de la Matriz coordendas MC(Nc+1,1):=MC(1,1); //Copia de la fila 1 columna 1 MC(Nc+1,2):=MC(1,2); //Copia de la fila 1 columna 2 Sa1:=0; Sa2:=0; P:=0; FOR I FROM 1 TO Nc DO Sa1:=Sa1+MC(I,1)*MC(I+1,2); Sa2:=Sa2+MC(I+1,1)*MC(I,2); P:=P+((MC(I+1,1)-MC(I,1))^2+(MC(I+1,2)-MC(I,2))^2)^0.5; END; A:=ABS(0.5*(Sa1-Sa2)); //Cálculo de todos los elementos
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 Q:=A^(5/3)*P^(-2/3)*s^(1/2)/n; T:=((MC(1,1)-MC(Nc,1))^2+(MC(1,2)-MC(Nc,2))^2)^0.5; P:=P-T; R:=A/P; V:=Q/A; MSGBOX("Cálculo realizado con éxito!!!"); END; //Resultados finales IF MENU==4 THEN PRINT; PRINT("---------------------"); PRINT("RESULTADOS"); PRINT("---------------------"); PRINT("El caudal="+ROUND(Q,3)); PRINT("Area="+ROUND(A,3)); PRINT("Perimetro="+ROUND(P,3)); PRINT("Espejo de agua="+ROUND(T,3)); PRINT("Radio Hidraúlico="+ROUND(R,3)); PRINT("Velocidad="+ROUND(V,3)); WAIT(-1); END; UNTIL MENU==5; END;
9. Código fuente clase N°09: EXPORT CLASE_N°09() BEGIN //Declaracion de variables LOCAL MENU,n,s,Nc,MC; LOCAL Lx,Sa1,Sa2,A,P,Q; LOCAL T,R,V,MCC; LOCAL Cx,Cy,LC,LCC,I; //Uso de comando CHOOSE REPEAT CHOOSE(MENU,"SECCIONES COMPUESTAS",{"DATOS INICIALES","COORDENADAS","CALCULAR","RESULTADOS","GRAFICA","SALIR"}); //Datos iniciales IF MENU==1 THEN Nc:=4; n:=0.0016; s:=0.01; INPUT({ {Nc,[0],{50,20,2}}, {n ,[0],{50,20,3}}, {s ,[0],{50,20,4}}}, "DATOS INICIALES", {"N° de coordenadas=","Rugosidad=","Pendiente="}); END; //Coordenadas IF MENU==2 THEN //Filas Lx:={0}; FOR I FROM 1 TO Nc DO Lx(I):="C-"+I; END; Lx(I):=""; MC:=MAKEMAT(0,Nc,2); //MC:=[[0,0],[0,3],[3,3],[3,0]]; MC:=M1; EDITMAT(MC,{"COORDENADAS",Lx,{"X[m]","Y[m]",""}}); MCC:=MC; M1:=MC; END; //Calcular IF MENU==3 THEN
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 //Creando una copia de la fila una de la Matriz coordendas MC(Nc+1,1):=MC(1,1); //Copia de la fila 1 columna 1 MC(Nc+1,2):=MC(1,2); //Copia de la fila 1 columna 2 Sa1:=0; Sa2:=0; P:=0; FOR I FROM 1 TO Nc DO Sa1:=Sa1+MC(I,1)*MC(I+1,2); Sa2:=Sa2+MC(I+1,1)*MC(I,2); P:=P+((MC(I+1,1)-MC(I,1))^2+(MC(I+1,2)-MC(I,2))^2)^0.5; END; A:=ABS(0.5*(Sa1-Sa2)); //Cálculo de todos los elementos Q:=A^(5/3)*P^(-2/3)*s^(1/2)/n; T:=((MC(1,1)-MC(Nc,1))^2+(MC(1,2)-MC(Nc,2))^2)^0.5; P:=P-T; R:=A/P; V:=Q/A; //Graficando el poligono Cx:=250/10; Cy:=Cx; //Compensando las coordenasa FOR I FROM 1 TO Nc DO MCC(I,1):=MCC(I,1)*Cx; MCC(I,2):=MCC(I,2)*Cy; END; MSGBOX("Cálculo realizado con éxito!!!"); END; //Resultados finales IF MENU==4 THEN PRINT; PRINT("---------------------"); PRINT("RESULTADOS"); PRINT("---------------------"); PRINT("El caudal="+ROUND(Q,3)); PRINT("Area="+ROUND(A,3)); PRINT("Perimetro="+ROUND(P,3)); PRINT("Espejo de agua="+ROUND(T,3)); PRINT("Radio Hidraúlico="+ROUND(R,3)); PRINT("Velocidad="+ROUND(V,3)); WAIT(-1); END; //GRAFICA IF MENU==5 THEN RECT; RECT_P(0,0,320,240,RGB(0,0,0)); FOR I FROM 1 TO 240 DO LINE_P(0,I,315,I,RGB(0,I+2,I)); END; LINE_P(5,5,315,5,RGB(255,255,0)); LINE_P(5,235,315,235,RGB(255,255,0)); FOR I FROM 1 TO 2 DO TEXTOUT_P("GRÁFICA DE LA SECCIÓN DEL CANAL",50+I,15+I,2,RGB(0,128,255)); END ; TEXTOUT_P("GRÁFICA DE LA SECCIÓN DEL CANAL",53,18,2,RGB(255,255,255)); //Eje Y LINE_P(40,70,40,195,RGB(255,255,0)); //Eje X LINE_P(40,195,290,195,RGB(255,255,0)); //Lineas horizonatales y textos horizontales FOR I FROM 0 TO 4 DO LINE_P(40,70+25*I,290,70+25*I,RGB(128,128,128)); TEXTOUT_P(I,30,70+25*I,1,RGB(0,128,192)); END; //Lineas Verticales FOR I FROM 1 TO 10 DO
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 LINE_P(40+25*I,70,40+25*I,195,RGB(128,128,128)); TEXTOUT_P(I,35+25*I,205,1,RGB(0,128,192)); END; //Grafica de la seccion FOR I FROM 1 TO Nc-1 DO LINE_P(40+MCC(I,1), 70+MCC(I,2), 40+MCC(I+1,1), 70+MCC(I+1,2), RGB(0,112,166)); END; //Grafica de textos FOR I FROM 1 TO Nc DO TEXTOUT_P(I,32+MCC(I,1), 70+MCC(I,2),1, RGB(0,255,255)); ARC_P(40+MCC(I,1), 70+MCC(I,2),1,RGB(255,0,0)); END; TEXTOUT_P("SECCION A-A",130,218,2,RGB(255,255,0)); TEXTOUT_P("Profunidad[m]",5,50,1,RGB(255,255,255)); TEXTOUT_P("Distancia[m]",260,215,1,RGB(255,255,255)); WAIT(-1); END; UNTIL MENU==6; END;
10. Código fuente clase N°10:
//CREACION DE FUNCIONES Marcoh(Y) BEGIN LINE_P(5,Y,315,Y,RGB(0,255,255)); END; Marcov(X) BEGIN LINE_P(X,5,X,235,RGB(0,255,255)); END; Campoh(Y) BEGIN LINE_P(90,Y,230,Y,RGB(0,255,255)); END; Campov(X) BEGIN LINE_P(X,60,X,200,RGB(0,255,255)); END; Flechax(X,Y,j) BEGIN FOR I FROM 0 TO 4 DO LINE_P(X-j*I,Y-j*I,X-j*I,Y+j*I,RGB(255,255,0)); END; END; Flechay(X,Y,j) BEGIN FOR I FROM 0 TO 4 DO LINE_P(X+j*I,Y-j*I,X-j*I,Y-j*I,RGB(255,255,0)); END; END; EXPORT CLASE_N°10_() BEGIN //Declaracion de variables LOCAL MENU,F; LOCAL Lx,Ly,fi,Lxn,Lyn,fin; LOCAL Cx,Cy,Lxc,Lyc; REPEAT CHOOSE(MENU,"GRAFICA DE FUNCIONES",{"DATOS INICIALES","CALCULAR","GRÁFICA","TABULACIONES","SALIR"}); //Datos iniciales IF MENU==1 THEN INPUT({ {F,[8],{40,50,3}}}, "DATOS INICIALES", {"Función="}); END; IF MENU==2 THEN
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 //Evaluacion de la función para positivos Lx:={0}; Ly:={0}; FOR I FROM 1 TO 20 DO X:=I; fi:=EVAL(F); Lx(I):=X; Ly(I):=fi; END; //Copia de Listas Lxc:=ROUND(Lx,3); Lyc:=ROUND(Ly,3); //Evaluacion de la funcion para negativos Lxn:={0}; Lyn:={0}; FOR I FROM 1 TO 20 DO X:=-I; fin:=EVAL(F); Lxn(I):=X; Lyn(I):=fin; END; //Compensación de las coordendas Cx:=70/MAX(Lx); Cy:=70/MAX(Ly); //Valores compensados Lx:=Lx*Cx; Ly:=Ly*Cy; Lxn:=Lxn*Cx; Lyn:=Lyn*Cy; MSGBOX("Cálculo realizado con éxito!!!"); END; //Grafica de la funcion IF MENU==3 THEN //Creacion del rectangulo RECT; RECT_P(0,0,320,240,RGB(0,0,0)); //Texto del titulo FOR I FROM 1 TO 3 DO TEXTOUT_P("GRÁFICA DE LA FUNCIÓN",80+I,20+I,2,RGB(255,255,255)); END; TEXTOUT_P("GRÁFICA DE LA FUNCIÓN",83,23,2,RGB(192,192,192)); //Creacion de los marcos Marcoh(5); Marcoh(235); Marcov(5); Marcov(315); //Creando el campo Campoh(60); Campoh(200); Campov(90); Campov(230); //Creando ejes LINE_P(90,130,230,130,RGB(255,255,0)); LINE_P(160,60,160,200,RGB(255,255,0)); //Graficando la flecha Flechax(230,130,1); Flechax(90,130,-1); Flechay(160,200,1); Flechay(160,60,-1); FOR I FROM 1 TO 19 DO LINE_P(160+Lx(I),130-Ly(I),160+Lx(I+1),130-Ly(I+1),RGB(255,255,255)); LINE_P(160+Lxn(I),130-Lyn(I),160+Lxn(I+1),130-Lyn(I+1),RGB(255,255,255)); END; //Textos TEXTOUT_P("La función="+F,8,55,1,RGB(0,162,232)); TEXTOUT_P("Eje X",45,125,1,RGB(255,0,0));
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]
“TALLER DE PROGRAMACIÓN ONNLINE EN LA CALCULADORA HP PRIME”
Expositor: Gabriel David Quispe Sanes Celular: 982925212 TEXTOUT_P("Eje Y",145,65,1,RGB(255,0,0)); WAIT(-1); END; //Tabulaciones IF MENU==4 THEN //Creacion del rectangulo RECT; RECT_P(0,0,320,240,RGB(0,0,0)); //Texto del titulo FOR I FROM 1 TO 3 DO TEXTOUT_P("TABULACIÓN DE LA FUNCION",70+I,10+I,2,RGB(255,255,255)); END; TEXTOUT_P("TABULACIÓN DE LA FUNCION",73,13,2,RGB(192,192,192)); //Creacion de los marcos Marcoh(5); Marcoh(235); Marcov(5); Marcov(315); //Color de fondo del titulo FOR I FROM 1 TO 15 DO LINE_P(40,35+I,160,35+I,RGB(128,255,255)) END; //Lineas horizontales FOR I FROM 1 TO 12 DO LINE_P(40,20+15*I,160,20+15*I,RGB(192,192,192)) END; //Lineas verticales LINE_P(40,35,40,200,RGB(192,192,192)); LINE_P(160,35,160,200,RGB(192,192,192)); LINE_P(100,35,100,200,RGB(192,192,192)); //Colocacndo titulos TEXTOUT_P("X",65,39,1,RGB(255,0,0)); TEXTOUT_P("Y",125,39,1,RGB(255,0,0)); //Colocando los valores FOR I FROM 1 TO 10 DO TEXTOUT_P(Lxc(I),65,39+15*I,1,RGB(255,255,0)); TEXTOUT_P(Lyc(I),115,39+15*I,1,RGB(255,255,0)); END; WAIT(-1); END; UNTIL MENU==5; END;
GABRIEL DAVID QUISPE SANES ESTUDIANTE INGENIERÍA CIVIL-UNH
GMAIL:
[email protected]