Listado Curva de eclipse total
Primer método a tiempos dados
1 REM CALCULO ECLIPSE SOLAR (MEEUS) #14 SAVE...ESM14
2 COMMON NUMERO
3 PI=3.14159265#:SCREEN 0:WIDTH 80
4 DEF FN AS(X)=ATN(X/SQR(1-X*X))
5 DEF FN AC(X)=-ATN(X/SQR(1-X*X))+PI/2
10 REM LEER FICHERO ECLIPSE.BIN SAVE...MEEUS6
20 DEFDBL J,M
25 OPEN "R",#1, "ECLIPSE.BIN",117
30 FIELD #1, 2 AS A$,1 AS M$,1 AS D$,1 AS T$,4 AS F$,4 AS G$,8 AS J$,2 AS K$,1 AS S$,1 AS T0$,4 AS X0$,4 AS X1$,4 AS X2$,4 AS X3$,76 AS Z1$
35 FIELD #1, 41 AS Z2$,4 AS Y0$,4 AS Y1$,4 AS Y2$, 4 AS Y3$,4 AS D0$, 4 AS D1$,4 AS D2$,8 AS M0$,8 AS M1$,32 AS Z3$
40 FIELD #1, 85 AS Z4$,4 AS L10$, 4 AS L11$,4 AS L12$,4 AS L20$,4 AS L21$,4 AS L22$,4 AS F1$, 4 AS F2$
62 FOR S=1 TO 6
63 READ TIPO$
64 TP$(S)=TIPO$
65 NEXT S
66 DATA ECLIPSE PARCIAL,ECLIPSE CENTRAL TOTAL,ECLIPSE CENTRAL ANULAR,ECLIPSE ANULAR NO CENTRAL,ECLIPSE TOTAL NO CENTRAL,ECLIPSE ANULAR-TOTAL
70 CLS:PRINT "ELEMENTOS BESSELIANOS DE UN ECLIPSE SOLAR (PERIODO 1951-2200)"
80 PRINT "============================================================="
85 IF NUMERO=0 OR Z$="O" OR Z$="o" THEN 90
87 NUM=NUMERO:GOTO 110
90 INPUT "NUMERO DEL ECLIPSE EN EL PERIODO (menor que 571)=";NUM
100 IF NUM>570 THEN 70
110 GET #1,NUM
120 PRINT "A¥O=";CVI(A$);" MES=";ASC(M$)-64;" DIA=";ASC(D$)-64
122 DT=29.1+.7026*(CVI(A$)-1950)
125 FE$=STR$(ASC(D$)-64)+"-"+STR$(ASC(M$)-64)+"-"+STR$(CVI(A$))
130 PRINT "TIPO=";TP$(ASC(T$)-64);
135 IF ASC(T$)=65 THEN PRINT " FASE MAX.=";CVS(F$) ELSE PRINT " "
140 PRINT "GAMMA=";CVS(G$)
150 PRINT
160 PRINT "JDE=";CVD(J$);" K=";CVI(K$);" SAROS=";ASC(S$)
170 PRINT "T0=";ASC(T0$)-64
175 T0=ASC(T0$)-64
180 PRINT
190 PRINT "X0=";CVS(X0$);" X1=";CVS(X1$);" X2=";CVS(X2$);" X3=";CVS(X3$)
195 X0=CVS(X0$):X1=CVS(X1$):X2=CVS(X2$):X3=CVS(X3$)
200 PRINT "Y0=";CVS(Y0$);" Y1=";CVS(Y1$);" Y2=";CVS(Y2$);" Y3=";CVS(Y3$)
205 Y0=CVS(Y0$):Y1=CVS(Y1$):Y2=CVS(Y2$):Y3=CVS(Y3$)
210 PRINT
220 PRINT "d0=";CVS(D0$);" d1=";CVS(D1$);" d2=";CVS(D2$)
225 D0=CVS(D0$):D1=CVS(D1$):D2=CVS(D2$)
230 PRINT "M0=";CVD(M0$);" M1=";CVD(M1$)
235 M0=CVD(M0$):M1=CVD(M1$)
240 PRINT
250 PRINT "L10=";CVS(L10$);" L11=";CVS(L11$);" L12=";CVS(L12$)
255 L10=CVS(L10$):L11=CVS(L11$):L12=CVS(L12$)
260 PRINT "L20=";CVS(L20$);" L21=";CVS(L21$);" L22=";CVS(L22$)
265 L20=CVS(L20$):L21=CVS(L21$):L22=CVS(L22$)
270 PRINT "TAN f1=";CVS(F1$);" TAN f2=";CVS(F2$)
275 F1=CVS(F1$):F2=CVS(F2$)
277 LOCATE 4,35:PRINT "DIFERENCIA TD Y TU (SEG) =";:PRINT USING "####.##";DT
278 LOCATE 4,35:INPUT "DIFERENCIA TD Y TU (SEG) =";DT
280 LOCATE 21,5:PRINT "Pulse O para otro eclipse"
290 LOCATE 22,5:PRINT "Pulse C para calcular el eclipse"
300 Z$=INKEY$ :IF Z$="" THEN 300
310 IF Z$="c" OR Z$="C" THEN 315
312 IF Z$="O" OR Z$="o" THEN 70 ELSE 300
315 REM CALCULO DEL ECLIPSE SOLAR
317 CLOSE #1
320 CLS:PRINT "ECLIPSE SOLAR DEL ";FE$
330 PRINT "================================"
340 INPUT "INSTANTE (h,m) TD=";HD,MD
350 TD=HD+MD/60:T=TD-T0
355 T2=T*T:T3=T2*T
360 X=X0+X1*T+X2*T2+X3*T3
370 Y=Y0+Y1*T+Y2*T2+Y3*T3
380 D=D0+D1*T+D2*T2
390 M=M0+M1*T
400 L2=L20+L21*T+L22*T2
410 REM VARIACIONES DIARIAS
420 VX=X1+2*X2*T+3*X3*T2
430 VY=Y1+2*Y2*T+3*Y3*T2
435 D=D*PI/180
440 W=1/SQR(1-6.694385E-03*COS(D)*COS(D))
450 P=M1/57.2957795#
460 B=VY-P*X*SIN(D)
470 C=VX+P*Y*SIN(D)
480 YP=W*Y
490 B1=W*SIN(D)
500 B2=.99664719#*W*COS(D)
510 IF 1-X*X-YP*YP<0 THEN 700
520 BT=SQR(1-X*X-YP*YP)
530 FI1=FN AS(BT*B1+YP*B2)
540 H=ATN(X/(BT*B2-YP*B1))
550 IF (BT*B2-YP*B1)<0 THEN H=H+PI
555 H=H*180/PI
560 FI=180/PI*ATN(1.00336409#*TAN(FI1))
570 LG=M-H-4.17807E-03*DT
575 IF LG>180 THEN LG=LG-360
577 IF LG<-180 THEN LG=LG+360
578 AN=LG:GOSUB 3450
580 PRINT "LONGITUD GEOGRAFICA (+w)=";LG;"=";GR;" ø";MI;" '";INT(SG);" ''"
585 AN=FI:GOSUB 3450
590 PRINT "LATITUD GEOGRAFICA (+N)=";FI;"=";GR;" ø";MI;" '";INT(SG);" ''"
600 L2P=L2-BT*F2
605 IF L2P>0 THEN TP$="ANULAR"
607 IF L2P<0 THEN TP$="TOTAL"
610 A=C-P*BT*COS(D)
620 N=SQR(A*A+B*B)
630 DUR=7200*ABS(L2P)/N
640 PRINT "DURACION DE LA FASE ";TP$;" = ";DUR;" SEG"
650 K=SQR(BT*BT+(X*A+Y*B)*(X*A+Y*B)/(N*N))
660 ANCH=12756*ABS(L2P)/K
670 PRINT "ANCHURA DEL CAMINO (KM.)=";ANCH
672 LOCATE 14,5:PRINT "T=Otro instante M=Menu"
675 ZZ$=INKEY$:IF ZZ$="" THEN 675
680 IF ZZ$="t" OR ZZ$="T" THEN GOTO 320
685 IF ZZ$="m" OR ZZ$="M" THEN CHAIN "menu"
690 END
700 PRINT "NO HAY ECLIPSE CENTRAL A ESTA HORA"
710 GOTO 340
3450 REM conversion a sistema sexagesimal
3460 A1=ABS(AN)
3470 GR=SGN(AN)*INT (A1)
3480 MI=INT((A1-INT(A1))*60)
3490 SG=((A1-INT(A1))*60-MI)*60
3500 RETURN
3500 RETURN
Listado Curva de eclipse total (Tabla)
Primer método a tiempos dados
1 REM CALCULO ECLIPSE SOLAR (MEEUS) #14 SAVE...ESM14T
2 PI=3.14159265#:SCREEN 0:WIDTH 80
3 DEF FN AS(X)=ATN(X/SQR(1-X*X))
4 DEF FN AC(X)=-ATN(X/SQR(1-X*X))+PI/2
10 REM LEER FICHERO ECLIPSE.BIN SAVE...MEEUS6
20 DEFDBL J,M
25 OPEN "R",#1, "ECLIPSE.BIN",117
30 FIELD #1, 2 AS A$,1 AS M$,1 AS D$,1 AS T$,4 AS F$,4 AS G$,8 AS J$,2 AS K$,1 AS S$,1 AS T0$,4 AS X0$,4 AS X1$,4 AS X2$,4 AS X3$,76 AS Z1$
35 FIELD #1, 41 AS Z2$,4 AS Y0$,4 AS Y1$,4 AS Y2$, 4 AS Y3$,4 AS D0$, 4 AS D1$,4 AS D2$,8 AS M0$,8 AS M1$,32 AS Z3$
40 FIELD #1, 85 AS Z4$,4 AS L10$, 4 AS L11$,4 AS L12$,4 AS L20$,4 AS L21$,4 AS L22$,4 AS F1$, 4 AS F2$
62 FOR S=1 TO 6
63 READ TIPO$
64 TP$(S)=TIPO$
65 NEXT S
66 DATA ECLIPSE PARCIAL,ECLIPSE CENTRAL TOTAL,ECLIPSE CENTRAL ANULAR,ECLIPSE ANULAR NO CENTRAL,ECLIPSE TOTAL NO CENTRAL,ECLIPSE ANULAR-TOTAL
70 CLS:PRINT "ELEMENTOS BESSELIANOS DE UN ECLIPSE SOLAR (PERIODO 1951-2200)"
80 PRINT "============================================================="
90 INPUT "NUMERO DEL ECLIPSE EN EL PERIODO (menor que 571)=";NUM
100 IF NUM>570 THEN 70
110 GET #1,NUM
120 PRINT "A¥O=";CVI(A$);" MES=";ASC(M$)-64;" DIA=";ASC(D$)-64
122 DT=29.1+.7026*(CVI(A$)-1950)
125 FE$=STR$(ASC(D$)-64)+"-"+STR$(ASC(M$)-64)+"-"+STR$(CVI(A$))
130 PRINT "TIPO=";TP$(ASC(T$)-64);
135 IF ASC(T$)=65 THEN PRINT " FASE MAX.=";CVS(F$) ELSE PRINT " "
140 PRINT "GAMMA=";CVS(G$)
150 PRINT
160 PRINT "JDE=";CVD(J$);" K=";CVI(K$);" SAROS=";ASC(S$)
170 PRINT "T0=";ASC(T0$)-64
175 T0=ASC(T0$)-64
180 PRINT
190 PRINT "X0=";CVS(X0$);" X1=";CVS(X1$);" X2=";CVS(X2$);" X3=";CVS(X3$)
195 X0=CVS(X0$):X1=CVS(X1$):X2=CVS(X2$):X3=CVS(X3$)
200 PRINT "Y0=";CVS(Y0$);" Y1=";CVS(Y1$);" Y2=";CVS(Y2$);" Y3=";CVS(Y3$)
205 Y0=CVS(Y0$):Y1=CVS(Y1$):Y2=CVS(Y2$):Y3=CVS(Y3$)
210 PRINT
220 PRINT "d0=";CVS(D0$);" d1=";CVS(D1$);" d2=";CVS(D2$)
225 D0=CVS(D0$):D1=CVS(D1$):D2=CVS(D2$)
230 PRINT "M0=";CVD(M0$);" M1=";CVD(M1$)
235 M0=CVD(M0$):M1=CVD(M1$)
240 PRINT
250 PRINT "L10=";CVS(L10$);" L11=";CVS(L11$);" L12=";CVS(L12$)
255 L10=CVS(L10$):L11=CVS(L11$):L12=CVS(L12$)
260 PRINT "L20=";CVS(L20$);" L21=";CVS(L21$);" L22=";CVS(L22$)
265 L20=CVS(L20$):L21=CVS(L21$):L22=CVS(L22$)
270 PRINT "TAN f1=";CVS(F1$);" TAN f2=";CVS(F2$)
275 F1=CVS(F1$):F2=CVS(F2$)
277 LOCATE 4,35:PRINT "DIFERENCIA TD Y TU (SEG) =";:PRINT USING "####.##";DT
278 LOCATE 4,35:INPUT "DIFERENCIA TD Y TU (SEG) =";DT
280 LOCATE 21,5:PRINT "Pulse O para otro eclipse"
290 LOCATE 22,5:PRINT "Pulse C para calcular el eclipse"
300 Z$=INKEY$ :IF Z$="" THEN 300
310 IF Z$="c" OR Z$="C" THEN 320 ELSE 70
315 REM CALCULO DEL ECLIPSE SOLAR
320 CLS:PRINT "ECLIPSE SOLAR DEL ";FE$
330 PRINT "================================"
335 PRINT "TD (H) LONG (ø +W ) LAT(ø) TIPO DURACION(SEG) ANCHURA (KM.)"
340 FOR T=-4 TO +4 STEP .2
350 TD=INT((T0+T)*10)/10
355 T2=T*T:T3=T2*T
360 X=X0+X1*T+X2*T2+X3*T3
370 Y=Y0+Y1*T+Y2*T2+Y3*T3
380 D=D0+D1*T+D2*T2
390 M=M0+M1*T
400 L2=L20+L21*T+L22*T2
410 REM VARIACIONES DIARIAS
420 VX=X1+2*X2*T+3*X3*T2
430 VY=Y1+2*Y2*T+3*Y3*T2
435 D=D*PI/180
440 W=1/SQR(1-6.694385E-03*COS(D)*COS(D))
450 P=M1/57.2957795#
460 B=VY-P*X*SIN(D)
470 C=VX+P*Y*SIN(D)
480 YP=W*Y
490 B1=W*SIN(D)
500 B2=.99664719#*W*COS(D)
510 IF 1-X*X-YP*YP<0 THEN 680
520 BT=SQR(1-X*X-YP*YP)
530 FI1=FN AS(BT*B1+YP*B2)
540 H=ATN(X/(BT*B2-YP*B1))
550 IF (BT*B2-YP*B1)<0 THEN H=H+PI
555 H=H*180/PI
560 FI=180/PI*ATN(1.00336409#*TAN(FI1))
570 LG=M-H-4.17807E-03*DT
575 IF LG>180 THEN LG=LG-360
577 IF LG<-180 THEN LG=LG+360
600 L2P=L2-BT*F2
605 IF L2P>0 THEN TP$="ANULAR"
607 IF L2P<0 THEN TP$="TOTAL"
610 A=C-P*BT*COS(D)
620 N=SQR(A*A+B*B)
630 DUR=7200*ABS(L2P)/N
650 K=SQR(BT*BT+(X*A+Y*B)*(X*A+Y*B)/(N*N))
660 ANCH=12756*ABS(L2P)/K
670 PRINT TAB(2)TD;TAB(10)LG;TAB(25)FI;TAB(38)TP$;TAB(50)DUR;TAB(65)ANCH
680 NEXT T
690 END
This HTML document was created by GT_HTML 6.0d 10/07/98 16:06.