3
10 CLEAR:ANGLE2:CLS:PRINTREV"* Replanteos * "NORM"[1] Ptos por coor[2] Circulos y Clotoides [3] CLOTOIDE -Exclusivamente- [4] Trans Clotoide entre Circ."; 20 GOSUB "K$" 30 ON VAL(K$) GOTO 50,290,700,900 40 GOTO 20 50 CLS:INPUT "Nø PTOS POR COORD>",N 60 ERASEX,Y,Z,N$:CLS:DIM X(N),Y(N),Z(N),N$(N) 70 FOR I=1 TO N:INPUT "NOMBRE DEL PTO|",N$(I),"COORD X PTO>",X(I),"COORD Y PTO>",Y(I),"COORD Z PTO>",Z(I):NEXT I 80 CLS:PRINT "Nombre pto estacion EXE->*FIN*" 90 INPUT " >",NE$:IF NE$="" THEN "REPLANT" 100 GOSUB 270 110 IF I<=N THEN NEST=I ELSE 80 120 INPUT "Altura Instr>",I,"Descentrado>",DESC 130 CLS:PRINT "Nombre pto Visado EXE->*FIN*" 140 INPUT " >",NE$:IF NE$="" THEN 80 150 GOSUB 270 160 IF I<=N THEN NVIS=I ELSE 130 170 INPUT "Altura mira>",M 180 X=X(NVIS)-X(NEST) 190 Y=Y(NVIS)-Y(NEST) 200 IF Y=0 THEN Y=1E-80 210 GOSUB 1650 220 HORIZ=O+DESC+25.6066667:HORIZ=HORIZ-400*FIX(HORIZ/400):VERT=100- ATN(Z(NVIS)-Z(NEST)-I+M-D^2*.000000066)/D:DINC=D/SINVERT 230 PRINT "ANGULO HORIZONTAL>"HORIZ 240 PRINT "ANGULO VERTICAL>"VERT 250 PRINT "DISTANCIA >"DINC 260 GOSUB "K$":GOTO 130 270 FOR I=1 TO N:IF LEFT$(N$(I),1)=NE$ THEN RETURN ELSE NEXT 280 CLS:PRINT"NO EXISTE ESE PTO":GOSUB "K$":RETURN 290 ' REPLANTEOS: CIRCULOS Y CLOTOIDES 300 P=.9*PI/180:CLS:INPUT "Radio Circulo>",R," é Alineac Entrada>",OTI:PRINT"CENTRO (S)uperior o (I)nferior" 310 K$=INPUT$(1):IFK$="i" OR K$="I" THEN A=-1:GOTO 340 320 IFK$="s" OR K$="S" THEN A=1:GOTO 340 330 GOTO 310 340 PRINT "Ci(R)culo o (C)lotoide" 350 GOSUB "K$":A$=K$ 360 IFA$="R" OR A$="r" THENINPUT "Angulo entre Tangs ò >",ANG 370 INPUT "Coord X Pto 1ø>",X0,"Coord Y Pto 1ø>",Y0,"Long Intervalo >",LINT 380 IF A$="C" OR A$="c" THEN INPUT "Long Trans Espirica>",L:GOTO 400 390 CLS:L=ANG*R*P:PRINT"DESARROLLO >"L,"CUERDA >"2*R*SIN(ANG/2),"Dist Inters-Alin >"R*TAN(ANG/2):GOSUB "K$":CLS:PRINT"BISECTRIZ >"R*(1/COS(ANG/2)-1),"FLECHA >"R*(1-COS(ANG/2));:GOSUB "K$" 400 FOR I=1 TO (L/LINT):LONG=LINT*I:GOSUB 430:NEXT I:LONG=L:GOSUB 430 410 CLS:ii=0:INPUT "Long para el calculo de un Pto nuevo (EXE)->FIN >",ii:IF ii=0 THEN "REPLANT" 420 LONG=ii:GOSUB 430:GOTO 410

Programas Para Casio FX 880p

Embed Size (px)

Citation preview

Page 1: Programas Para Casio FX 880p

10 CLEAR:ANGLE2:CLS:PRINTREV"* Replanteos * "NORM"[1] Ptos por coor[2] Circulos y Clotoides [3] CLOTOIDE -Exclusivamente- [4] Trans Clotoide entre Circ.";20 GOSUB "K$"30 ON VAL(K$) GOTO 50,290,700,90040 GOTO 2050 CLS:INPUT "Nø PTOS POR COORD>",N60 ERASEX,Y,Z,N$:CLS:DIM X(N),Y(N),Z(N),N$(N)70 FOR I=1 TO N:INPUT "NOMBRE DEL PTO|",N$(I),"COORD X PTO>",X(I),"COORD Y PTO>",Y(I),"COORD Z PTO>",Z(I):NEXT I80 CLS:PRINT "Nombre pto estacion EXE->*FIN*"90 INPUT " >",NE$:IF NE$="" THEN "REPLANT"100 GOSUB 270110 IF I<=N THEN NEST=I ELSE 80120 INPUT "Altura Instr>",I,"Descentrado>",DESC130 CLS:PRINT "Nombre pto Visado EXE->*FIN*"140 INPUT " >",NE$:IF NE$="" THEN 80150 GOSUB 270160 IF I<=N THEN NVIS=I ELSE 130170 INPUT "Altura mira>",M180 X=X(NVIS)-X(NEST)190 Y=Y(NVIS)-Y(NEST)200 IF Y=0 THEN Y=1E-80210 GOSUB 1650220 HORIZ=O+DESC+25.6066667:HORIZ=HORIZ-400*FIX(HORIZ/400):VERT=100-ATN(Z(NVIS)-Z(NEST)-I+M-D^2*.000000066)/D:DINC=D/SINVERT230 PRINT "ANGULO HORIZONTAL>"HORIZ240 PRINT "ANGULO VERTICAL>"VERT250 PRINT "DISTANCIA >"DINC260 GOSUB "K$":GOTO 130270 FOR I=1 TO N:IF LEFT$(N$(I),1)=NE$ THEN RETURN ELSE NEXT280 CLS:PRINT"NO EXISTE ESE PTO":GOSUB "K$":RETURN290 ' REPLANTEOS: CIRCULOS Y CLOTOIDES300 P=.9*PI/180:CLS:INPUT "Radio Circulo>",R," é Alineac Entrada>",OTI:PRINT"CENTRO (S)uperior o (I)nferior"310 K$=INPUT$(1):IFK$="i" OR K$="I" THEN A=-1:GOTO 340320 IFK$="s" OR K$="S" THEN A=1:GOTO 340330 GOTO 310340 PRINT "Ci(R)culo o (C)lotoide"350 GOSUB "K$":A$=K$360 IFA$="R" OR A$="r" THENINPUT "Angulo entre Tangs ò >",ANG370 INPUT "Coord X Pto 1ø>",X0,"Coord Y Pto 1ø>",Y0,"Long Intervalo >",LINT380 IF A$="C" OR A$="c" THEN INPUT "Long Trans Espirica>",L:GOTO 400390 CLS:L=ANG*R*P:PRINT"DESARROLLO >"L,"CUERDA >"2*R*SIN(ANG/2),"Dist Inters-Alin >"R*TAN(ANG/2):GOSUB "K$":CLS:PRINT"BISECTRIZ >"R*(1/COS(ANG/2)-1),"FLECHA >"R*(1-COS(ANG/2));:GOSUB "K$"400 FOR I=1 TO (L/LINT):LONG=LINT*I:GOSUB 430:NEXT I:LONG=L:GOSUB 430410 CLS:ii=0:INPUT "Long para el calculo de un Pto nuevo (EXE)->FIN >",ii:IF ii=0 THEN "REPLANT"420 LONG=ii:GOSUB 430:GOTO 410430 '** SALIDA DE RESULTADOS **440 IFA$="C" ORA$="c"THEN GOSUB 500 ELSE GOSUB 480450 CLS:XX=X:YY=Y:X=YY:Y=XX:GOSUB 1650:DIST=D:AZIM=O:PRINTREV "ARCO>"LONG,NORM" X Replanteo>"Y," Y Replanteo>"X," Ang Replant>"AZIM;CHR$(11)460 GOSUB "K$":CLS:PRINT "Dist Replant>"DIST," Coord X="X0+DIST*SIN(OTI-AZIM*A)470 PRINT " Coord Y="Y0+DIST*COS(OTI-AZIM*A):GOSUB "K$":RETURN480 ' ** CALCOORD CIRCULO **490 X=R*SIN(LONG/(P*R)):Y=R*(1-COS(LONG/(P*R))):RETURN

Page 2: Programas Para Casio FX 880p

500 ' ** CALCOORD CLOTOIDE **510 J=1:X=0:Y=0:A2=SQR(R*L):AX=1:AY=1520 IF ABS(AX)+ABS(AY)<0.001 THEN RETURN530 AX=A2*(-1)^(J+1):FOR J1=1 TO 2*J-2:AX=AX/(J1*2):NEXT J1:AX=AX*(LONG/A2)^(4*J-3)/(4*J-3):X=X+AX540 AY=A2*(-1)^(J+1):FOR J1=1 TO 2*J-1:AY=AY/(J1*2):NEXT J1:AY=AY*(LONG/A2)^(4*J-1)/(4*J-1):Y=Y+AY:J=J+1550 GOTO 520700 ' ** TRANSICION VERTICAL **705 GOTO "CLOTOIDE"710 CLS:PRINTREV" Pto inicial,Pte Inicial y Final"NORM"(1) Longitud Total (2) Cota maxima de la Transicion(3) Coord Pto de la Transicion";711 GOSUB "K$"712 ON VAL(K$) GOTO 730,790,810720 GOTO 711730 '790 '810 '899 CLS:PRINT "NO HAY NADA...";:GOSUB "K$":GOTO 10900 '*** TRANSICION CLOTOIDE *** ** ENTRE DOS CIRCULOS **910 P=PI/180*.9:ANGLE2920 ERASEX,Y,R:DIMX(2),Y(2),R(2):FOR S=1TO2:CLS:PRINTTAB(6);REV " *** CIRCULO"S;CHR$(8)"ø *** "NORM930 INPUT "Coord X Circulo >",X(S)935 INPUT "Coord Y Circulo >",Y(S)940 INPUT "Radio curvatura >",R(S)950 NEXT960 X=X(2)-X(1):Y=Y(2)-Y(1):IF Y=0 THEN Y=1E-80 ELSE GOSUB 1650:CLS:PRINT "Dist entre Circ.>"D,"Az linea de centros>"O;:AZIM=O970 A=1:B=-1:GOSUB "K$"980 IF R(1)>R(2) THEN MAX=R(1):MIN=R(2)990 IF R(2)>R(1) THEN MAX=R(2):MIN=R(1)1000 IF MAX>(MIN+D) THEN PRINT "Entre los dos circulos hay uno interior al otro";:A=-1:GOSUB "K$"1010 IF A=1 THEN CLS:PRINT "Inflexion (1) u Ovoide(2)";:A$=INPUT$(1) ELSE 10501020 IF A$="1" GOTO 10401025 IF A$="2" GOTO 10501030 GOTO 10101040 B=11050 A2=1E5:CLS:E=01060 IF ABS(D-SQR(AX^2+AY^2))<.001 GOTO 11701070 L=A2/R(1):R=R(1):GOSUB1700:AX=XC1080 L=A2/R(2):R=R(2):GOSUB1700:AX=AX+A*XC1090 L=A2/R(1):R=R(1):GOSUB1710:AY=YC1100 L=A2/R(2):R=R(2):GOSUB1710:AY=AY+B*YC1110 DAPROX=SQR(AX^2+AY^2)1120 L=(A2+1)/R(1):R=R(1):GOSUB 1700:AX1=XC1121 L=(A2+1)/R(2):R=R(2):GOSUB 1700:AX1=AX1+A*XC1130 L=(A2+1)/R(1):R=R(1):GOSUB 1710:AY1=YC1131 L=(A2+1)/R(2):R=R(2):GOSUB 1710:AY1=AY1+B*YC1140 DAPROX1=SQR(AX1^2+AY1^2):E=E+11150 A2=A2+(D-DAPROX)/(DAPROX1-DAPROX):PRINT "D aprox("E")="DAPROX,"A2("E")="A21160 GOTO 10601170 CLS:PRINT "Parametro de la clotoide="A2:GOSUB "K$"1180 L=A2/R(1):R=R(1):GOSUB 1700:XC1=XC1190 L=A2/R(1):R=R(1):GOSUB 1710:YC1=YC1200 CLS:PRINT "Centro circulo 1ø","X="XC1"Y="YC1:GOSUB "K$"

Page 3: Programas Para Casio FX 880p

1210 L=A2/R(2):R=R(2):GOSUB 1700:XC2=-A*XC1220 L=A2/R(2):R=R(2):GOSUB 1710:YC2=-B*YC1230 CLS:PRINT "Centro circulo 2ø","X>"XC2"Y>"YC21250 GOSUB "K$":GOTO 101649 END1650 O=ATN(X/Y)+100*(1-SGN(Y)):D=SQR(X^2+Y^2):O=O-400*INT(O/400):RETURN1700 XC=L/2-L^3/(240*R^2)+L^5/(34560*R^4)-L^7/(8386560*R^6)1710 YC=R+L^2/(24*R)-L^4/(2688*R^3)+L^6/(506880*R^5):RETURN