10 REM "semaine":'17/08/94 20 DIM N(17): DIM B$(8): DIM DIAM(8): DIM sem$(7) 30 N(1) = 0: N(2) = 31: N(3) = 59: N(4) = 90: N(5) = 120: N(6) = 151 40 N(7) = 181: N(8) = 212: N(9) = 243: N(10) = 273: N(11) = 304: N(12) = 334 50 N(13) = 365: N(14) = 396: N(15) = 424: N(16) = 455: N(17) = 484 60 B$(1) = "MERCURE": B$(2) = "VENUS": B$(3) = "MARS": B$(4) = "JUPITER" 70 B$(5) = "SATURNE": B$(6) = "URANUS": B$(7) = "NEPTUNE" 80 B$(8) = "PLUTON" 90 DIAMS = 1390000: DIAML = 3475: DIAM(1) = 4878: DIAM(2) = 12104 100 DIAM(3) = 6794: DIAM(4) = 142880: DIAM(5) = 120000: DIAM(6) = 50800 110 DIAM(7) = 48600: DIAM(8) = 3500 120 sem$(1) = "LUNDI ": sem$(2) = "MARDI ": sem$(3) = "MERCREDI" 130 sem$(4) = "JEUDI ": sem$(5) = "VENDREDI": sem$(6) = "SAMEDI " 140 sem$(7) = "DIMANCHE": sem$(0) = "DIMANCHE" 150 DIM ANV0(8): DIM LLO0(8): DIM azim0(8): DIM DIST0(8): DIM LOG0(8) 160 DIM LGS0(8) 170 DIM ANV35(8): DIM LLO35(8): DIM AZIM35(8): DIM DIST35(8): DIM LOG35(8) 180 DIM LGS35(8) 190 DIM ANV7(8): DIM LLO7(8): DIM azim7(8): DIM DIST7(8): DIM LOG7(8) 200 DIM LGS7(8) 210 DIM distl0(8): DIM lol0(8): DIM aziml0(8) 220 DIM losl0(8): DIM lnl0(8) 230 DIM DISTL05(8): DIM LOL05(8): DIM AZIML05(8) 240 DIM LOSL05(8): DIM LNL05(8) 250 DIM COTAN(32): DIM COTMO(14): DIM COTJO(31): DIM CORAN(32) 260 DIM CORMO(14): DIM CORJO(31): DIM COR(18) 270 COTAN(1) = 179.32: COTAN(2) = 308.95: COTAN(3) = 78.57 280 COTAN(4) = 220.39: COTAN(5) = 350.01 290 COTAN(6) = 119.63: COTAN(7) = 249.26: COTAN(8) = 31.07 300 COTAN(9) = 160.69: COTAN(10) = 290.32 310 COTAN(11) = 59.94: COTAN(12) = 201.76: COTAN(13) = 331.38 320 COTAN(14) = 101.01: COTAN(15) = 230.63 330 COTAN(16) = 12.44: COTAN(17) = 142.07: COTAN(18) = 271.69 340 COTAN(19) = 41.31: COTAN(20) = 183.13 350 COTAN(21) = 312.75: COTAN(22) = 82.38: COTAN(23) = 212 360 COTAN(24) = 353.81: COTAN(25) = 123.44 370 COTAN(26) = 253.06: COTAN(27) = 22.68: COTAN(28) = 164.5 380 COTAN(29) = 294.12: COTAN(30) = 63.75 390 COTAN(31) = 193.37: COTAN(32) = 335.18 400 COTMO(1) = 0: COTMO(2) = 17.91: COTMO(3) = 359.25 410 COTMO(4) = 17.17: COTMO(5) = 22.89 420 COTMO(6) = 40.8: COTMO(7) = 46.53: COTMO(8) = 64.44 430 COTMO(9) = 82.35: COTMO(10) = 88.07 440 COTMO(11) = 105.99: COTMO(12) = 111.71: COTMO(13) = 347.81 450 COTMO(14) = 5.72 460 COTJO(1) = 12.19: COTJO(2) = 24.38: COTJO(3) = 36.57: COTJO(4) = 48.76 470 COTJO(5) = 60.95: COTJO(6) = 73.14: COTJO(7) = 85.34: COTJO(8) = 97.53 480 COTJO(9) = 109.72: COTJO(10) = 121.91: COTJO(11) = 134.1 490 COTJO(12) = 146.29 500 COTJO(13) = 158.48: COTJO(14) = 170.67: COTJO(15) = 182.86 510 COTJO(16) = 195.05 520 COTJO(17) = 207.24: COTJO(18) = 219.43: COTJO(19) = 231.62 530 COTJO(20) = 243.81 540 COTJO(21) = 256.01: COTJO(22) = 268.2: COTJO(23) = 280.39 550 COTJO(24) = 292.58 560 COTJO(25) = 304.77: COTJO(26) = 316.96: COTJO(27) = 329.15 570 COTJO(28) = 341.34 580 COTJO(29) = 353.53: COTJO(30) = 5.72: COTJO(31) = 17.91 590 CORAN(1) = .9: CORAN(2) = .7: CORAN(3) = .4: CORAN(4) = 1.1 600 CORAN(5) = .9: CORAN(6) = .6: CORAN(7) = .4: CORAN(8) = 1.1 610 CORAN(9) = .8: CORAN(10) = .6: CORAN(11) = .3: CORAN(12) = 1 620 CORAN(13) = .7: CORAN(14) = .5: CORAN(15) = .2: CORAN(16) = 1 630 CORAN(17) = .7: CORAN(18) = .5: CORAN(19) = .2: CORAN(20) = .9 640 CORAN(21) = .7: CORAN(22) = .4: CORAN(23) = .2: CORAN(24) = .9 650 CORAN(25) = .6: CORAN(26) = .4: CORAN(27) = .1: CORAN(28) = .8 660 CORAN(29) = .6: CORAN(30) = .3: CORAN(31) = .1: CORAN(32) = .8 670 CORMO(1) = 356: CORMO(2) = 26.6: CORMO(3) = 54.2: CORMO(4) = 84.7 680 CORMO(5) = 114.3: CORMO(6) = 144.8: CORMO(7) = 174.4: CORMO(8) = 204.9 690 CORMO(9) = 82.35: CORMO(10) = 265.1: CORMO(11) = 295.6 700 CORMO(12) = 325.2 710 CORMO(13) = 355: CORMO(14) = 25.6 720 FOR Y = 1 TO 31: CORJO(Y) = Y * .9871: NEXT Y 730 COR(0) = 0: COR(1) = -.4: COR(2) = -.7: COR(3) = -1: COR(4) = -1.3 740 COR(5) = -1.5: COR(6) = -1.7: COR(7) = -1.8: COR(8) = -1.9: COR(10) = -1.9 750 COR(11) = -1.8: COR(12) = -1.6: COR(13) = -1.5: COR(14) = -1.2: COR(15) = -1 760 COR(16) = -.6: COR(17) = -.3: COR(18) = 0 770 ts0 = 100.58805#: PI = 4 * ATN(1): K = 180 / PI 780 DEF FNASN (X) = ATN(X / SQR(1 - X * X)) 790 DEF FNACS (X) = ATN(SQR(1 - X * X) / X) 800 CLS : PRINT "premier jour de calcul" 810 INPUT "date : jour(jj) "; JJ: JJ = JJ - 7 820 INPUT " mois(mm) "; mm 830 INPUT " ann‚e(aaaa) "; AN 840 hh = 0 850 mi = 0 860 ss = 0 870 JJ0 = 367 * AN - INT(1.75 * AN) - INT(.75 * (1 + INT((AN - 1) * .01))) 880 JJ0 = JJ0 + INT(275 / 9) + 1 + 1721028.5# 890 ld = -2: mn = 20: se = 0: lad = 48: lam = 50: las = 0 900 PRINT USING "longitude : ##d##m##s latitude ##d##m##s"; ld; mn; se; lad; lam; las 910 INPUT "changement de longitude et latitude oui=1 non=0"; quest 920 IF quest <> 1 THEN GOTO 990 930 PRINT "longitude positive vers l'OUEST": INPUT "longitude dd"; ld 940 INPUT " mn"; mn 950 INPUT " ss"; se 960 INPUT "latitude dd"; lad 970 INPUT " mn"; lam 980 INPUT " ss"; las 990 G = (ABS(ld) + mn / 60 + se / 3600) * PI / 180 1000 IF ld < 0 THEN G = -1 * G 1010 L = (ABS(lad) + lam / 60 + las / 3600) * PI / 180 1020 IF lad < 0 THEN L = -1 * L 1030 J0 = JJ: M0 = mm 1040 J0 = J0 + 7: GOSUB 1080: GOTO 1490 1050 ' 1060 'CALCUL DE J2, T et TSL 1070 ' 1080 TEST = 0: IF J0 < 0 THEN M0 = M0 - 1: J0 = N(M0 + 1) - N(M0) + J0 1090 IF J0 = 1 AND M0 = 1 THEN GOTO 1220 1100 IF M0 > 2 THEN TEST = 1 1110 J2 = N(M0) + J0 1120 IF J2 < N(M0 + 1) THEN GOTO 1140 1130 M0 = M0 + 1: J0 = J2 - N(M0): GOTO 1120 1140 IF M0 <= 2 OR TEST = 1 THEN GOTO 1200 1150 AA = AN / 4 - INT(AN / 4) 1160 IF AA <> 0 THEN GOTO 1200 1170 aaa = AN / 100 - INT(AN / 100): aaaa = AN / 400 - INT(AN / 400) 1180 IF aaa = 0 AND aaaa <> 0 THEN GOTO 1200 1190 J0 = J0 - 1: TEST = 1 1200 IF J0 = 0 THEN M0 = M0 - 1: J0 = J2 - N(M0) 1210 IF J0 = -1 THEN J0 = 0: GOTO 1080 1220 JJ = 367 * AN - INT(1.75 * (INT((M0 + 9) / 12) + AN)) 1230 JJ = JJ - INT(.75 * (1 + INT((INT((M0 - 9) / 12) + AN) * .01))) 1240 JJ = JJ + INT(275 * M0 / 9) + J0 + 1721028.5# 1250 J2 = N(M0) + J0 + (hh + mi / 60 + ss / 3600) * 1.0027379# / 24 - 1 1260 AA = AN / 4 - INT(AN / 4): aaa = AN / 100 - INT(AN / 100) 1270 aaaa = AN / 400 - INT(AN / 400) 1280 IF AA = 0 THEN AA = 1 1290 IF aaa = 0 AND aaaa <> 0 THEN AA = AN / 4 - INT(AN / 4) 1300 IF AA = 1 AND M0 > 2 THEN J2 = J2 + 1 1310 T = ((AN - 2000) * 365.25 + .5 + J2 - AA) / 365250 1320 T1 = T: T = (JJ - 2451545) / 36525 1330 ts1 = ts0 + 360.98564735# * J2 1340 TS = 2 * PI * (ts1 / 360 - INT(ts1 / 360)) 1350 TS = 6.69737456# * 3600 + 8640184.812866# * T + .093103 * T * T 1360 TS = (TS - .0000062 * T * T * T) / 3600 / 24 * 2 * PI 1370 TSL = TS - G 1380 TSL = TSL / 2 / PI * 24: 'TSL = TSL + .004722 1390 IF TSL < 0 THEN TSL = TSL + 24: GOTO 1390 1400 IF TSL > 24 THEN TSL = TSL - 24: GOTO 1400 1410 TSLH = INT(TSL): TSLM = INT((TSL - TSLH) * 60) 1420 TSLS = ((TSL - TSLH) * 60 - TSLM) * 60: T = T1 1430 jour$ = sem$(JJ - 7 * INT((JJ + 1.5) / 7) + 1.5) 1440 sema = INT((JJ - JJ0) / 7) + 1 1450 IF M0 > 12 AND J0 >= 7 THEN PRINT "CHANGEMENT D'ANNEE": END 1460 MOIS = M0: IF M0 > 12 THEN MOIS = 1 1470 ANNEE = AN: IF M0 > 12 THEN ANNEE = AN + 1 1480 RETURN 1490 CLS : PRINT USING "SEMAINE DU &"; jour$; 1500 PRINT USING " ##/##/#### jour nø ### de l'ann‚e JJ=#######.#"; J0; MOIS; ANNEE; J2 + 1; JJ 1510 J0 = J0 + 6: GOSUB 1080: PRINT USING " AU &"; jour$; 1520 f1$ = " ##/##/#### jour nø ### de l'ann‚e JJ=#######.#" 1530 PRINT USING f1$; J0; MOIS; ANNEE; J2 + 1; JJ 1540 J0 = J0 - 6 1550 GOSUB 1080: PRINT "SEMAINE nø "; sema: PRINT 1560 PRINT USING "LIEU : LONGITUDE G= ## deg. ## ' ## ''"; ld; mn; se 1570 PRINT USING " LATITUDE L= ## deg. ## ' ## ''"; lad; lam; las 1580 PRINT 1590 PRINT USING "heure sid‚rale locale … 0 h TU le ##/##/####"; J0; MOIS; ANNEE; 1600 PRINT USING " = ## h ## mn ##.# s"; TSLH; TSLM; TSLS 1610 ' 1620 ' INCLINAISON ECLIPTIQUE SUR PLAN EQUATORIAL 1630 ' 1640 GOSUB 1650: GOTO 2070 1650 IE = .4090928042# - .0022696552# * T - 2.86E-07 * T * T 1660 IE = IE + 8.789672E-06 * T * T * T 1670 ASS = 1.00000101778# 1680 ' 1690 'PARAMETRES DU SOLEIL 1700 ' 1710 LMS = 4.895062967# + 6283.319663# * T + 5.300181E-04 * T * T 1720 LMS = LMS + .00000036942802# * T * T * T 1730 KAS = -.003740816# - .004793106# * T + .000281128# * T * T 1740 KAS = KAS + 7.3831E-05 * T * T * T 1750 HAS = .016284477# - .001532379# * T - .000720171# * T * T 1760 HAS = HAS + 3.2299E-05 * T * T * T 1770 ' 1780 'COORDONNEES GEOCENTRIQUES ECLIPTIQUES DU SOLEIL 1790 ' 1800 LPS = ATN(HAS / KAS) 1810 ES = ABS(HAS / SIN(LPS)) 1820 AMS = LMS - LPS 1830 AES = AMS 1840 FOR i = 1 TO 30 1850 AES = AMS + ES * SIN(AES) 1860 NEXT i 1870 AVS = 2 * ATN(SQR((1 + ES) / (1 - ES)) * TAN(AES / 2)) 1880 ALS = AVS + LPS 1890 LOS = ALS 1900 IF LOS < 0 THEN LOS = LOS + 2 * PI 1910 ' 1920 ' COORDONNEES EQUATORIALES DU SOLEIL 1930 ' 1940 d = FNASN(SIN(IE) * SIN(LOS)) 1950 AD = ATN(COS(IE) * TAN(LOS)) 1960 IF COS(LOS) < 0 THEN AD = AD + PI 1970 IF AD < 0 THEN AD = AD + 2 * PI 1980 RVS = ASS * (1 - ES * COS(AES)) 1990 XS = RVS * COS(LOS): X2 = XS 2000 YS = RVS * SIN(LOS): Y2 = YS: Z2 = 0 2010 AH = TS - AD - G: LO = LOS 2020 IF AH > PI THEN AH1 = 2 * PI - AH ELSE AH1 = AH 2030 IF AH < 0 THEN AH = AH + 2 * PI 2040 IF AH > PI THEN AH1 = 2 * PI - AH ELSE AH1 = AH 2050 RETURN 2060 ' 2070 'EPHEMERIDES SOLEIL LUNE PLANETES 2080 ' 2090 EPH$ = "S": GOSUB 5680: GOSUB 5880 2100 PRINT "tapez une touche pour continuer": DO 2110 LOOP WHILE INKEY$ = "" 2120 CLS 2130 EPH$ = "L": BOUC = 0: GOSUB 4540: GOSUB 5880: FOR BOUC = 1 TO 6 2140 J0 = J0 + 1: GOSUB 1080: GOSUB 4540: GOSUB 5880: NEXT BOUC 2150 J0 = J0 - 6: GOSUB 1080: GOSUB 1650: GOSUB 4540 2160 PRINT "tapez une touche pour continuer": DO 2170 LOOP WHILE INKEY$ = "" 2180 CLS 2190 EPH$ = "1": GOSUB 2310 2200 EPH$ = "2": GOSUB 2470 2210 EPH$ = "3": GOSUB 2630 2220 EPH$ = "4": GOSUB 2790 2230 EPH$ = "5": GOSUB 3110 2240 EPH$ = "6": GOSUB 3780 2250 EPH$ = "7": GOSUB 4100 2260 EPH$ = "8": GOSUB 4430 2270 GOTO 7480 2280 ' 2290 'MERCURE 2300 ' 2310 GOSUB 2320: GOSUB 5220: GOSUB 5880: RETURN 2320 A = .38709830982# 2330 LM = 4.402608842# + 26088.14707# * T + 5.305219E-04 * T * T 2340 LM = LM + 3.098E-07 * T * T * T 2350 KA = .044660598# - .054483487# * T - .001806305# * T * T 2360 KA = KA + 6.63185E-04 * T * T * T 2370 HA = .200723314# + .012331538# * T - .007334087# * T * T 2380 HA = HA - .000185002# * T * T * T 2390 Q = .040615634# - .009342389# * T - .000919439# * T * T 2400 Q = Q + 6.5185E-05 * T * T * T 2410 P = .045635505# + 8.527127E-03 * T - .000955642# * T * T 2420 P = P - .000067142# * T * T * T 2430 RETURN 2440 ' 2450 'VENUS 2460 ' 2470 GOSUB 2480: GOSUB 5220: GOSUB 5880: RETURN 2480 A = .72332981996# 2490 LM = 3.171146696# + 10213.52942# * T + .00054210556# * T * T 2500 LM = LM + 2.535E-07 * T * T * T 2510 KA = -.004492821# - 9.23135E-04 * T + .000225036# * T * T 2520 KA = KA - .000001441# * T * T * T 2530 HA = .005066847# - .001456941# * T - .000058477# * T * T 2540 HA = HA + .000022573# * T * T * T 2550 Q = .006824101# - .004512949# * T - .00011843# * T * T 2560 Q = Q + .000017766# * T * T * T 2570 P = .028822858# + .001158456# * T - .000349201# * T * T 2580 P = P - .000008779# * T * T * T 2590 RETURN 2600 ' 2610 'MARS 2620 ' 2630 GOSUB 2640: GOSUB 5220: GOSUB 5880: RETURN 2640 A = 1.52367934191# 2650 LM = 6.203480913# + 3340.856278# * T + .00054274843# * T * T 2660 LM = LM + 2.66E-07 * T * T * T 2670 KA = .085365603# + .013005053# * T + .004287376# * T * T 2680 KA = KA - .000259837# * T * T * T 2690 HA = -.037899732# + .02706276# * T + .002245677# * T * T 2700 HA = HA - .000451825# * T * T * T 2710 Q = .010470426# - .001689431# * T - .000082811# * T * T 2720 Q = Q + .000003613# * T * T * T 2730 P = .012284493# + .001371039# * T - .000107356# * T * T 2740 P = P - .000002604# * T * T * T 2750 RETURN 2760 ' 2770 'JUPITER 2780 ' 2790 GOSUB 2800: GOSUB 5250: GOSUB 5880: RETURN 2800 A = 5.20260319132# + 1.91323E-06 * T 2810 LM = .5995464972# + 529.9348075# * T + .00039049899# * T * T 2820 LM = LM + 4.37E-07 * T * T * T 2830 KA = .046985721# - .001796949# * T - .002042137# * T * T 2840 KA = KA - .000040262# * T * T * T 2850 HA = .012003857# + .013628604# * T + .000042602# * T * T 2860 HA = HA - .000210827# * T * T * T 2870 Q = -.002065611# - .001905724# * T + .000108273# * T * T 2880 Q = Q + .000008934# * T * T * T 2890 P = .011183772# - .000839731# * T - .000159489# * T * T 2900 P = P + .000007916# * T * T * T 2910 ' 2920 'perturbations de Jupiter 2930 ' 2940 LP = ATN(HA / KA) 2950 IF KA < 0 THEN LP = LP + PI 2960 E = ABS(HA / SIN(LP)) 2970 B = 3.086859 + 7.373789 * T 2980 U1 = SIN(B): V1 = COS(B) 2990 DA = 4.5902E-06 * V1 3000 A = A + DA 3010 DLM = 5.78402E-03 * U1 3020 LM = LM + DLM 3030 DE = .0000063 * U1 + 2.2515E-06 * V1 3040 E = E + DE 3050 DLP = (1.2217E-04 * U1 - 3.4906E-04 * V1) / E 3060 LP = LP + DLP 3070 RETURN 3080 ' 3090 'SATURNE 3100 ' 3110 GOSUB 3120: GOSUB 5250: GOSUB 5880: RETURN 3120 A = 9.55490959574# - 2.139E-05 * T 3130 LM = .8740167563# + 213.54295627# * T + .00090673442# * T * T 3140 LM = LM - 5.57E-08 * T * T * T 3150 KA = -.002960036# - .018813138# * T + .001283285# * T * T 3160 KA = KA + .000384811# * T * T * T 3170 HA = .0055429643# - .004477771# * T - .003261143# * T * T 3180 HA = HA + .000200072# * T * T * T 3190 Q = -8.717474E-03 - .002914183# * T + .000157351# * T * T 3200 Q = Q + .000012382# * T * T * T 3210 P = .019891473# - .001633044# * T - .000223323# * T * T 3220 P = P + .000011193# * T * T * T 3230 ' 3240 'perturbations de Saturne 3250 ' 3260 LP = ATN(HA / KA) 3270 IF KA < 0 THEN LP = LP + PI 3280 E = ABS(HA / SIN(LP)) 3290 B = 3.08686 + 7.11355 * T 3300 U1 = SIN(B): U2 = SIN(2 * B): V1 = COS(B) 3310 DA = 8.55E-07 * U1 + .0000512 * V1 3320 A = A + DA 3330 DLM = -.01421 * U1 - 1.91986E-04 * V1 + 1.39626E-04 * U2 3340 LM = LM + DLM 3350 DE = -1.384E-05 * U1 + 2.33874E-05 * V1 3360 E = E + DE 3370 DLP = (.0013613568# * U1 + 8.0285E-04 * V1) / E 3380 LP = LP + DLP 3390 C = 3.525 - 316.57313# * T 3400 U1 = SIN(C): U2 = SIN(2 * C): U3 = SIN(3 * C): U4 = SIN(4 * C) 3410 V1 = COS(C): V2 = COS(2 * C): V3 = COS(3 * C): V4 = COS(4 * C) 3420 C1 = (-.149 * U1 - .041 * U2 - .015 * U3 - .006 * U4) / K 3430 C2 = -.006 - .009 * U1 + .082 * V1 - .017 * U2 + .015 * V2 3440 C2 = (C2 - .006 * U3) / K 3450 C3 = (.086 * U1 + .025 * V1 + .014 * V2) / K 3460 C4 = (.006 * U1 - .005 * V1 + .009 * U2 + .005 * V2) / K 3470 C5 = (-.005 * V1 + .005 * U2 - .008 * V2) / K 3480 GOSUB 3720 3490 LM = LM + DD 3500 C1 = 0 3510 C2 = (.00124 + .00266 * V1 - .00047 * V2 - .00019 * V3) / K 3520 C3 = (-.00127 * U1 - .00042 * U2) / K 3530 C4 = (.00022 * U1 - .00028 * V1 - .00022 * U2 + .0002 * V2) / K 3540 C5 = (.00028 * U1 - .00016 * V1 + .00022 * V2) / K 3550 GOSUB 3720 3560 E = E + DD 3570 C1 = -.007 * U1 / K 3580 C2 = (-.076 * U1 - .025 * U2 - .009 * U3) / K 3590 C3 = (-.073 - .15 * V1 + .027 * V2 + .01 * V3) / K 3600 C4 = (-.014 * U1 - .008 * V1 + .014 * V2) / K 3610 C5 = (-.014 * U1 + .015 * V1 + .012 * U2 - .013 * V2) / K 3620 GOSUB 3720 3630 LP = LP + DD / E 3640 C1 = (.0337 * V1 - .00308 * V2 - .00143 * V3 - .00067 * V4) / K 3650 C2 = (-.00281 * U1 + .00214 * V1 + .00069 * U2 - .001 * V2) / K 3660 C3 = (.0022 * U1 + .00288 * V1 - .00159 * U2 + .00217 * V2) / K 3670 C4 = (-.00027 * U2 - .00078 * V1 + .00049 * V2 + .00025 * V3) / K 3680 C5 = (-.00085 * U1 + .00044 * U2 + .0003 * V2) / K 3690 GOSUB 3720 3700 A = A + DD 3710 RETURN 3720 DD = C1 + C2 * SIN(LM) + C3 * COS(LM) + C4 * SIN(2 * LM) 3730 DD = DD + C5 * COS(2 * LM) 3740 RETURN 3750 ' 3760 'URANUS 3770 ' 3780 GOSUB 3790: GOSUB 5250: GOSUB 5880: RETURN 3790 A = 19.21844606178# - 3.716E-07 * T 3800 LM = 5.481293871# + 75.02543113999999# * T + .00053117108# * T * T 3810 LM = LM + 4.52E-07 * T * T * T 3820 KA = -.045951324# - .001191266# * T + .001544939# * T * T 3830 KA = KA + .000011213# * T * T * T 3840 HA = .005637913# - .011954073# * T - .000135566# * T * T 3850 HA = HA + .000132033# * T * T * T 3860 Q = .001859151# - 5.7132E-04 * T - .000019753# * T * T 3870 Q = Q - .000001193# * T * T * T 3880 P = .00648617# + .000234059# * T + .00001066# * T * T 3890 P = P - .000001193# * T * T * T 3900 ' 3910 'perturbations d'Uranus 3920 ' 3930 LP = ATN(HA / KA) 3940 IF KA < 0 THEN LP = LP + PI 3950 E = ABS(HA / SIN(LP)) 3960 B = 5.10656 + 1.48447 * T 3970 U1 = SIN(B): U2 = SIN(2 * B): V1 = COS(B) 3980 DA = -6.674139E-05 * V1 3990 A = A + DA 4000 DLM = .0150796# * U1 + 1.43117E-03 * V1 + 6.28318E-04 * U2 4010 LM = LM + DLM 4020 DE = -5.8468E-06 * U1 + 3.6652E-05 * V1 4030 E = E + DE 4040 DLP = (2.099631E-03 * U1 + 3.38594E-04 * V1 + 1.04719E-04 * U2) / E 4050 LP = LP + DLP 4060 RETURN 4070 ' 4080 'NEPTUNE 4090 ' 4100 GOSUB 4110: GOSUB 5250: GOSUB 5880: RETURN 4110 A = 30.11038686942# - 1.66E-06 * T 4120 LM = 5.311886286# + 38.37687716# * T + .00053976537# * T * T 4130 LM = LM + 6.89E-07 * T * T * T 4140 KA = .0005999776# - .001623178# * T - .000202253# * T * T 4150 KA = KA + .000014843# * T * T * T 4160 HA = .006692424# + .0001541238# * T - .000192797# * T * T 4170 HA = HA - .000018028# * T * T * T 4180 Q = -.010291478# - .001674378# * T + .000305826# * T * T 4190 Q = Q + .000005675# * T * T * T 4200 P = .0115684# - .002585402# * T - .000118272# * T * T 4210 P = P + .000023739# * T * T * T 4220 ' 4230 'perturbations de Neptune 4240 ' 4250 LP = ATN(HA / KA) 4260 IF KA < 0 THEN LP = LP + PI 4270 E = ABS(HA / SIN(LP)) 4280 B = 5.10656 + 1.48447 * T 4290 U1 = SIN(B): U2 = SIN(2 * B): V1 = COS(B): V2 = COS(2 * B) 4300 DA = -1.431E-05 * U1 + .0001431 * V1 4310 A = A + DA 4320 DLM = -.0103428# * U1 - 9.7913E-04 * V1 - 4.2411E-04 * U2 4330 LM = LM + DLM 4340 DE = 7.679E-06 * U1 + 7.435E-06 * V1 - 1.0472E-04 * V2 4350 E = E + DE 4360 DLP = 4.1888E-04 * U1 - 4.3633E-04 * V1 + 1.0472E-04 * U2 4370 DLP = (DLP - 1.0472 * V2) / E 4380 LP = LP + DLP 4390 RETURN 4400 ' 4410 'PLUTON 4420 ' 4430 GOSUB 4440: GOSUB 5280: GOSUB 5880: RETURN 4440 A = 39.438712# 4450 LM = 4.172280893# + 25.36813 * T 4460 LN = 1.927583 + .2437 * T 4470 LP = 3.909712 4480 E = .250236 4490 IO = .299681 4500 RETURN 4510 ' 4520 'LUNE 4530 ' 4540 T = T * 10 4550 P = 5.19846674# + 7771.377144# * T - .000028509468# * T * T 4560 Q = 1.627905233# + 8433.466157000001# * T - .000059453671# * T * T 4570 AMl = 2.355555898# + 8328.691424000001# * T + .00015696909# * T * T 4580 AMS = 6.240060126# + 628.3019549000001# * T - .0000027198047# * T * T 4590 LML = 3.810344426# + 8399.709112# * T - .000023209485# * T * T 4600 Lnl = LML - Q: Lnl = 2 * PI * (Lnl / 2 / PI - INT(Lnl / 2 / PI)) 4610 PA = .0165937# + 9.0437E-04 * COS(AMl) + 4.9226E-05 * COS(2 * AMl) 4620 PA = PA + 1.36877E-04 * COS(2 * P) + 1.66349E-04 * COS(2 * P - AMl) 4630 DMD = K * .2735 * PA 4640 LO = LML + .10975981# * SIN(AMl) + 3.728314E-03 * SIN(2 * AMl) 4650 LO = LO + 1.751147E-04 * SIN(3 * AMl) + .0114895994# * SIN(2 * P) 4660 LO = LO - .0032390886# * SIN(AMS) - .00060674432# * SIN(P) 4670 LO = LO + .02223564# * SIN(2 * P - AMl) - .0019955415# * SIN(2 * Q) 4680 LO = LO + .0010261566# * SIN(2 * P - 2 * AMl) 4690 LO = LO + .00099852225# * SIN(2 * P - AMl - AMS) 4700 LO = LO + .00093059986# * SIN(2 * P + AMl) 4710 LO = LO + .00080066979# * SIN(2 * P - AMS) 4720 LO = LO + .00071602132# * SIN(AMl - AMS) 4730 LO = LO - .00053169516# * SIN(AMl + AMS) 4740 LO = LO + 2.67471E-04 * SIN(2 * P - 2 * Q) 4750 LO = LO - .00021865097# * SIN(2 * Q - AMl) 4760 LO = LO - .00019164684# * SIN(2 * Q - AMl) 4770 LO = LO + .00018631389# * SIN(4 * P - AMl) 4780 LO = LO + .00014917716# * SIN(4 * P - 2 * AMl) 4790 LO = LO - .00013802645# * SIN(2 * P - AMl + AMS) 4800 LO = LO - 1.183951E-04 * SIN(2 * P + AMS) 4810 LO = LO - .000090223826# * SIN(P - AMl) 4820 LO = LO + 8.736342500000001D-05 * SIN(P + AMl) 4830 LO = LO + 7.068583400000001D-05 * SIN(2 * P + AMl - AMS) 4840 LO = LO + 6.976468799999999D-05 * SIN(2 * P + 2 * AMl) 4850 LO = LO + .000067389101# * SIN(4 * P) 4860 LO = LO + 6.394692E-05 * SIN(2 * P - 3 * AMl) 4870 LO = 2 * PI * (LO / 2 / PI - INT(LO / 2 / PI)) 4880 IF LO < 0 THEN LO = LO + 2 * PI 4890 LA = .0895026105# * SIN(Q) + .0048974908# * SIN(AMl + Q) 4900 LA = LA + .0048466338# * SIN(AMl - Q) + .00030014814# * SIN(2 * AMl + Q) 4910 LA = LA + .00015397682# * SIN(2 * AMl - Q) 4920 LA = LA + .00056849252# * SIN(2 * P + Q) 4930 LA = LA + 3.023589E-03 * SIN(2 * P - Q) 4940 LA = LA + .00096710633# * SIN(2 * P - AMl + Q) 4950 LA = LA + 8.076026200000001D-04 * SIN(2 * P - AMl + Q) 4960 LA = LA + 3.639011E-04 * SIN(2 * P + AMl - Q) 4970 LA = LA + .00014394118# * SIN(2 * P - AMS - Q) 4980 LA = LA + .000075437008# * SIN(2 * P - 2 * AMl - Q) 4990 LA = LA + .000073303828# * SIN(2 * P + AMl + Q) 5000 LA = LA - 5.885638E-05 * SIN(2 * P + AMS - Q) 5010 PA = .0165937# + 9.0437E-04 * COS(AMl) + 4.9226E-05 * COS(2 * AMl) 5020 PA = PA + 1.136877E-04 * COS(2 * P) + 1.66349E-04 * COS(2 * P - AMl) 5030 DISTL = 1 / SIN(PA) * 6378.388: LOL = LO: LOSL = LOS 5040 T = T / 10 5050 d = FNASN(SIN(LA) * COS(IE) + COS(LA) * SIN(IE) * SIN(LO)) 5060 AD = ATN((COS(IE) * SIN(LO) - SIN(IE) * TAN(LA)) / COS(LO)) 5070 IF COS(LO) < 0 THEN AD = AD + PI 5080 IF AD < 0 THEN AD = AD + 2 * PI: GOTO 5080 5090 IF AD > 2 * PI THEN AD = AD - 2 * PI: GOTO 5090 5100 AH = TS - AD - G: IF AH > PI THEN AH1 = 2 * PI - AH ELSE AH1 = AH 5110 IF AH < 0 THEN AH = AH + 2 * PI 5120 IF AH > PI THEN AH1 = 2 * PI - AH ELSE AH1 = AH 5130 RO = .998332 + .0016835# * COS(2 * L) - .0000035 * COS(4 * L) 5140 LG = ATN(.9932773467# * TAN(L)) 5150 DAH = RO * SIN(PA) * COS(LG) * SIN(AH) 5160 DAH = ATN(DAH / (COS(d) - RO * SIN(PA) * COS(LG) * COS(AH))) 5170 AH = AH + DAH: X2 = 0: Y2 = 0: Z2 = 0 5180 GOSUB 5680: RETURN 5190 ' 5200 'CALCUL POSITION HELIOCENTRIQUE DE L'ASTRE 5210 ' 5220 LP = ATN(HA / KA) 5230 IF KA < 0 THEN LP = LP + PI 5240 E = ABS(HA / SIN(LP)) 5250 LN = ATN(P / Q) 5260 IF Q < 0 THEN LN = LN + PI 5270 IO = 2 * FNASN(P / SIN(LN)) 5280 AM = LM - LP 5290 AE = AM 5300 FOR i = 1 TO 30 5310 AE = AM + E * SIN(AE) 5320 NEXT i 5330 AV = 2 * ATN(SQR((1 + E) / (1 - E)) * TAN(AE / 2)) 5340 ARP = LP + AV - LN 5350 LA = FNASN(SIN(IO) * SIN(ARP)) 5360 LO = FNACS(COS(ARP) / COS(LA)) 5370 IF LO < 0 THEN LO = LO + PI: GOTO 5370 5380 IF LO > 2 * PI THEN LO = LO - PI: GOTO 5380 5390 IF LA < 0 THEN LO = 2 * PI - LO 5400 LO = LO + LN 5410 IF LO > 2 * PI THEN LO = LO - 2 * PI: GOTO 5410 5420 R = A * (1 - E * COS(AE)) 5430 X1 = R * COS(LA) * COS(LO) 5440 Y1 = R * COS(LA) * SIN(LO) 5450 Z1 = R * SIN(LA) 5460 ' 5470 'POSITION DE L'ASTRE PAR RAPPORT A LA TERRE 5480 ' 5490 X2 = XS + X1 5500 Y2 = YS + Y1 5510 Z2 = Z1 5520 LLOG = ATN(Y2 / X2) 5530 IF X2 < 0 THEN LLOG = LLOG + PI 5540 IF LLOG < 0 THEN LLOG = LLOG + 2 * PI: GOTO 5540 5550 IF LLOG > 2 * PI THEN LLOG = LLOG - 2 * PI: GOTO 5550 5560 LGS = ATN(YS / XS): IF XS < 0 THEN LGS = LGS + PI 5570 IF LGS < 0 THEN LGS = LGS + 2 * PI: GOTO 5570 5580 IF LGS > 2 * PI THEN LGS = LGS - 2 * PI: GOTO 5580 5590 LAG = ATN(Z2 / SQR(X2 * X2 + Y2 * Y2)) 5600 d = FNASN(SIN(LAG) * COS(IE) + COS(LAG) * SIN(IE) * SIN(LLOG)) 5610 AD = ATN((COS(IE) * SIN(LLOG) - SIN(IE) * TAN(LAG)) / COS(LLOG)) 5620 IF COS(LLOG) < 0 THEN AD = AD + PI 5630 IF AD < 0 THEN AD = AD + 2 * PI: GOTO 5630 5640 IF AD > 2 * PI THEN AD = AD - 2 * PI: GOTO 5640 5650 AH = TS - AD - G: IF AH > PI THEN AH1 = 2 * PI - AH ELSE AH1 = AH 5660 IF AH < 0 THEN AH = AH + 2 * PI 5670 IF AH > PI THEN AH1 = 2 * PI - AH ELSE AH1 = AH 5680 HC = FNASN(SIN(d) * SIN(L) + COS(d) * COS(L) * COS(AH1)) 5690 A1 = SIN(L) * COS(AH) - COS(L) * TAN(d) 5700 AZ = ATN(SIN(AH) / A1) 5710 IF A1 < 0 THEN AZ = AZ + PI 5720 IF AZ < 0 THEN AZ = AZ + 2 * PI 5730 ' 5740 'CORRECTION DE LA REFRACTION ATMOSPHERIQUE 5750 ' 5760 PP = TAN(PI / 2 - ABS(HC)) 5770 QQ = ABS(HC) * K 5780 IF QQ >= 9 THEN GOTO 5810 5790 R = .61 - .15 * QQ + .01546 * QQ * QQ - .00057 * QQ * QQ * QQ 5800 GOTO 5830 5810 R = .016 * PP - 1.858E-05 * PP * PP * PP 5820 R = R + 6.17E-08 * PP * PP * PP * PP * PP 5830 HCC = HC + R / K 5840 RETURN 5850 ' 5860 'IMPRESSION RESULTATS 5870 ' 5880 X = INT(AD * K / 15) 5890 Y = INT(60 * (AD * K / 15 - X) * 100) / 100 5900 DECL = INT(d * K): IF DECL < 0 THEN DECL = DECL + 1 5910 DECL1 = ABS(d * K - DECL) * 60 5920 IF EPH$ <> "S" THEN GOTO 5970 ELSE PRINT 5930 PRINT USING "TOUTES VALEURS DONNEES POUR LE ##/##/####"; J0; MOIS; ANNEE; 5940 PRINT USING " … ## h ## mn ## s"; hh; mi; ss 5950 PRINT "sauf pour la LUNE : chaque jour de la semaine … 0h" 5960 PRINT : PRINT "SOLEIL": GOTO 5990 5970 IF EPH$ = "L" AND BOUC = 0 THEN PRINT "LUNE": GOTO 5990 5980 IF EPH$ <> "L" THEN PRINT B$(VAL(EPH$)) 5990 DIST = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2) 6000 IF EPH$ <> "S" THEN GOTO 6030 6010 DIA = DIAMS: DIA = 2 * 180 * 60 / PI * ATN(DIA / 2 / DIST / 149597870) 6020 GOTO 6070 6030 IF EPH$ <> "L" THEN GOTO 6050 6040 DIA = DIAML: DIA = 2 * 180 / PI * ATN(DIA / 2 / DISTL) * 60: GOTO 6070 6050 DIA = DIAM(VAL(EPH$)) 6060 DIA = 2 * 180 / PI * ATN(DIA / 2 / DIST / 149597870) * 60 * 60 6070 p1$ = " j d‚clin. Asc.D dist. diam longit. azim haut " 6080 p1$ = p1$ + "lever coucher" 6090 p2$ = " j d‚clin. Asc.D dist. diam longit. azim haut " 6100 p2$ = p2$ + "lever coucher" 6110 IF EPH$ = "L" AND BOUC = 0 THEN PRINT p1$ 6120 IF EPH$ <> "L" THEN PRINT p2$ 6130 f1$ = " ##/ ###d##' ##h ##m ##.##UA ##.#''": f1b$ = " ###.#deg ###d ###d " 6140 f2$ = " ##/ ###d##' ##h ##m ###.##Mm": f2b$ = " ##.#' ###.#deg ###d ###d " 6150 IF EPH$ <> "L" THEN PRINT USING f1$; J0; DECL; DECL1; X; Y; DIST; DIA; 6160 IF EPH$ <> "L" THEN PRINT USING f1b$; LO / PI * 180; AZ * K; HCC * K; 6170 IF EPH$ = "L" THEN PRINT USING f2$; J0; DECL; DECL1; X; Y; DISTL / 1000; 6180 IF EPH$ = "L" THEN PRINT USING f2b$; DIA; LO / PI * 180; AZ * K; HCC * K; 6190 ' 6200 'HEURES DE LEVER ET DE COUCHER - DEBUT ET FIN DE NUIT ASTRONOMIQUE - EQUATION DU TEMPS 6210 ' 6220 IF DIA < 999 AND EPH$ <> "L" THEN DIA = DIA / 60 6230 'hauteur sur l'horizon du centre de l'astre au lever 6240 IF EPH$ = "L" THEN H0 = (20.4 - DIA / 2 - 1.93 * SQR(ALT)) / 60 / K 6250 IF EPH$ <> "L" THEN H0 = (-36.6 - DIA / 2 - 1.93 * SQR(ALT)) / 60 / K 6260 CSH = (SIN(H0) - SIN(L) * SIN(d)) / COS(L) / COS(d) 6270 IF CSH < -1 THEN GOTO 6700 ELSE ANGLH = FNACS(CSH) 6280 IF CSH < 0 THEN ANGLH = PI + ANGLH 6290 LEV = AD - ANGLH 6300 LEV = (LEV - TSL / 24 * 2 * PI) * .9972696#: LEV = LEV / 2 / PI * 24 6310 IF LEV < 0 THEN LEV = LEV + 24: GOTO 6310 6320 IF LEV > 24 THEN LEV = LEV - 24: GOTO 6320 6330 LEVH = INT(LEV): LEVM = INT((LEV - LEVH) * 60) 6340 LEVS = INT(((LEV - LEVH) * 60 - LEVM) * 60) 6350 'nouvelle it‚ration pour la LUNE 6360 IF EPH$ = "L" THEN GOTO 6370 ELSE GOTO 6490 6370 hh1 = hh: mi1 = mi: ss1 = ss: hh = LEVH: mi = LEVM: ss = LEVS: LUNE = 1 6380 STSL = TSL: GOSUB 1080: GOSUB 4540: hh = hh1: mi = mi1: ss = ss1 6390 TSL = STSL 6400 H0 = (20.4 - DIA / 2 - 1.93 * SQR(ALT)) / 60 / K 6410 CSH = (SIN(H0) - SIN(L) * SIN(d)) / COS(L) / COS(d): ANGLH = FNACS(CSH) 6420 IF CSH < 0 THEN ANGLH = PI + ANGLH 6430 LEV = AD - ANGLH 6440 LEV = (LEV - TSL / 24 * 2 * PI) * .9972696#: LEV = LEV / 2 / PI * 24 6450 IF LEV < 0 THEN LEV = LEV + 24: GOTO 6450 6460 IF LEV > 24 THEN LEV = LEV - 24: GOTO 6460 6470 LEVH = INT(LEV): LEVM = INT((LEV - LEVH) * 60) 6480 LEVS = INT(((LEV - LEVH) * 60 - LEVM) * 60) 6490 COU = AD + ANGLH 6500 COU = (COU - TSL / 24 * 2 * PI) * .9972696#: COU = COU / 2 / PI * 24 6510 IF COU < 0 THEN COU = COU + 24: GOTO 6510 6520 IF COU > 24 THEN COU = COU - 24: GOTO 6520 6530 COUH = INT(COU): COUM = INT((COU - COUH) * 60) 6540 COUS = INT(((COU - COUH) * 60 - COUM) * 60) 6550 'nouvelle it‚ration pour la LUNE 6560 IF EPH$ = "L" THEN GOTO 6570 ELSE GOTO 6680 6570 ss: hh = COUH: mi = COUM: ss = COUS: LUNE = 1: STSL = TSL: GOSUB 1080 6580 GOSUB 4540: hh = hh1: mi = mi1: ss = ss1: TSL = STSL 6590 H0 = (20.4 - DIA / 2 - 1.93 * SQR(ALT)) / 60 / K 6600 CSH = (SIN(H0) - SIN(L) * SIN(d)) / COS(L) / COS(d): ANGLH = FNACS(CSH) 6610 IF CSH < 0 THEN ANGLH = PI + ANGLH 6620 COU = AD + ANGLH: COU = (COU - TSL / 24 * 2 * PI) * .9972696# 6630 COU = COU / 2 / PI * 24 6640 IF COU < 0 THEN COU = COU + 24: GOTO 6640 6650 IF COU > 24 THEN COU = COU - 24: GOTO 6650 6660 COUH = INT(COU): COUM = INT((COU - COUH) * 60) 6670 COUS = INT(((COU - COUH) * 60 - COUM) * 60) 6680 PRINT USING " ##h ##mn"; LEVH; LEVM; 6690 PRINT USING " ##h ##mn"; COUH; COUM 6700 IF EPH$ <> "S" THEN GOTO 6990 6710 TS = TS / 2 / PI * 24 6720 IF TS < 0 THEN TS = TS + 24: GOTO 6720 6730 IF TS > 24 THEN TS = TS - 24: GOTO 6730 6740 IF AD * K / 15 > TS THEN EQT = AD * K / 15 - TS - 12 ELSE EQT = AD * K / 15 - TS + 12 6750 EQTH = INT(ABS(EQT)): EQTM = INT((ABS(EQT) - EQTH) * 60): EQTS = INT(((ABS(EQT) - EQTH) * 60 - EQTM) * 60) 6760 PRINT USING "‚quation du temps : ###mn ##s"; SGN(EQT) * EQTM; EQTS 6770 H0S = -PI / 10: CSHS = (SIN(H0S) - SIN(L) * SIN(d)) / COS(L) / COS(d) 6780 IF CSHS < -1 THEN GOTO 7460 ELSE ANGLHS = FNACS(CSHS) 6790 IF CSHS < 0 THEN ANGLHS = PI + ANGLHS 6800 LEVSO = AD - ANGLHS 6810 LEVSO = (LEVSO - TSL / 24 * 2 * PI) * .9972696# 6820 LEVSO = LEVSO / 2 / PI * 24 6830 IF LEVSO < 0 THEN LEVSO = LEVSO + 24: GOTO 6830 6840 IF LEVSO > 24 THEN LEVSO = LEVSO - 24: GOTO 6840 6850 LEVH = INT(LEVSO): LEVM = INT((LEVSO - LEVH) * 60) 6860 LEVS = INT(((LEVSO - LEVH) * 60 - LEVM) * 60) 6870 COUSO = AD + ANGLHS 6880 COUSO = (COUSO - TSL / 24 * 2 * PI) * .9972696# 6890 COUSO = COUSO / 2 / PI * 24 6900 IF COUSO < 0 THEN COUSO = COUSO + 24: GOTO 6900 6910 IF COUSO > 24 THEN COUSO = COUSO - 24: GOTO 6910 6920 COUH = INT(COUSO): COUM = INT((COUSO - COUH) * 60) 6930 COUS = INT(((COUSO - COUH) * 60 - COUM) * 60) 6940 PRINT USING "fin nuit astronomique … ##h ##mn"; LEVH; LEVM 6950 PRINT USING "d‚but nuit astronomique … ##h ##mn"; COUH; COUM: PRINT 6960 ' 6970 'POSITION TERMINATEUR SUR LA LUNE 6980 ' 6990 IF EPH$ <> "L" THEN GOTO 7190 ELSE GOTO 7000 7000 IF AN < 1989 OR AN > 2020 THEN GOTO 7460 7010 COT = COTAN(AN - 1988) + COTJO(J0): XCOR = CORAN(AN - 1988) + CORJO(J0) 7020 IF M0 > 2 THEN COT = COT + COTMO(M0): XCOR = XCOR + CORMO(M0): GOTO 7050 7030 IF AA = 1 THEN COT = COT + COTMO(M0 + 12): XCOR = XCOR + CORMO(M0 + 12): GOTO 7050 7040 COT = COT + COTMO(M0): XCOR = XCOR + CORMO(M0) 7050 IF XCOR > 360 THEN XCOR = XCOR - 360: GOTO 7050 7060 IF XCOR > 180 GOTO 7080 7070 XCOR = INT(XCOR / 10): COT = COT + COR(XCOR): GOTO 7090 7080 XCOR = 360 - XCOR: XCOR = INT(XCOR / 10): COT = COT - COR(XCOR) 7090 IF COT < 0 THEN COT = COT + 360: GOTO 7090 7100 IF COT > 360 THEN COT = COT - 360: GOTO 7100 7110 LL = 360 - COT: LC = 180 - COT 7120 IF LL <= 90 THEN PRINT USING "terminateur du lever … ###.##ø E"; LL 7130 IF LL >= 270 THEN PRINT USING "terminateur du lever … ###.##ø W"; 360 - LL 7140 IF LC <= 0 AND LC > -90 THEN PRINT USING "terminateur du coucher … ###.##ø W"; -LC 7150 IF LC > 0 AND LC < 90 THEN PRINT USING "terminateur du coucher … ###.##ø E"; LC 7160 ' 7170 'COORDONNEES MERIDIEN JUPITER SYSTEMES 1 ET 2 - HEURES DE PASSAGE DE LA TACHE ROUGE 7180 ' 7190 IF VAL(EPH$) <> 4 THEN GOTO 7460 7200 DAYS = JJ - 2451545: CEN = DAYS / 36525 7210 CMA0 = 268.05 - 8.999999E-03 * CEN: CMD0 = 64.49 + .003 * CEN 7220 W1 = 65.637 + 877.90008# * DAYS: CMZ = W1 / 360: W1 = W1 - 360 * INT(CMZ) 7230 W1 = W1 - 877.90008# * .0057755# * DIST 7240 W2 = 41.9 + 870.27 * DAYS: CMZ = W2 / 360: W2 = W2 - 360 * INT(CMZ) 7250 W2 = W2 - 870.27 * .0057755# * DIST 7260 XSINB = -SIN(CMD0 / K) * SIN(d) - COS(CMD0 / K) * COS(d) * COS((CMA0 - AD * K) / K) 7270 XCOSB = SQR(1 - XSINB * XSINB) 7280 XSINK = (-COS(CMD0 / K) * SIN(d) + SIN(CMD0 / K) * COS(d) * COS((CMA0 - AD * K) / K)) / XCOSB 7290 XCOSK = COS(d) * SIN((CMA0 - AD * K) / K) / XCOSB 7300 CMK = ATN(XSINK / XCOSK) * K 7310 W1 = W1 - CMK: IF XCOSK < 0 THEN W1 = W1 + 180 7320 IF W1 < 0 THEN W1 = W1 + 360: GOTO 7320 7330 IF W1 > 360 THEN W1 = W1 - 360: GOTO 7330 7340 W2 = W2 - CMK: IF XCOSK < 0 THEN W2 = W2 + 180 7350 IF W2 < 0 THEN W2 = W2 + 360: GOTO 7350 7360 IF W2 > 360 THEN W2 = W2 - 360: GOTO 7360 7370 RED = 35: DIFF = RED - W2: IF DIFF < 0 THEN DIFF = DIFF + 360 7380 PRINT USING "W1 = ###.#ø "; W1; 7390 PRINT USING "W2 = ###.#ø "; W2; : PRINT "transit tƒche rouge …"; 7400 WHILE DIFF < 870.27 7410 TRAN = DIFF / 870.27 * 24: CMH = FIX(TRAN): CMM = FIX(60 * (TRAN - CMH)) 7420 PRINT USING " ###h## -"; CMH; CMM; 7430 DIFF = DIFF + 360 7440 WEND 7450 PRINT 7460 RETURN 7470 ' 7480 'PHENOMENES ASTRONOMIQUES DE LA SEMAINE 7490 ' 7500 'calcul des ‚l‚ments n‚cessaires … j0,j0+3.5,j0+7 7510 ' 7520 PRINT "tapez une touche pour continuer"; : DO 7530 LOOP WHILE INKEY$ = "" 7540 CLS 7550 PRINT : PRINT "PHENOMENES ASTRONOMIQUES DE LA SEMAINE": PRINT 7560 PRINT "! !" 7570 LOS0 = LOS: DISTS0 = SQR(XS * XS + YS * YS) 7580 J0 = J0 + 3.5: GOSUB 1080: PRINT " "; : PRINT ">"; : GOSUB 1650: LOS35 = LOS 7590 DISTS35 = SQR(XS * XS + YS * YS) 7600 J0 = J0 + 3.5: GOSUB 1080: PRINT ">"; : GOSUB 1650: LOS7 = LOS 7610 DISTS7 = SQR(XS * XS + YS * YS) 7620 J0 = J0 - 7: GOSUB 1080: PRINT ">"; : GOSUB 1650 7630 FOR PLA = 1 TO 8 7640 PRINT ">"; 7650 ON PLA GOSUB 2320, 2480, 2640, 2800, 3120, 3790, 4110, 4440 7660 ON PLA GOSUB 5220, 5220, 5220, 5250, 5250, 5250, 5250, 5280 7670 ANV0(PLA) = AV: LLO0(PLA) = LO: azim0(PLA) = AD 7680 DIST0(PLA) = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2): LOG0(PLA) = LLOG 7690 LGS0(PLA) = LGS: NEXT PLA 7700 J0 = J0 + 3.5: GOSUB 1080: PRINT ">"; : GOSUB 1650 7710 FOR PLA = 1 TO 8 7720 PRINT ">"; 7730 ON PLA GOSUB 2320, 2480, 2640, 2800, 3120, 3790, 4110, 4440 7740 ON PLA GOSUB 5220, 5220, 5220, 5250, 5250, 5250, 5250, 5280 7750 ANV35(PLA) = AV: LLO35(PLA) = LO: AZIM35(PLA) = AD 7760 DIST35(PLA) = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2): LOG35(PLA) = LLOG 7770 LGS35(PLA) = LGS: NEXT PLA 7780 J0 = J0 + 3.5: GOSUB 1080: PRINT ">"; : GOSUB 1650 7790 FOR PLA = 1 TO 8 7800 PRINT ">"; 7810 ON PLA GOSUB 2320, 2480, 2640, 2800, 3120, 3790, 4110, 4440 7820 ON PLA GOSUB 5220, 5220, 5220, 5250, 5250, 5250, 5250, 5280 7830 ANV7(PLA) = AV: LLO7(PLA) = LO: azim7(PLA) = AD 7840 DIST7(PLA) = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2): LOG7(PLA) = LLOG 7850 LGS7(PLA) = LGS: NEXT PLA 7860 J0 = J0 - 7: GOSUB 1080: PRINT ">"; : GOSUB 1650 7870 SJ0 = J0: SM0 = M0: SJ = J2: FOR lun = 1 TO 8 7880 J2 = SJ + lun - 1 7890 PRINT ">"; : GOSUB 1310: GOSUB 1650: losl0(lun) = LOS 7900 GOSUB 4540: distl0(lun) = DISTL: lol0(lun) = LO: aziml0(lun) = AD 7910 lnl0(lun) = Lnl 7920 J2 = J2 + .5 7930 PRINT ">"; : GOSUB 1310: GOSUB 1650: LOSL05(lun) = LOS 7940 GOSUB 4540: DISTL05(lun) = DISTL: LOL05(lun) = LO: AZIML05(lun) = AD 7950 LNL05(lun) = Lnl 7960 J2 = J2 - .5 7970 NEXT lun: J0 = SJ0: M0 = SM0: GOSUB 1080: PRINT ">": GOSUB 1650 7980 ' 7990 'aph‚lie, p‚rih‚lie de la Terre - solstices et equinoxes 8000 ' 8010 TESTD = DISTS7 - 4 * DISTS35 + 3 * DISTS0 8020 TESTD = TESTD / (4 * DISTS7 - 8 * DISTS35 + 4 * DISTS0) 8030 IF TESTD < 0 THEN GOTO 8130 8040 IF TESTD > 1 THEN GOTO 8130 8050 IF DISTS35 < 1 THEN GOTO 8060 ELSE GOTO 8080 8060 PRINT "TERRE au p‚rih‚lie"; 8070 GOTO 8090 8080 PRINT "TERRE … l'aph‚lie"; 8090 IF INT(TESTD * 7) = 0 THEN GOTO 8110 8100 FOR ii = 1 TO INT(TEST * 7): J0 = J0 + 1: GOSUB 1080: NEXT ii 8110 PRINT USING " le ##/##/####"; J0; MOIS; ANNEE 8120 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 8130 IF (LOS0 - PI) * (LOS7 - PI) < 0 THEN PRINT "EQUINOXE"; : GOTO 8170 8140 IF (LOS0 - PI / 2) * (LOS7 - PI / 2) < 0 THEN PRINT "SOLSTICE"; : GOTO 8170 8150 IF (LOS0 - 3 * PI / 2) * (LOS7 - 3 * PI / 2) < 0 THEN PRINT "SOLSTICE"; : GOTO 8170 8160 GOTO 8210 8170 IF M0 < 4 THEN PRINT " de printemps" 8180 IF M0 > 4 AND M0 < 7 THEN PRINT " d'‚t‚" 8190 IF M0 > 7 AND M0 < 10 THEN PRINT " d'automne" 8200 IF M0 > 10 THEN PRINT " d'hiver" 8210 ' 8220 '‚clipses, p‚rig‚e, apog‚e et phases de la lune 8230 ' 8240 FOR lun = 1 TO 7 8250 IF 4 * distl0(lun + 1) - 8 * DISTL05(lun) + 4 * distl0(lun) = 0 THEN GOTO 8380 8260 TESTD = distl0(lun + 1) - 4 * DISTL05(lun) + 3 * distl0(lun) 8270 TESTD = TESTD / (4 * distl0(lun + 1) - 8 * DISTL05(lun) + 4 * distl0(lun)) 8280 IF TESTD < 0 THEN GOTO 8380 8290 IF TESTD > 1 THEN GOTO 8380 8300 TESTD = distl0(lun + 1) - 2 * DISTL05(lun) + distl0(lun) 8310 IF TESTD > 0 THEN GOTO 8320 ELSE GOTO 8330 8320 PRINT "LUNE au p‚rig‚e"; : GOTO 8340 8330 PRINT "LUNE … l'apog‚e"; 8340 IF lun = 1 THEN GOTO 8360 8350 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 8360 PRINT USING " le ##/##/####"; J0; MOIS; ANNEE 8370 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 8380 TEST1 = losl0(lun + 1) - losl0(lun) 8390 TEST2 = lol0(lun + 1) - lol0(lun) 8400 IF TEST1 < 0 THEN losl0(lun + 1) = losl0(lun + 1) + 2 * PI 8410 IF TEST2 < 0 THEN lol0(lun + 1) = lol0(lun + 1) + 2 * PI 8420 TEST1 = lol0(lun) - losl0(lun): TEST2 = lol0(lun + 1) - losl0(lun + 1) 8430 IF TEST1 * TEST2 >= 0 THEN GOTO 8610 8440 PRINT "NOUVELLE LUNE le"; 8450 IF lun = 1 THEN GOTO 8470 8460 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 8470 PRINT USING " ##/##/####"; J0; MOIS; ANNEE 8480 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 8490 ECDN = ABS(losl0(lun) - lnl0(lun)) 8500 ECDN = 2 * PI * (ECDN / 2 / PI - INT(ECDN / 2 / PI)) 8600 IF K * ECDN >= 11 AND ABS(K * ECDN - 180) >= 11 THEN GOTO 9100 ELSE GOSUB 10200: GOTO 9100 8610 IF (TEST1 - PI / 2) * (TEST2 - PI / 2) >= 0 THEN GOTO 8680 8620 PRINT "PREMIER QUARTIER le"; 8630 IF lun = 1 THEN GOTO 8650 8640 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 8650 PRINT USING " ##/##/####"; J0; MOIS; ANNEE 8660 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 8670 GOTO 9100 8680 IF (TEST1 + 3 * PI / 2) * (TEST2 + 3 * PI / 2) >= 0 THEN GOTO 8750 8690 PRINT "PREMIER QUARTIER le"; 8700 IF lun = 1 THEN GOTO 8720 8710 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 8720 PRINT USING " ##/##/####"; J0; MOIS; ANNEE 8730 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 8740 GOTO 9100 8750 IF (TEST1 - PI) * (TEST2 - PI) >= 0 THEN GOTO 8820 8760 PRINT "PLEINE LUNE le"; 8770 IF lun = 1 THEN GOTO 8790 8780 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 8790 PRINT USING " ##/##/####"; J0; MOIS; ANNEE 8800 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 8810 GOTO 8880 8820 IF (TEST1 + PI) * (TEST2 + PI) >= 0 THEN GOTO 8970 8830 PRINT "PLEINE LUNE le"; 8840 IF lun = 1 THEN GOTO 8860 8850 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 8860 PRINT USING " ##/##/####"; J0; MOIS; ANNEE 8870 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 8880 ECDN = ABS(losl0(lun) - lnl0(lun)) 8890 ECDN = 2 * PI * (ECDN / 2 / PI - INT(ECDN / 2 / PI)) 8900 IF K * ECDN >= 15 AND ABS(K * ECDN - 180) >= 15 THEN GOTO 9100 8910 PRINT "ECLIPSE DE LUNE le"; 8920 IF lun = 1 THEN GOTO 8940 8930 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 8940 PRINT USING " ##/##/####"; J0; MOIS; ANNEE 8950 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 8960 GOTO 9100 8970 IF (TEST1 + PI / 2) * (TEST2 + PI / 2) >= 0 THEN GOTO 9040 8980 PRINT "DERNIER QUARTIER le"; 8990 IF lun = 1 THEN GOTO 9010 9000 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 9010 PRINT USING " ##/##/####"; J0; MOIS; ANNEE 9020 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 9030 GOTO 9100 9040 IF (TEST1 - 3 * PI / 2) * (TEST2 - 3 * PI / 2) >= 0 THEN GOTO 9100 9050 PRINT "DERNIER QUARTIER le"; 9060 IF lun = 1 THEN GOTO 9080 9070 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 9080 PRINT USING " ##/##/####"; J0; MOIS; ANNEE 9090 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 9100 IF losl0(lun + 1) > 2 * PI THEN losl0(lun + 1) = losl0(lun + 1) - 2 * PI 9110 IF lol0(lun + 1) > 2 * PI THEN lol0(lun + 1) = lol0(lun + 1) - 2 * PI 9120 NEXT lun 9130 ' 9140 'aph‚lie, p‚rih‚lie, conjonctions, oppositions, p‚rig‚e, apog‚e 9150 'des planŠtes, plus grandes ‚longations de Mercure et V‚nus 9160 ' 9170 'aph‚lie et p‚rih‚lie 9180 FOR PLA = 1 TO 8 9190 IF ANV0(PLA) * ANV7(PLA) >= 0 THEN GOTO 9280 9200 IF ABS(ANV7(PLA)) > PI / 2 THEN PERI$ = " … l'aph‚lie le " ELSE PERI$ = " au p‚rih‚lie le " 9210 PRINT B$(PLA); PERI$; 9220 ECART = 7 - ABS(ANV7(PLA) / (ANV7(PLA) - ANV0(PLA))) * 7 9230 ECART = INT(ECART) 9240 IF ECART = 0 THEN GOTO 9260 9250 FOR ii = 1 TO ECART: J0 = J0 + 1: GOSUB 1080: NEXT ii 9260 PRINT USING "##/##/####"; J0; MOIS; ANNEE 9270 J0 = SJ0: M0 = SM0: GOSUB 1080 9280 NEXT PLA 9290 'conjonctions et oppositions 9300 IF LOS7 < LOS0 THEN LOS7 = LOS7 + 2 * PI 9310 FOR PLA = 1 TO 8 9320 IF LLO7(PLA) < LLO0(PLA) THEN LLO7(PLA) = LLO7(PLA) + 2 * PI 9330 SIG1 = SGN((LLO0(PLA) - LOS0) * (LLO7(PLA) - LOS7)) 9340 SIG2 = SGN((ABS(LLO0(PLA) - LOS0) - PI) * (ABS(LLO7(PLA) - LOS7) - PI)) 9350 IF SIG1 >= 0 AND SIG2 >= 0 THEN GOTO 9410 9360 IF PLA < 3 THEN GOTO 9390 9370 IF ABS(LLO7(PLA) - LOS7) > PI / 2 THEN PERI$ = " en opposition" ELSE PERI$ = " en conjonction" 9380 GOTO 9400 9390 IF ABS(LLO7(PLA) - LOS7) > PI / 2 THEN PERI$ = " en conjonction inf." ELSE PERI$ = " en conjonction sup." 9400 PRINT B$(PLA); PERI$ 9410 IF LLO7(PLA) > 2 * PI THEN LLO7(PLA) = LLO7(PLA) - 2 * PI 9420 NEXT PLA 9430 IF LOS7 > 2 * PI THEN LOS7 = LOS7 - 2 * PI 9440 'p‚rig‚e et apog‚e 9450 FOR PLA = 1 TO 8 9460 TESTD = 4 * DIST7(PLA) - 8 * DIST35(PLA) + 4 * DIST0(PLA) 9470 IF TESTD = 0 THEN GOTO 9600 9480 TESTD1 = DIST7(PLA) - 4 * DIST35(PLA) + 3 * DIST0(PLA) 9490 TESTD1 = TESTD1 / TESTD 9500 IF TESTD1 < 0 THEN GOTO 9600 9510 IF TESTD1 > 1 THEN GOTO 9600 9520 TESTD = DIST7(PLA) - 2 * DIST35(PLA) + DIST0(PLA) 9530 IF TESTD > 0 THEN PERI$ = " au p‚rig‚e le " 9540 IF TESTD < 0 THEN PERI$ = " … l'apog‚e le " 9550 PRINT B$(PLA); PERI$; 9560 IF INT(TESTD1 * 7) = 0 THEN GOTO 9580 9570 FOR ii = 1 TO INT(TESTD1 * 7): J0 = J0 + 1: GOSUB 1080: NEXT ii 9580 PRINT USING "##/##/####"; J0; MOIS; ANNEE 9590 J0 = SJ0: M0 = SM0: GOSUB 1080 9600 NEXT PLA 9610 'plus grandes ‚longations de Mercure et V‚nus 9620 FOR PLA = 1 TO 2 9630 IF LGS35(PLA) < LGS0(PLA) THEN LGS35(PLA) = LGS35(PLA) + 2 * PI 9640 IF LGS7(PLA) < LGS35(PLA) THEN LGS7(PLA) = LGS7(PLA) + 2 * PI 9650 IF ABS(LOG35(PLA) - LOG0(PLA)) < PI THEN GOTO 9670 9660 IF LOG35(PLA) < LOG0(PLA) THEN LOG35(PLA) = LOG35(PLA) + 2 * PI ELSE LOG0(PLA) = LOG0(PLA) + 2 * PI 9670 IF ABS(LOG7(PLA) - LOG35(PLA)) < PI THEN GOTO 9690 9680 IF LOG7(PLA) < LOG35(PLA) THEN LOG7(PLA) = LOG7(PLA) + 2 * PI 9690 DELTA1 = LOG0(PLA) - LGS0(PLA) 9700 DELTA2 = LOG35(PLA) - LGS35(PLA) 9710 DELTA3 = LOG7(PLA) - LGS7(PLA) 9720 TESTD = DELTA3 - 4 * DELTA2 + 3 * DELTA1: IF TESTD = 0 THEN GOTO 9830 9730 TESTD = TESTD / (4 * DELTA3 - 8 * DELTA2 + 4 * DELTA1) 9740 IF TESTD < 0 OR TESTD > 1 THEN GOTO 9830 9750 PRINT "plus grande ‚longation "; 9760 IF ABS(LOG0(PLA) - LGS0(PLA)) > PI THEN coef = -1 ELSE coef = 1 9770 IF coef * (LOG0(PLA) - LGS0(PLA)) < 0 THEN PRINT "Ouest de "; ELSE PRINT "Est de "; 9780 PRINT B$(PLA); " le "; 9790 IF INT(TESTD1 * 7) = 0 THEN GOTO 9810 9800 FOR ii = 1 TO INT(TESTD * 7): J0 = J0 + 1: GOSUB 1080: NEXT ii 9810 PRINT USING "##/##/####"; J0; MOIS; ANNEE 9820 J0 = SJ0: M0 = SM0: GOSUB 1080 9830 NEXT PLA 9840 'conjonctions planŠtes-lune et planŠtes-planŠtes 9850 FOR PLA = 1 TO 8 9860 IF ABS(azim7(PLA) - azim0(PLA)) < PI THEN GOTO 9890 9870 IF azim7(PLA) < azim0(PLA) THEN azim7(PLA) = azim7(PLA) + 2 * PI 9880 IF azim0(PLA) < azim7(PLA) THEN azim0(PLA) = azim0(PLA) + 2 * PI 9890 FOR lun = 1 TO 7 9900 IF aziml0(lun + 1) < aziml0(lun) THEN aziml0(lun + 1) = aziml0(lun + 1) + 2 * PI 9910 TEST1 = azim0(PLA) - aziml0(lun) 9920 TEST2 = azim0(PLA) - aziml0(lun + 1) 9930 IF TEST1 < 0 AND TEST2 > 0 THEN PRINT B$(PLA); " en conjonction avec la lune le "; : GOTO 9960 9940 IF TEST1 > 0 AND TEST2 < 0 THEN PRINT B$(PLA); " en conjonction avec la lune le "; : GOTO 9960 9950 GOTO 10000 9960 IF lun = 1 THEN GOTO 9980 9970 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: NEXT ii 9980 PRINT USING "##/##/####"; J0; MOIS; ANNEE 9990 J0 = SJ0: M0 = SM0: GOSUB 1080: GOTO 10010 10000 NEXT lun 10010 IF azim7(PLA) > 2 * PI THEN azim7(PLA) = azim7(PLA) - 2 * PI 10020 IF azim0(PLA) > 2 * PI THEN azim0(PLA) = azim0(PLA) - 2 * PI 10030 NEXT PLA 10040 FOR PLA1 = 1 TO 7 10050 IF ABS(azim0(PLA1) - azim7(PLA1)) < PI THEN GOTO 10080 10060 IF azim0(PLA1) < azim7(PLA1) THEN azim0(PLA1) = azim0(PLA1) + 2 * PI 10070 IF azim0(PLA1) > azim7(PLA1) THEN azim7(PLA1) = azim7(PLA1) + 2 * PI 10080 FOR PLA2 = PLA1 + 1 TO 8 10090 IF ABS(azim0(PLA2) - azim7(PLA2)) < PI THEN GOTO 10120 10100 IF azim0(PLA2) < azim7(PLA2) THEN azim0(PLA2) = azim0(PLA2) + 2 * PI 10110 IF azim0(PLA2) > azim7(PLA2) THEN azim7(PLA2) = azim7(PLA2) + 2 * PI 10120 IF azim0(PLA1) < azim0(PLA2) AND azim7(PLA1) > azim7(PLA2) THEN PRINT B$(PLA1); " en conjonction avec "; B$(PLA2) 10130 IF azim0(PLA1) > azim0(PLA2) AND azim7(PLA1) < azim7(PLA2) THEN PRINT B$(PLA1); " en conjonction avec "; B$(PLA2) 10140 NEXT PLA2 10150 NEXT PLA1 10160 GOTO 10690 10170 ' 10180 'ECLIPSE DE SOLEIL 10190 ' 10200 PRINT : PRINT "ECLIPSE DE SOLEIL le"; 10210 IF lun = 1 THEN GOTO 10230 10220 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1080: GOSUB 1650: NEXT ii 10230 PRINT USING " ##/##/####"; J0; MOIS; ANNEE; 10240 heur = (lol0(lun) - losl0(lun)) * 24 / (losl0(lun + 1) - losl0(lun) - lol0(lun + 1) + lol0(lun)) 10250 HEURH = INT(heur): HEURM = (heur - HEURH) * 60 10260 PRINT USING " … ##h##m"; HEURH; HEURM 10270 TERSO = DISTS0 * 149597870: PRINT USING " distance Terre-Soleil : ######### km"; TERSO 10280 TERLU = distl0(lun) + (distl0(lun + 1) - distl0(lun)) / 24 * heur: PRINT USING " distance Terre-Lune : ###### km"; TERLU 10290 lll = losl0(lun) + (losl0(lun + 1) - losl0(lun)) / 24 * heur 10300 PRINT USING " longitude du Soleil : ###d##'"; INT(lll * K); (K * lll - INT(K * lll)) * 60 10310 lll = lol0(lun) + (lol0(lun + 1) - lol0(lun)) / 24 * heur 10320 PRINT USING " longitude de la Lune: ###d##'"; INT(lll * K); (K * lll - INT(K * lll)) * 60 10330 PRINT USING " longitude du noeud ascendant de la Lune : ###d##'"; INT(K * lnl0(lun)); (K * lnl0(lun) - INT(K * lnl0(lun))) * 60: IF ABS(lll - lnl0(lun)) > PI / 2 THEN coef = -1 ELSE coef = 1 10340 PRINT USING " d‚clinaison du Soleil : ###d##'"; INT(d * K); (d * K - INT(d * K)) * 60 10350 llo = (heur - 12) * 15: PRINT USING " longitude du point de dur‚e maxi : ###d##'"; INT(llo); (llo - INT(llo)) * 60 10360 ll1 = d * K + K * FNASN((TERLU + 4670) * SIN(lll - lnl0(lun)) * SIN(5.216 / K) * TERSO / (TERSO - (TERLU + 4670)) / 6378) 10370 PRINT USING " latitude du point de dur‚e maxi : ###d##'"; INT(ll1); (ll1 - INT(ll1)) * 60 10380 xxx = (1390000 * TERLU - 3476 * TERSO) / 1386524 10390 lar = 2 * 6370 * ATN(3476 * (6370 - xxx) / 2 / (TERLU - xxx) / 6370) 10400 PRINT USING " largeur maxi de l'ombre : ### km"; lar 10410 TPS = 2 * 2 * 60 * K * 1.93 * (ATN(3476 / 2 / TERLU) - ATN(1390000 / TERSO / 2)) 10420 PRINT USING " dur‚e maximale estim‚e : ##'##''"; INT(TPS); (TPS - INT(TPS)) * 60 10430 XK = (JJ - 2415020.75933#) / 29.53058868#: XK1 = INT(XK): IF XK - XK1 > .5 THEN XK1 = XK1 + 1 ELSE XK1 = XK1 - 1 10450 XT = XK1 / 1236.85: XFA = 1 / 57.2957795# 10460 XJD = 2415020.75933# + 29.53058868# * XK1 + .0001178# * XT * XT - .000000155# * XT * XT * XT + .00033 * SIN(XFA * (166.56 + 132.87 * XT - .009173 * XT * XT)) 10470 XM = XFA * (359.2242 + 29.10535608# * XK1 - .0000333# * XT * XT - .00000347# * XT * XT * XT) 10480 XMP = XFA * (306.0253 + 385.81691806# * XK1 + .00107306# * XT * XT + .00001236# * XT * XT * XT) 10490 XF = XFA * (21.2964 + 390.670506# * XK1 - .0016528# * XT * XT - .00000239# * XT * XT * XT) 10500 XS = 5.19595 - .0048 * COS(XM) + .02 * COS(2 * XM) - .3283 * COS(XMP) - .006 * COS(XM + XMP) + .0041 * COS(XM - XMP) 10510 XC = .207 * SIN(XM) + .0024 * SIN(2 * XM) - .039 * SIN(XMP) + .0115 * SIN(2 * XMP) - .0073 * SIN(XM + XMP) - .0067 * SIN(XM - XMP) + .0117 * SIN(2 * XF) 10520 XGA = XS * SIN(XF) + XC * COS(XF) 10530 XU = .0059 + .0046 * COS(XM) - .0182 * COS(XMP) + .0004 * COS(2 * XMP) - .0005 * COS(XM + XMP) 10540 IF ABS(XGA) > 1.5432 + XU THEN RETURN 10550 IF ABS(XGA) < .9972 THEN PRINT " ECLIPSE CENTRALE": GOTO 10610 10560 PRINT " ECLIPSE NON CENTRALE" 10570 IF ABS(XGA) < .9972 + ABS(XU) THEN PRINT " ECLIPSE TOTALE/ANNULAIRE": GOTO 10610 10590 PRINT " ECLIPSE PARTIELLE": XGG = (1.5432 + XU - ABS(XGA)) / (.546 + 2 * XU) 10600 PRINT " grandeur : "; INT(XGG * 100) / 100 10610 IF XU < 0 THEN PRINT " ECLIPSE TOTALE": GOTO 10650 10620 IF XU > .0047 THEN PRINT " ECLIPSE ANNULAIRE": GOTO 10650 10630 IF XU > .00464 + SQR(1 - XGA * XGA) THEN PRINT " ECLIPSE ANNULAIRE": GOTO 10650 10640 PRINT " ECLIPSE ANNULAIRE/TOTALE" 10650 XJD = XJD + (.1734 - .000393 * XT) * SIN(XM) + .0021 * SIN(2 * XM) - .4068 * SIN(XMP) + .0161 * SIN(2 * XMP) - .0051 * SIN(XM + XMP) - .0074 * SIN(XM - XMP) - .0104 * SIN(2 * XF) 10660 PRINT 10670 J0 = SJ0: M0 = SM0: GOSUB 1080: GOSUB 1650 10680 RETURN 10690 ' 10700 'CONFIGURATION DES SATELLITES DE JUPITER 10710 ' 10720 PRINT "tapez une touche pour continuer": DO 10730 LOOP WHILE INKEY$ = "" 10740 SCREEN 12 10750 CLS 10760 PRINT "CONFIGURATION DES SATELLITES DE JUPITER SUR UNE SEMAINE" 10770 PRINT "… partir du "; : PRINT USING "##/##/####"; J0; MOIS; ANNEE; 10780 PRINT " … 0hTU" 10790 GOSUB 1080: GOSUB 1650: GOSUB 2800: GOSUB 5250 10800 DTJ = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2) 10810 AB = DTJ * 1.58E-08 10820 LINE (8, 122)-(456, 122) 10830 LINE (8, 128)-(456, 128) 10840 FOR ii = 1 TO 8 10850 LINE (8 + 64 * (ii - 1), 60)-(8 + 64 * (ii - 1), 195) 10860 NEXT ii 10870 LOCATE 7, 60: PRINT "EST": LOCATE 12, 60: PRINT "OUEST" 10880 FOR ii = 1 TO 8: LOCATE 4, 1 + 8 * (ii - 1): PRINT USING "#"; ii - 1; : NEXT ii 10890 ST = T: T = T - AB: LLG = .3147121856# + 1297204.6697# * T 10900 RSA = 5.905: TE = LLG - LLOG + PI: EL = RSA * SIN(TE): PSET (8, 123.5 + 2.5 * EL): YY = 123.5 + 2.5 * EL 10910 FOR ii = 1 TO 224: T = T + 7 / 224 / 365250 10920 LLG = .3147121856# + 1297204.6697# * T 10930 RSA = 5.905: TE = LLG - LLOG + PI: EL = RSA * SIN(TE) 10940 YY1 = 123.5 + 2.5 * EL: IF YY1 > YY THEN LINE -(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 10970 10950 IF YY1 < YY AND YY1 > 128 THEN LINE -(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 10970 10960 IF YY1 < YY AND YY1 < 122 THEN LINE (6 + 2 * ii, YY)-(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 10970 10970 YY = YY1: NEXT ii 10980 T = ST: T = T - AB: LLG = 3.7128912277# + 646245.3628# * T 10990 RSA = 9.3969: TE = LLG - LLOG + PI: EL = RSA * SIN(TE): PSET (8, 123.5 + 2.5 * EL): YY = 123.5 + 2.5 * EL 11000 FOR ii = 1 TO 224: T = T + 7 / 224 / 365250 11010 LLG = 3.7128912277# + 646245.3628# * T 11020 RSA = 9.3969: TE = LLG - LLOG + PI: EL = RSA * SIN(TE) 11030 YY1 = 123.5 + 2.5 * EL: IF YY1 > YY THEN LINE -(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11060 11040 IF YY1 < YY AND YY1 > 128 THEN LINE -(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11060 11050 IF YY1 < YY AND YY1 < 122 THEN LINE (6 + 2 * ii, YY)-(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11060 11060 YY = YY1: NEXT ii 11070 T = ST: T = T - AB: LLG = 3.840528532# + 320765.6891# * T 11080 RSA = 14.989: TE = LLG - LLOG + PI: EL = RSA * SIN(TE): PSET (8, 123.5 + 2.5 * EL): YY = 123.5 + 2.5 * EL 11090 FOR ii = 1 TO 224: T = T + 7 / 224 / 365250 11100 LLG = 3.840528532# + 320765.6891# * T 11110 RSA = 14.989: TE = LLG - LLOG + PI: EL = RSA * SIN(TE) 11120 YY1 = 123.5 + 2.5 * EL: IF YY1 > YY THEN LINE -(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11150 11130 IF YY1 < YY AND YY1 > 128 THEN LINE -(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11150 11140 IF YY1 < YY AND YY1 < 122 THEN LINE (6 + 2 * ii, YY)-(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11150 11150 YY = YY1: NEXT ii 11160 T = ST: T = T - AB: LLG = 1.382313333# + 137511.8375# * T 11170 RSA = 26.341: TE = LLG - LLOG + PI: EL = RSA * SIN(TE): PSET (8, 123.5 + 2.5 * EL): YY = 123.5 + 2.5 * EL 11180 FOR ii = 1 TO 224: T = T + 7 / 224 / 365250 11190 LLG = 1.382313333# + 137511.8375# * T 11200 RSA = 26.341: TE = LLG - LLOG + PI: EL = RSA * SIN(TE) 11210 YY1 = 123.5 + 2.5 * EL: IF YY1 > YY THEN LINE -(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11240 11220 IF YY1 < YY AND YY1 > 128 THEN LINE -(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11240 11230 IF YY1 < YY AND YY1 < 122 THEN LINE (6 + 2 * ii, YY)-(8 + 2 * ii, 123.5 + 2.5 * EL): GOTO 11240 11240 YY = YY1: NEXT ii 11250 END: GOTO 1040