10 REM "ephemer":'11/05/94 20 DIM N(17): DIM B$(8): DIM DIAM(8): DIM sem$(7): DIM sem1$(7) 21 N(1) = 0: N(2) = 31: N(3) = 59: N(4) = 90: N(5) = 120: N(6) = 151 22 N(7) = 181: N(8) = 212: N(9) = 243: N(10) = 273: N(11) = 304: N(12) = 334 23 N(13) = 365: N(14) = 396: N(15) = 424: N(16) = 455: N(17) = 484 24 B$(1) = "MERCURE": B$(2) = "VENUS": B$(3) = "MARS": B$(4) = "JUPITER" 25 B$(5) = "SATURNE": B$(6) = "URANUS": B$(7) = "NEPTUNE": B$(8) = "PLUTON" 26 DIAMS = 1390000: DIAML = 3475: DIAM(1) = 4878: DIAM(2) = 12104 27 DIAM(3) = 6794: DIAM(4) = 142880: DIAM(5) = 120000: DIAM(6) = 50800 28 DIAM(7) = 48600: DIAM(8) = 3500 29 sem$(1) = "LUNDI ": sem$(2) = "MARDI ": sem$(3) = "MERCREDI" 30 sem$(4) = "JEUDI ": sem$(5) = "VENDREDI": sem$(6) = "SAMEDI " 31 sem$(7) = "DIMANCHE": sem$(0) = "DIMANCHE" 32 DIM ANV0(8): DIM LLO0(8): DIM azim0(8): DIM DIST0(8): DIM LOG0(8): DIM LGS0(8) 35 DIM ANV35(8): DIM LLO35(8): DIM AZIM35(8): DIM DIST35(8): DIM LOG35(8): DIM LGS35(8) 36 DIM ANV7(8): DIM LLO7(8): DIM azim7(8): DIM DIST7(8): DIM LOG7(8): DIM LGS7(8) 37 DIM DISTL0(8): DIM LOL0(8): DIM aziml0(8) 38 DIM losl0(8): DIM lnl0(8) 39 DIM DISTL05(8): DIM LOL05(8): DIM AZIML05(8) 40 DIM LOSL05(8): DIM LNL05(8) 41 ts0 = 100.58805#: pi = 4 * ATN(1): K = 180 / pi 42 DEF FNASN (X) = ATN(X / SQR(1 - X * X)) 43 DEF FNACS (X) = ATN(SQR(1 - X * X) / X) 49 CLS : PRINT "jour de calcul" 50 INPUT "date : jour(jj) "; JJ: JJ = JJ - 7 60 INPUT " mois(mm) "; mm 70 INPUT " ann‚e(aaaa) "; AN 80 hh = 0: INPUT "heure TU : hh"; hh 90 mi = 0: INPUT " mi"; mi 100 ss = 0: INPUT " ss"; ss 101 PRINT "-1- LUNDI" 102 PRINT "-2- MARDI" 103 PRINT "-3- MERCREDI" 104 PRINT "-4- JEUDI" 105 PRINT "-5- VENDREDI" 106 PRINT "-6- SAMEDI" 107 PRINT "-7- DIMANCHE" 108 INPUT "quel est le jour du premier janvier de l'ann‚e ?"; jo 109 FOR i = 1 TO 7 110 sem1$(i) = sem$(((jo - 1 + i) / 7 - INT((jo - 1 + i) / 7)) * 7): NEXT i 111 sem1$(0) = sem1$(7) 112 ld = -2: mn = 20: se = 0: lad = 48: lam = 50: las = 0: PRINT USING "longitude : ##d##m##s latitude ##d##m##s"; ld; mn; se; lad; lam; las 113 INPUT "changement de longitude et latitude oui=1 non=0"; quest 114 IF quest <> 1 THEN GOTO 140 115 PRINT "longitude positive vers l'OUEST": INPUT "longitude dd"; ld 120 INPUT " mn"; mn 130 INPUT " ss"; se 131 INPUT "latitude dd"; lad 132 INPUT " mn"; lam 133 INPUT " ss"; las 140 G = (ABS(ld) + mn / 60 + se / 3600) * pi / 180 141 IF ld < 0 THEN G = -1 * G 142 L = (ABS(lad) + lam / 60 + las / 3600) * pi / 180 143 IF lad < 0 THEN L = -1 * L 150 J0 = JJ: M0 = mm 160 J0 = J0 + 7: GOSUB 1320: GOTO 1570 1300 ' 1310 'CALCUL DE J2, T et TSL 1315 ' 1320 TEST = 0: IF J0 < 0 THEN M0 = M0 - 1: J0 = N(M0 + 1) - N(M0) + J0 1330 IF J0 = 1 AND M0 = 1 THEN GOTO 1451 1340 IF M0 > 2 THEN TEST = 1 1350 J2 = N(M0) + J0 1360 IF J2 < N(M0 + 1) THEN GOTO 1380 1370 M0 = M0 + 1: J0 = J2 - N(M0): GOTO 1360 1380 IF M0 <= 2 OR TEST = 1 THEN GOTO 1440 1390 AA = AN / 4 - INT(AN / 4) 1400 IF AA <> 0 THEN GOTO 1440 1410 aaa = AN / 100 - INT(AN / 100): aaaa = AN / 400 - INT(AN / 400) 1420 IF aaa = 0 AND aaaa <> 0 THEN GOTO 1440 1430 J0 = J0 - 1: TEST = 1 1440 IF J0 = 0 THEN M0 = M0 - 1: J0 = J2 - N(M0) 1450 IF J0 = -1 THEN J0 = 0: GOTO 1320 1451 JJ = 367 * AN - INT(1.75 * (INT((M0 + 9) / 12) + AN)) - INT(.75 * (1 + INT((INT((M0 - 9) / 12) + AN) * .01))) + INT(275 * M0 / 9) + J0 + 1721028.5# 1460 J2 = N(M0) + J0 + (hh + mi / 60 + ss / 3600) * 1.0027379# / 24 - 1 1470 AA = AN / 4 - INT(AN / 4): aaa = AN / 100 - INT(AN / 100) 1475 aaaa = AN / 400 - INT(AN / 400) 1480 IF AA = 0 THEN AA = 1 1490 IF aaa = 0 AND aaaa <> 0 THEN AA = AN / 4 - INT(AN / 4) 1500 IF AA = 1 AND M0 > 2 THEN J2 = J2 + 1 1510 T = ((AN - 2000) * 365.25 + .5 + J2 - AA) / 365250 1520 ts1 = ts0 + 360.98564735# * J2 1530 TS = 2 * pi * (ts1 / 360 - INT(ts1 / 360)) 1540 TSL = TS - G 1550 TSL = TSL / 2 / pi * 24 + .004722 1560 TSLH = INT(TSL): TSLM = INT((TSL - TSLH) * 60) 1561 TSLS = INT(((TSL - TSLH) * 60 - TSLM) * 60) 1562 jour$ = sem1$(((J2 + 1) / 7 - INT((J2 + 1) / 7)) * 7) 1563 sema = INT((J2 + jo - 1) / 7) + 1 1564 IF M0 > 12 AND J0 > 8 THEN PRINT "CHANGEMENT D'ANNEE": END 1565 RETURN 1570 CLS : PRINT USING "&"; jour$; 1571 PRINT USING " ##/##/#### jour nř ### de l'ann‚e JJ=#######.#"; J0; M0; AN; J2 + 1; JJ 1572 PRINT "SEMAINE nř "; sema: PRINT 1577 PRINT USING "LIEU : LONGITUDE G= ## deg. ## ' ## ''"; ld; mn; se 1578 PRINT USING " LATITUDE L= ## deg. ## ' ## ''"; lad; lam; las 1579 PRINT 1580 PRINT "heure sid‚rale locale" 1581 PRINT USING " = ## h ## mn ## s"; TSLH; TSLM; TSLS 1740 ' 1750 ' INCLINAISON ECLIPTIQUE SUR PLAN EQUATORIAL 1770 ' 1780 GOSUB 1790: GOTO 2150 1790 IE = .4090928042# - .0022696552# * T - 2.86E-07 * T * T 1791 IE = IE + 8.789672E-06 * T * T * T 1800 ASS = 1.00000101778# 1810 ' 1820 'PARAMETRES DU SOLEIL 1830 ' 1840 LMS = 4.895062967# + 6283.319663# * T + 5.300181E-04 * T * T 1841 LMS = LMS + .00000036942802# * T * T * T 1850 KAS = -.003740816# - .004793106# * T + .000281128# * T * T 1851 KAS = KAS + 7.3831E-05 * T * T * T 1860 HAS = .016284477# - .001532379# * T - .000720171# * T * T 1861 HAS = HAS + 3.2299E-05 * T * T * T 1870 ' 1880 'COORDONNEES GEOCENTRIQUES ECLIPTIQUES DU SOLEIL 1890 ' 1900 LPS = ATN(HAS / KAS) 1910 ES = ABS(HAS / SIN(LPS)) 1920 AMS = LMS - LPS 1930 AES = AMS 1940 FOR i = 1 TO 30 1950 AES = AMS + ES * SIN(AES) 1960 NEXT i 1970 AVS = 2 * ATN(SQR((1 + ES) / (1 - ES)) * TAN(AES / 2)) 1980 ALS = AVS + LPS 1990 LOS = ALS 2000 IF LOS < 0 THEN LOS = LOS + 2 * pi 2010 ' 2020 ' COORDONNEES EQUATORIALES DU SOLEIL 2030 ' 2040 d = FNASN(SIN(IE) * SIN(LOS)) 2050 AD = ATN(COS(IE) * TAN(LOS)) 2060 IF COS(LOS) < 0 THEN AD = AD + pi 2070 IF AD < 0 THEN AD = AD + 2 * pi 2080 RVS = ASS * (1 - ES * COS(AES)) 2090 XS = RVS * COS(LOS): X2 = XS 2100 YS = RVS * SIN(LOS): Y2 = YS: Z2 = 0 2110 AH = TS - AD - G: LO = LOS 2115 IF AH > pi THEN AH1 = 2 * pi - AH ELSE AH1 = AH 2120 IF AH < 0 THEN AH = AH + 2 * pi 2125 IF AH > pi THEN AH1 = 2 * pi - AH ELSE AH1 = AH 2130 RETURN 2140 ' 2150 'EPHEMERIDES SOLEIL LUNE PLANETES 2160 ' 2180 EPH$ = "S": GOSUB 5710: GOSUB 7000 2190 EPH$ = "L": BOUC = 0: GOSUB 4170: GOSUB 7000 2193 PRINT "tapez une touche pour continuer": DO 2194 LOOP WHILE INKEY$ = "" 2195 CLS 2200 EPH$ = "1": GOSUB 2310 2210 EPH$ = "2": GOSUB 2430 2220 EPH$ = "3": GOSUB 2540 2230 EPH$ = "4": GOSUB 2650 2240 EPH$ = "5": GOSUB 2920 2250 EPH$ = "6": GOSUB 3520 2260 EPH$ = "7": GOSUB 3790 2270 EPH$ = "8": GOSUB 4060 2280 GOTO 10000 2290 ' 2300 'MERCURE 2310 ' 2320 GOSUB 2330: GOSUB 5170: GOSUB 7000: RETURN 2330 A = .38709830982# 2340 LM = 4.402608842# + 26088.14707# * T + 5.305219E-04 * T * T 2345 LM = LM + 3.098E-07 * T * T * T 2350 KA = .044660598# - .054483487# * T - .001806305# * T * T 2355 KA = KA + 6.63185E-04 * T * T * T 2360 HA = .200723314# + .012331538# * T - .007334087# * T * T 2365 HA = HA - .000185002# * T * T * T 2370 Q = .040615634# - .009342389# * T - .000919439# * T * T 2375 Q = Q + 6.5185E-05 * T * T * T 2380 P = .045635505# + 8.527127E-03 * T - .000955642# * T * T 2385 P = P - .000067142# * T * T * T 2390 RETURN 2400 ' 2410 'VENUS 2420 ' 2430 GOSUB 2440: GOSUB 5170: GOSUB 7000: RETURN 2440 A = .72332981996# 2450 LM = 3.171146696# + 10213.52942# * T + .00054210556# * T * T 2455 LM = LM + 2.535E-07 * T * T * T 2460 KA = -.004492821# - 9.23135E-04 * T + .000225036# * T * T 2465 KA = KA - .000001441# * T * T * T 2470 HA = .005066847# - .001456941# * T - .000058477# * T * T 2475 HA = HA + .000022573# * T * T * T 2480 Q = .006824101# - .004512949# * T - .00011843# * T * T 2485 Q = Q + .000017766# * T * T * T 2490 P = .028822858# + .001158456# * T - .000349201# * T * T 2495 P = P - .000008779# * T * T * T 2500 RETURN 2510 ' 2520 'MARS 2530 ' 2540 GOSUB 2550: GOSUB 5170: GOSUB 7000: RETURN 2550 A = 1.52367934191# 2560 LM = 6.203480913# + 3340.856278# * T + .00054274843# * T * T 2565 LM = LM + 2.66E-07 * T * T * T 2570 KA = .085365603# + .013005053# * T + .004287376# * T * T 2575 KA = KA - .000259837# * T * T * T 2580 HA = -.037899732# + .02706276# * T + .002245677# * T * T 2585 HA = HA - .000451825# * T * T * T 2590 Q = .010470426# - .001689431# * T - .000082811# * T * T 2595 Q = Q + .000003613# * T * T * T 2600 P = .012284493# + .001371039# * T - .000107356# * T * T 2605 P = P - .000002604# * T * T * T 2610 RETURN 2620 ' 2630 'JUPITER 2640 ' 2650 GOSUB 2660: GOSUB 5200: GOSUB 7000: RETURN 2660 A = 5.20260319132# + 1.91323E-06 * T 2670 LM = .5595464972# + 529.9348075# * T + .00039049899# * T * T 2675 LM = LM + 4.34E-07 * T * T * T 2680 KA = .046985721# - .001796949# * T - .002042137# * T * T 2685 KA = KA - .000040262# * T * T * T 2690 HA = .012003857# + .013628604# * T + .000042602# * T * T 2695 HA = HA - .000210827# * T * T * T 2700 Q = -.002065611# - .001905724# * T + .000108273# * T * T 2705 Q = Q + .000008934# * T * T * T 2710 P = .011183772# - .000839731# * T - .000159489# * T * T 2715 P = P + .000007916# * T * T * T 2720 ' 2730 'perturbations de Jupiter 2740 ' 2750 LP = ATN(HA / KA) 2760 IF KA < 0 THEN LP = LP + pi 2770 E = ABS(HA / SIN(LP)) 2780 B = 3.08686 + 7.11355 * T 2790 U1 = SIN(B): V1 = COS(B) 2800 DA = 4.5902E-06 * V1 2810 A = A + DA 2820 DLM = 5.78402E-03 * V1 2830 LM = LM + DLM 2840 DE = .0000063 * V1 + 2.2515E-06 * V1 2850 E = E + DE 2860 DLP = (1.2217E-04 * U1 - 3.4906E-04 * V1) / E 2870 LP = LP + DLP 2880 RETURN 2890 ' 2900 'SATURNE 2910 ' 2920 GOSUB 2930: GOSUB 5200: GOSUB 7000: RETURN 2930 A = 9.55490959574# - 2.139E-05 * T 2940 LM = .8740167563# + 213.54295627# * T + .00090673442# * T * T 2945 LM = LM - 5.57E-08 * T * T * T 2950 KA = -.002960036# - .018813138# * T + .001283285# * T * T 2955 KA = KA + .000384811# * T * T * T 2960 HA = .0055429643# - .004477771# * T - .003261143# * T * T 2965 HA = HA + .000200072# * T * T * T 2970 Q = -8.717474E-03 - .002914183# * T + .000157351# * T * T 2975 Q = Q + .000012382# * T * T * T 2980 P = .019891473# - .001633044# * T - .000223323# * T * T 2985 P = P + .000011193# * T * T * T 2990 ' 3000 'perturbations de Saturne 3010 ' 3020 LP = ATN(HA / KA) 3030 IF KA < 0 THEN LP = LP + pi 3040 E = ABS(HA / SIN(LP)) 3050 B = 3.08686 + 7.11355 * T 3060 U1 = SIN(B): U2 = SIN(2 * B): V1 = COS(B) 3070 DA = 8.55E-07 * U1 + .0000512 * V1 3080 A = A + DA 3090 DLM = -.01421 * U1 - 1.91986E-04 * V1 + 1.39626E-04 * U2 3100 LM = LM + DLM 3110 DE = -1.384E-05 * U1 + 2.33874E-05 * V1 3120 E = E + DE 3130 DLP = (.0013613568# * U1 + 8.0285E-04 * V1) / E 3140 LP = LP + DLP 3150 C = 3.525 - 316.57313# * T 3160 U1 = SIN(C): U2 = SIN(2 * C): U3 = SIN(3 * C): U4 = SIN(4 * C) 3170 V1 = COS(C): V2 = COS(2 * C): V3 = COS(3 * C): V4 = COS(4 * C) 3180 C1 = (-.149 * U1 - .041 * U2 - .015 * U3 - .006 * U4) / K 3190 C2 = -.006 - .009 * U1 + .082 * V1 - .017 * U2 + .015 * V2 3195 C2 = (C2 - .006 * U3) / K 3200 C3 = (.086 * U1 + .025 * V1 + .014 * V2) / K 3210 C4 = (.006 * U1 - .005 * V1 + .009 * U2 + .005 * V2) / K 3220 C5 = (-.005 * V1 + .005 * U2 - .008 * V2) / K 3230 GOSUB 3470 3240 LM = LM + DD 3250 C1 = 0 3260 C2 = (.00124 + .00266 * V1 - .00047 * V2 - .00019 * V3) / K 3270 C3 = (-.00127 * U1 - .00042 * U2) / K 3280 C4 = (.00022 * U1 - .00028 * V1 - .00022 * U2 + .0002 * V2) / K 3290 C5 = (.00028 * U1 - .00016 * V1 + .00022 * V2) / K 3300 GOSUB 3470 3310 E = E + DD 3320 C1 = -.007 * U1 / K 3330 C2 = (-.076 * U1 - .025 * U2 - .009 * U3) / K 3340 C3 = (-.073 - .15 * V1 + .027 * V2 + .01 * V3) / K 3350 C4 = (-.014 * U1 - .008 * V1 + .014 * V2) / K 3360 C5 = (-.014 * U1 + .015 * V1 + .012 * U2 - .013 * V2) / K 3370 GOSUB 3470 3380 LP = LP + DD / E 3390 C1 = (.0337 * V1 - .00308 * V2 - .00143 * V3 - .00067 * V4) / K 3400 C2 = (-.00281 * U1 + .00214 * V1 + .00069 * U2 - .001 * V2) / K 3410 C3 = (.0022 * U1 + .00288 * V1 - .00159 * U2 + .00217 * V2) / K 3420 C4 = (-.00027 * U2 - .00078 * V1 + .00049 * V2 + .00025 * V3) / K 3430 C5 = (-.00085 * U1 + .00044 * U2 + .0003 * V2) / K 3440 GOSUB 3470 3450 A = A + DD 3460 RETURN 3470 DD = C1 + C2 * SIN(LM) + C3 * COS(LM) + C4 * SIN(2 * LM) 3475 DD = DD + C5 * COS(2 * LM) 3480 RETURN 3490 ' 3500 'URANUS 3510 ' 3520 GOSUB 3530: GOSUB 5200: GOSUB 7000: RETURN 3530 A = 19.21844606178# - 3.716E-07 * T 3540 LM = 5.481293871# + 75.02543113999999# * T + .00053117108# * T * T 3545 LM = LM + 4.52E-07 * T * T * T 3550 KA = -.045951324# - .001191266# * T + .001544939# * T * T 3555 KA = KA + .000011213# * T * T * T 3560 HA = .005637913# - .011954073# * T - .000135566# * T * T 3565 HA = HA + .000132033# * T * T * T 3570 Q = .001859151# - 5.7132E-04 * T - .000019753# * T * T 3575 Q = Q - .000001193# * T * T * T 3580 P = .00648617# + .000234059# * T + .00001066# * T * T 3585 P = P - .000001193# * T * T * T 3590 ' 3600 'perturbations d'Uranus 3610 ' 3620 LP = ATN(HA / KA) 3630 IF KA < 0 THEN LP = LP + pi 3640 E = ABS(HA / SIN(LP)) 3650 B = 5.10656 + 1.48447 * T 3660 U1 = SIN(B): U2 = SIN(2 * B): V1 = COS(B) 3670 DA = -6.674139E-05 * V1 3680 A = A + DA 3690 DLM = .0150796# * U1 + 1.43117E-03 * V1 + 6.28318E-04 * U2 3700 LM = LM + DLM 3710 DE = -5.8468E-06 * U1 + 3.6652E-05 * V1 3720 E = E + DE 3730 DLP = (2.099631E-03 * U1 + 3.38594E-04 * V1 + 1.04719E-04 * U2) / E 3740 LP = LP + DLP 3750 RETURN 3760 ' 3770 'NEPTUNE 3780 ' 3790 GOSUB 3800: GOSUB 5200: GOSUB 7000: RETURN 3800 A = 30.11038686942# - 1.66E-06 * T 3810 LM = 5.311886286# + 38.37687716# * T + .00053976537# * T * T 3815 LM = LM + 6.89E-07 * T * T * T 3820 KA = .0005999776# - .001623178# * T - .000202253# * T * T 3825 KA = KA + .000014843# * T * T * T 3830 HA = .006692424# + .0001541238# * T - .000192797# * T * T 3835 HA = HA - .000018028# * T * T * T 3840 Q = -.010291478# - .001674378# * T + .000305826# * T * T 3845 Q = Q + .000005675# * T * T * T 3850 P = .0115684# - .002585402# * T - .000118272# * T * T 3855 P = P + .000023739# * T * T * T 3860 ' 3870 'perturbations de Neptune 3880 ' 3890 LP = ATN(HA / KA) 3900 IF KA < 0 THEN LP = LP + pi 3910 E = ABS(HA / SIN(LP)) 3920 B = 5.10656 + 1.48447 * T 3930 U1 = SIN(B): U2 = SIN(2 * B): V1 = COS(B): V2 = COS(2 * B) 3940 DA = -1.431E-05 * U1 + .0001431 * V1 3950 A = A + DA 3960 DLM = -.0103428# * U1 - 9.7913E-04 * V1 - 4.2411E-04 * U2 3970 LM = LM + DLM 3980 DE = 7.679E-06 * U1 + 7.435E-06 * V1 - 1.0472E-04 * V2 3990 E = E + DE 4000 DLP = 4.1888E-04 * U1 - 4.3633E-04 * V1 + 1.0472E-04 * U2 4005 DLP = (DLP - 1.0472 * V2) / E 4010 LP = LP + DLP 4020 RETURN 4030 ' 4040 'PLUTON 4050 ' 4060 GOSUB 4070: GOSUB 5230: GOSUB 7000: RETURN 4070 A = 39.438712# 4080 LM = 4.172280893# + 25.36813 * T 4090 LN = 1.927583 + .2437 * T 4100 LP = 3.909712 4110 E = .250236 4120 IO = .299681 4130 RETURN 4140 ' 4150 'LUNE 4160 ' 4170 T = T * 10 4180 P = 5.19846674# + 7771.377144# * T - .000028509468# * T * T 4190 Q = 1.627905233# + 8433.466157000001# * T - .000059453671# * T * T 4200 AMl = 2.355555898# + 8328.691424000001# * T + .00015696909# * T * T 4210 AMS = 6.240060126# + 628.3019549000001# * T - .0000027198047# * T * T 4220 LML = 3.810344426# + 8399.709112# * T - .000023209485# * T * T 4230 Lnl = LML - Q: Lnl = 2 * pi * (Lnl / 2 / pi - INT(Lnl / 2 / pi)) 4240 PA = .0165937# + 9.0437E-04 * COS(AMl) + 4.9226E-05 * COS(2 * AMl) 4250 PA = PA + 1.36877E-04 * COS(2 * P) + 1.66349E-04 * COS(2 * P - AMl) 4260 DMD = K * .2735 * PA 4270 LO = LML + .10975981# * SIN(AMl) + 3.728314E-03 * SIN(2 * AMl) 4280 LO = LO + 1.751147E-04 * SIN(3 * AMl) + .0114895994# * SIN(2 * P) 4290 LO = LO - .0032390886# * SIN(AMS) - .00060674432# * SIN(P) 4300 LO = LO + .02223564# * SIN(2 * P - AMl) - .0019955415# * SIN(2 * Q) 4310 LO = LO + .0010261566# * SIN(2 * P - 2 * AMl) 4315 LO = LO + .00099852225# * SIN(2 * P - AMl - AMS) 4320 LO = LO + .00093059986# * SIN(2 * P + AMl) 4325 LO = LO + .00080066979# * SIN(2 * P - AMS) 4330 LO = LO + .00071602132# * SIN(AMl - AMS) 4335 LO = LO - .00053169516# * SIN(AMl + AMS) 4340 LO = LO + 2.67471E-04 * SIN(2 * P - 2 * Q) 4345 LO = LO - .00021865097# * SIN(2 * Q - AMl) 4350 LO = LO - .00019164684# * SIN(2 * Q - AMl) 4355 LO = LO + .00018631389# * SIN(4 * P - AMl) 4360 LO = LO + .00014917716# * SIN(4 * P - 2 * AMl) 4365 LO = LO - .00013802645# * SIN(2 * P - AMl + AMS) 4370 LO = LO - 1.183951E-04 * SIN(2 * P + AMS) 4375 LO = LO - .000090223826# * SIN(P - AMl) 4380 LO = LO + 8.736342500000001D-05 * SIN(P + AMl) 4385 LO = LO + 7.068583400000001D-05 * SIN(2 * P + AMl - AMS) 4390 LO = LO + 6.976468799999999D-05 * SIN(2 * P + 2 * AMl) 4395 LO = LO + .000067389101# * SIN(4 * P) 4400 LO = LO + 6.394692E-05 * SIN(2 * P - 3 * AMl) 4410 LO = 2 * pi * (LO / 2 / pi - INT(LO / 2 / pi)) 4420 IF LO < 0 THEN LO = LO + 2 * pi 4430 LA = .0895026105# * SIN(Q) + .0048974908# * SIN(AMl + Q) 4440 LA = LA + .0048466338# * SIN(AMl - Q) + .00030014814# * SIN(2 * AMl + Q) 4450 LA = LA + .00015397682# * SIN(2 * AMl - Q) 4455 LA = LA + .00056849252# * SIN(2 * P + Q) 4460 LA = LA + 3.023589E-03 * SIN(2 * P - Q) 4465 LA = LA + .00096710633# * SIN(2 * P - AMl + Q) 4470 LA = LA + 8.076026200000001D-04 * SIN(2 * P - AMl + Q) 4475 LA = LA + 3.639011E-04 * SIN(2 * P + AMl - Q) 4490 LA = LA + .00014394118# * SIN(2 * P - AMS - Q) 4495 LA = LA + .000075437008# * SIN(2 * P - 2 * AMl - Q) 4500 LA = LA + .000073303828# * SIN(2 * P + AMl + Q) 4505 LA = LA - 5.885638E-05 * SIN(2 * P + AMS - Q) 4510 PA = .0165937# + 9.0437E-04 * COS(AMl) + 4.9226E-05 * COS(2 * AMl) 4515 PA = PA + 1.136877E-04 * COS(2 * P) + 1.66349E-04 * COS(2 * P - AMl) 4516 DISTL = 1 / SIN(PA) * 6378.388: LOL = LO: LOSL = LOS 4520 T = T / 10 4530 d = FNASN(SIN(LA) * COS(IE) + COS(LA) * SIN(IE) * SIN(LO)) 4540 AD = ATN((COS(IE) * SIN(LO) - SIN(IE) * TAN(LA)) / COS(LO)) 4550 IF COS(LO) < 0 THEN AD = AD + pi 4560 IF AD < 0 THEN AD = AD + 2 * pi: GOTO 4560 4570 IF AD > 2 * pi THEN AD = AD - 2 * pi: GOTO 4570 4580 AH = TS - AD - G: IF AH > pi THEN AH1 = 2 * pi - AH ELSE AH1 = AH 4590 IF AH < 0 THEN AH = AH + 2 * pi 4595 IF AH > pi THEN AH1 = 2 * pi - AH ELSE AH1 = AH 4600 RO = .998332 + .0016835# * COS(2 * L) - .0000035 * COS(4 * L) 4610 LG = ATN(.9932773467# * TAN(L)) 4620 DAH = RO * SIN(PA) * COS(LG) * SIN(AH) 4625 DAH = ATN(DAH / (COS(d) - RO * SIN(PA) * COS(LG) * COS(AH))) 4630 AH = AH + DAH: X2 = 0: Y2 = 0: Z2 = 0 4640 GOSUB 5710: RETURN 5140 ' 5150 'CALCUL POSITION HELIOCENTRIQUE DE L'ASTRE 5160 ' 5170 LP = ATN(HA / KA) 5180 IF KA < 0 THEN LP = LP + pi 5190 E = ABS(HA / SIN(LP)) 5200 LN = ATN(P / Q) 5210 IF Q < 0 THEN LN = LN + pi 5220 IO = 2 * FNASN(P / SIN(LN)) 5230 AM = LM - LP 5240 AE = AM 5250 FOR i = 1 TO 30 5260 AE = AM + E * SIN(AE) 5270 NEXT i 5280 AV = 2 * ATN(SQR((1 + E) / (1 - E)) * TAN(AE / 2)) 5320 ARP = LP + AV - LN 5330 LA = FNASN(SIN(IO) * SIN(ARP)) 5340 LO = FNACS(COS(ARP) / COS(LA)) 5350 IF LO < 0 THEN LO = LO + pi: GOTO 5350 5360 IF LO > 2 * pi THEN LO = LO - pi: GOTO 5350 5370 IF LA < 0 THEN LO = 2 * pi - LO 5380 LO = LO + LN 5390 IF LO > 2 * pi THEN LO = LO - 2 * pi: GOTO 5390 5400 R = A * (1 - E * COS(AE)) 5410 X1 = R * COS(LA) * COS(LO) 5420 Y1 = R * COS(LA) * SIN(LO) 5430 Z1 = R * SIN(LA) 5470 ' 5480 'POSITION DE L'ASTRE PAR RAPPORT A LA TERRE 5490 ' 5500 X2 = XS + X1 5510 Y2 = YS + Y1 5520 Z2 = Z1 5540 LLOG = ATN(Y2 / X2) 5550 IF X2 < 0 THEN LLOG = LLOG + pi 5560 IF LLOG < 0 THEN LLOG = LLOG + 2 * pi: GOTO 5560 5570 IF LLOG > 2 * pi THEN LLOG = LLOG - 2 * pi: GOTO 5570 5580 LGS = ATN(YS / XS): IF XS < 0 THEN LGS = LGS + pi 5590 IF LGS < 0 THEN LGS = LGS + 2 * pi: GOTO 5590 5595 IF LGS > 2 * pi THEN LGS = LGS - 2 * pi: GOTO 5595 5630 LAG = ATN(Z2 / SQR(X2 * X2 + Y2 * Y2)) 5640 d = FNASN(SIN(LAG) * COS(IE) + COS(LAG) * SIN(IE) * SIN(LLOG)) 5650 AD = ATN((COS(IE) * SIN(LLOG) - SIN(IE) * TAN(LAG)) / COS(LLOG)) 5660 IF COS(LLOG) < 0 THEN AD = AD + pi 5670 IF AD < 0 THEN AD = AD + 2 * pi: GOTO 5670 5680 IF AD > 2 * pi THEN AD = AD - 2 * pi: GOTO 5680 5690 AH = TS - AD - G: IF AH > pi THEN AH1 = 2 * pi - AH ELSE AH1 = AH 5700 IF AH < 0 THEN AH = AH + 2 * pi 5705 IF AH > pi THEN AH1 = 2 * pi - AH ELSE AH1 = AH 5710 HC = FNASN(SIN(d) * SIN(L) + COS(d) * COS(L) * COS(AH1)) 5720 A1 = SIN(L) * COS(AH) - COS(L) * TAN(d) 5730 AZ = ATN(SIN(AH) / A1) 5740 IF A1 < 0 THEN AZ = AZ + pi 5750 IF AZ < 0 THEN AZ = AZ + 2 * pi 5760 ' 5770 'CORRECTION DE LA REFRACTION ATMOSPHERIQUE 5780 ' 5790 PP = TAN(pi / 2 - ABS(HC)) 5800 QQ = ABS(HC) * K 5810 IF QQ >= 9 THEN GOTO 5840 5820 R = .61 - .15 * QQ + .01546 * QQ * QQ - .00057 * QQ * QQ * QQ 5830 GOTO 5850 5840 R = .016 * PP - 1.858E-05 * PP * PP * PP 5845 R = R + 6.17E-08 * PP * PP * PP * PP * PP 5850 HCC = HC + R / K 5870 RETURN 7000 X = INT(AD * K / 15) 7010 Y = INT(60 * (AD * K / 15 - X) * 100) / 100 7020 DECL = INT(d * K): IF DECL < 0 THEN DECL = DECL + 1 7030 DECL1 = ABS(d * K - DECL) * 60 7034 IF EPH$ <> "S" THEN GOTO 7039 ELSE PRINT 7035 PRINT USING "TOUTES VALEURS DONNEES POUR LE ##/##/####"; J0; M0; AN; 7036 PRINT USING " … ## h ## mn ## s"; hh; mi; ss 7038 PRINT : PRINT "SOLEIL": GOTO 7041 7039 IF EPH$ = "L" THEN PRINT "LUNE": GOTO 7041 7040 IF EPH$ <> "L" THEN PRINT B$(VAL(EPH$)) 7041 DIST = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2) 7060 IF EPH$ <> "S" THEN GOTO 7064 7061 DIA = DIAMS: DIA = 2 * 180 * 60 / pi * ATN(DIA / 2 / DIST / 149597870) 7062 GOTO 7075 7064 IF EPH$ <> "L" THEN GOTO 7066 7065 DIA = DIAML: DIA = 2 * 180 / pi * ATN(DIA / 2 / DISTL) * 60: GOTO 7075 7066 DIA = DIAM(VAL(EPH$)) 7070 DIA = 2 * 180 / pi * ATN(DIA / 2 / DIST / 149597870) * 60 * 60 7075 p1$ = " j d‚clin. Asc.D dist. diam longit. azim haut " 7077 p2$ = " j d‚clin. Asc.D dist. diam longit. azim haut " 7079 IF EPH$ = "L" AND BOUC = 0 THEN PRINT p1$ 7080 IF EPH$ <> "L" THEN PRINT p2$ 7081 f1$ = " ##/ ###d##' ##h ##m ##.##UA ##.#''": f1b$ = " ###.#deg ###d ###d " 7082 f2$ = " ##/ ###d##' ##h ##m ###.##Mm": f2b$ = " ##.#' ###.#deg ###d ###d " 7083 IF EPH$ <> "L" THEN PRINT USING f1$; J0; DECL; DECL1; X; Y; DIST; DIA; 7084 IF EPH$ <> "L" THEN PRINT USING f1b$; LO / pi * 180; AZ * K; HCC * K 7085 IF EPH$ = "L" THEN PRINT USING f2$; J0; DECL; DECL1; X; Y; DISTL / 1000; 7086 IF EPH$ = "L" THEN PRINT USING f2b$; DIA; LO / pi * 180; AZ * K; HCC * K 7090 ' 8090 RETURN 10000 ' 10010 'PHENOMENES ASTRONOMIQUES DE LA SEMAINE 10020 ' 10030 'calcul des ‚l‚ments n‚cessaires … j0,j0+3.5,j0+7 10040 ' 10041 PRINT "tapez une touche pour continuer"; : DO 10042 LOOP WHILE INKEY$ = "" 10043 CLS 10045 PRINT : PRINT "PHENOMENES ASTRONOMIQUES DE LA SEMAINE": PRINT 10046 PRINT "! !" 10050 hh = 0: mi = 0: ss = 0: GOSUB 1320: GOSUB 1790: LOS0 = LOS: DISTS0 = SQR(XS * XS + YS * YS) 10052 J0 = J0 + 3.5: GOSUB 1320: PRINT " "; : PRINT ">"; : GOSUB 1790: LOS35 = LOS 10053 DISTS35 = SQR(XS * XS + YS * YS) 10055 J0 = J0 + 3.5: GOSUB 1320: PRINT ">"; : GOSUB 1790: LOS7 = LOS 10056 DISTS7 = SQR(XS * XS + YS * YS) 10058 J0 = J0 - 7: GOSUB 1320: PRINT ">"; : GOSUB 1790 10060 FOR PLA = 1 TO 8 10061 PRINT ">"; 10070 ON PLA GOSUB 2330, 2440, 2550, 2660, 2930, 3530, 3800, 4070 10080 ON PLA GOSUB 5170, 5170, 5170, 5200, 5200, 5200, 5200, 5230 10090 ANV0(PLA) = AV: LLO0(PLA) = LO: azim0(PLA) = AD 10100 DIST0(PLA) = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2): LOG0(PLA) = LLOG 10110 LGS0(PLA) = LGS: NEXT PLA 10120 J0 = J0 + 3.5: GOSUB 1320: PRINT ">"; : GOSUB 1790 10130 FOR PLA = 1 TO 8 10131 PRINT ">"; 10140 ON PLA GOSUB 2330, 2440, 2550, 2660, 2930, 3530, 3800, 4070 10150 ON PLA GOSUB 5170, 5170, 5170, 5200, 5200, 5200, 5200, 5230 10160 ANV35(PLA) = AV: LLO35(PLA) = LO: AZIM35(PLA) = AD 10170 DIST35(PLA) = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2): LOG35(PLA) = LLOG 10180 LGS35(PLA) = LGS: NEXT PLA 10190 J0 = J0 + 3.5: GOSUB 1320: PRINT ">"; : GOSUB 1790 10200 FOR PLA = 1 TO 8 10201 PRINT ">"; 10210 ON PLA GOSUB 2330, 2440, 2550, 2660, 2930, 3530, 3800, 4070 10220 ON PLA GOSUB 5170, 5170, 5170, 5200, 5200, 5200, 5200, 5230 10230 ANV7(PLA) = AV: LLO7(PLA) = LO: azim7(PLA) = AD 10240 DIST7(PLA) = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2): LOG7(PLA) = LLOG 10250 LGS7(PLA) = LGS: NEXT PLA 10260 J0 = J0 - 7: GOSUB 1320: PRINT ">"; : GOSUB 1790 10270 SJ0 = J0: SM0 = M0: SJ = J2: FOR lun = 1 TO 8 10280 J2 = SJ + lun - 1 10290 PRINT ">"; : GOSUB 1510: GOSUB 1790: losl0(lun) = LOS 10300 GOSUB 4170: DISTL0(lun) = DISTL: LOL0(lun) = LO: aziml0(lun) = AD 10310 lnl0(lun) = Lnl 10320 J2 = J2 + .5 10330 PRINT ">"; : GOSUB 1510: GOSUB 1790: LOSL05(lun) = LOS 10340 GOSUB 4170: DISTL05(lun) = DISTL: LOL05(lun) = LO: AZIML05(lun) = AD 10350 LNL05(lun) = Lnl 10360 J2 = J2 - .5 10370 NEXT lun: J0 = SJ0: M0 = SM0: GOSUB 1320: PRINT ">": GOSUB 1790 10400 ' 10410 'aph‚lie, p‚rih‚lie de la Terre - solstices et equinoxes 10420 ' 10430 TESTD = DISTS7 - 4 * DISTS35 + 3 * DISTS0 10440 TESTD = TESTD / (4 * DISTS7 - 8 * DISTS35 + 4 * DISTS0) 10450 IF TESTD < 0 THEN GOTO 10540 10460 IF TESTD > 1 THEN GOTO 10540 10470 IF DISTS35 < 1 THEN GOTO 10480 ELSE GOTO 10510 10480 PRINT "TERRE au p‚rih‚lie"; 10500 GOTO 10520 10510 PRINT "TERRE … l'aph‚lie"; 10520 IF INT(TESTD * 7) = 0 THEN GOTO 10530 10521 FOR ii = 1 TO INT(TEST * 7): J0 = J0 + 1: GOSUB 1320: NEXT ii 10530 PRINT USING " le ##/##/####"; J0; M0; AN 10535 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 10540 IF (LOS0 - pi) * (LOS7 - pi) < 0 THEN PRINT "EQUINOXE"; : GOTO 10580 10550 IF (LOS0 - pi / 2) * (LOS7 - pi / 2) < 0 THEN PRINT "SOLSTICE"; : GOTO 10580 10560 IF (LOS0 - 3 * pi / 2) * (LOS7 - 3 * pi / 2) < 0 THEN PRINT "SOLSTICE"; : GOTO 10580 10570 GOTO 10620 10580 IF M0 < 4 THEN PRINT " de printemps" 10590 IF M0 > 4 AND M0 < 7 THEN PRINT " d'‚t‚" 10600 IF M0 > 7 AND M0 < 10 THEN PRINT " d'automne" 10610 IF M0 > 10 THEN PRINT " d'hiver" 10620 ' 10630 '‚clipses, p‚rig‚e, apog‚e et phases de la lune 10640 ' 10650 FOR lun = 1 TO 7 10660 IF 4 * DISTL0(lun + 1) - 8 * DISTL05(lun) + 4 * DISTL0(lun) = 0 THEN GOTO 10751 10670 TESTD = DISTL0(lun + 1) - 4 * DISTL05(lun) + 3 * DISTL0(lun) 10680 TESTD = TESTD / (4 * DISTL0(lun + 1) - 8 * DISTL05(lun) + 4 * DISTL0(lun)) 10690 IF TESTD < 0 THEN GOTO 10751 10700 IF TESTD > 1 THEN GOTO 10751 10705 TESTD = DISTL0(lun + 1) - 2 * DISTL05(lun) + DISTL0(lun) 10710 IF TESTD > 0 THEN GOTO 10720 ELSE GOTO 10730 10720 PRINT "LUNE au p‚rig‚e"; : GOTO 10740 10730 PRINT "LUNE … l'apog‚e"; 10740 IF lun = 1 THEN GOTO 10745 10741 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 10745 PRINT USING " le ##/##/####"; J0; M0; AN 10547 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 10751 TEST1 = losl0(lun + 1) - losl0(lun) 10752 TEST2 = LOL0(lun + 1) - LOL0(lun) 10770 IF TEST1 < 0 THEN losl0(lun + 1) = losl0(lun + 1) + 2 * pi 10780 IF TEST2 < 0 THEN LOL0(lun + 1) = LOL0(lun + 1) + 2 * pi 10781 TEST1 = LOL0(lun) - losl0(lun): TEST2 = LOL0(lun + 1) - losl0(lun + 1) 10790 IF TEST1 * TEST2 >= 0 THEN GOTO 10890 10800 PRINT "NOUVELLE LUNE le"; 10801 IF lun = 1 THEN GOTO 10803 10802 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 10803 PRINT USING " ##/##/####"; J0; M0; AN 10804 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 10830 ECDN = ABS(losl0(lun) - lnl0(lun)) 10840 ECDN = 2 * pi * (ECDN / 2 / pi - INT(ECDN / 2 / pi)) 10850 IF K * ECDN >= 11 AND ABS(K * ECDN - 180) >= 11 THEN GOTO 11230 10855 PRINT "ECLIPSE DE SOLEIL le"; 10856 IF lun = 1 THEN GOTO 10858 10857 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 10858 PRINT USING " ##/##/####"; J0; M0; AN 10859 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 10880 GOTO 11230 10890 IF (TEST1 - pi / 2) * (TEST2 - pi / 2) >= 0 THEN GOTO 10940 10900 PRINT "PREMIER QUARTIER le"; 10901 IF lun = 1 THEN GOTO 10903 10902 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 10903 PRINT USING " ##/##/####"; J0; M0; AN 10904 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 10930 GOTO 11230 10940 IF (TEST1 + 3 * pi / 2) * (TEST2 + 3 * pi / 2) >= 0 THEN GOTO 10990 10950 PRINT "PREMIER QUARTIER le"; 10951 IF lun = 1 THEN GOTO 10953 10952 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 10953 PRINT USING " ##/##/####"; J0; M0; AN 10954 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 10980 GOTO 11230 10990 IF (TEST1 - pi) * (TEST2 - pi) >= 0 THEN GOTO 11040 11000 PRINT "PLEINE LUNE le"; 11001 IF lun = 1 THEN GOTO 11003 11002 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 11003 PRINT USING " ##/##/####"; J0; M0; AN 11004 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 11030 GOTO 11080 11040 IF (TEST1 + pi) * (TEST2 + pi) >= 0 THEN GOTO 11140 11050 PRINT "PLEINE LUNE le"; 11051 IF lun = 1 THEN GOTO 11053 11052 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 11053 PRINT USING " ##/##/####"; J0; M0; AN 11054 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 11080 ECDN = ABS(losl0(lun) - lnl0(lun)) 11090 ECDN = 2 * pi * (ECDN / 2 / pi - INT(ECDN / 2 / pi)) 11100 IF K * ECDN >= 15 AND ABS(K * ECDN - 180) >= 15 THEN GOTO 11230 11105 PRINT "ECLIPSE DE LUNE le"; 11106 IF lun = 1 THEN GOTO 11108 11107 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 11108 PRINT USING " ##/##/####"; J0; M0; AN 11109 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 11130 GOTO 11230 11140 IF (TEST1 + pi / 2) * (TEST2 + pi / 2) >= 0 THEN GOTO 11190 11150 PRINT "DERNIER QUARTIER le"; 11156 IF lun = 1 THEN GOTO 11158 11157 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 11158 PRINT USING " ##/##/####"; J0; M0; AN 11159 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 11180 GOTO 11230 11190 IF (TEST1 - 3 * pi / 2) * (TEST2 - 3 * pi / 2) >= 0 THEN GOTO 11230 11200 PRINT "DERNIER QUARTIER le"; 11201 IF lun = 1 THEN GOTO 11203 11202 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 11203 PRINT USING " ##/##/####"; J0; M0; AN 11204 J0 = SJ0: M0 = SM0: GOSUB 1320: GOSUB 1790 11230 IF losl0(lun + 1) > 2 * pi THEN losl0(lun + 1) = losl0(lun + 1) - 2 * pi 11231 IF LOL0(lun + 1) > 2 * pi THEN LOL0(lun + 1) = LOL0(lun + 1) - 2 * pi 11232 NEXT lun 11250 ' 11260 'aph‚lie, p‚rih‚lie, conjonctions, oppositions, p‚rig‚e, apog‚e 11265 'des planŠtes, plus grandes ‚longations de Mercure et V‚nus 11270 ' 11280 'aph‚lie et p‚rih‚lie 11290 FOR PLA = 1 TO 8 11300 IF ANV0(PLA) * ANV7(PLA) >= 0 THEN GOTO 11370 11310 IF ABS(ANV7(PLA)) > pi / 2 THEN PERI$ = " … l'aph‚lie le " ELSE PERI$ = " au p‚rih‚lie le " 11320 PRINT B$(PLA); PERI$; 11330 ECART = 7 - ABS(ANV7(PLA) / (ANV7(PLA) - ANV0(PLA))) * 7 11340 ECART = INT(ECART) 11350 IF ECART = 0 THEN GOTO 11360 11351 FOR ii = 1 TO ECART: J0 = J0 + 1: GOSUB 1320: NEXT ii 11360 PRINT USING "##/##/####"; J0; M0; AN 11361 J0 = SJ0: M0 = SM0: GOSUB 1320 11370 NEXT PLA 11390 'conjonctions et oppositions 11400 IF LOS7 < LOS0 THEN LOS7 = LOS7 + 2 * pi 11410 FOR PLA = 1 TO 8 11420 IF LLO7(PLA) < LLO0(PLA) THEN LLO7(PLA) = LLO7(PLA) + 2 * pi 11430 SIG1 = SGN((LLO0(PLA) - LOS0) * (LLO7(PLA) - LOS7)) 11440 SIG2 = SGN((ABS(LLO0(PLA) - LOS0) - pi) * (ABS(LLO7(PLA) - LOS7) - pi)) 11450 IF SIG1 >= 0 AND SIG2 >= 0 THEN GOTO 11510 11460 IF PLA < 3 THEN GOTO 11490 11470 IF ABS(LLO7(PLA) - LOS7) > pi / 2 THEN PERI$ = " en opposition" ELSE PERI$ = " en conjonction" 11480 GOTO 11500 11490 IF ABS(LLO7(PLA) - LOS7) > pi / 2 THEN PERI$ = " en conjonction inf." ELSE PERI$ = " en conjonction sup." 11500 PRINT B$(PLA); PERI$ 11510 IF LLO7(PLA) > 2 * pi THEN LLO7(PLA) = LLO7(PLA) - 2 * pi 11511 NEXT PLA 11512 IF LOS7 > 2 * pi THEN LOS7 = LOS7 - 2 * pi 11520 'p‚rig‚e et apog‚e 11530 FOR PLA = 1 TO 8 11540 TESTD = 4 * DIST7(PLA) - 8 * DIST35(PLA) + 4 * DIST0(PLA) 11550 IF TESTD = 0 THEN GOTO 11660 11560 TESTD1 = DIST7(PLA) - 4 * DIST35(PLA) + 3 * DIST0(PLA) 11570 TESTD1 = TESTD1 / TESTD 11580 IF TESTD1 < 0 THEN GOTO 11660 11590 IF TESTD1 > 1 THEN GOTO 11660 11600 TESTD = DIST7(PLA) - 2 * DIST35(PLA) + DIST0(PLA) 11610 IF TESTD > 0 THEN PERI$ = " au p‚rig‚e le " 11620 IF TESTD < 0 THEN PERI$ = " … l'apog‚e le " 11630 PRINT B$(PLA); PERI$; 11631 IF INT(TESTD1 * 7) = 0 THEN GOTO 11650 11632 FOR ii = 1 TO INT(TESTD1 * 7): J0 = J0 + 1: GOSUB 1320: NEXT ii 11650 PRINT USING "##/##/####"; J0; M0; AN 11651 J0 = SJ0: M0 = SM0: GOSUB 1320 11660 NEXT PLA 11670 'plus grandes ‚longations de Mercure et V‚nus 11680 FOR PLA = 1 TO 2 11690 IF LGS35(PLA) < LGS0(PLA) THEN LGS35(PLA) = LGS35(PLA) + 2 * pi 11700 IF LGS7(PLA) < LGS35(PLA) THEN LGS7(PLA) = LGS7(PLA) + 2 * pi 11710 IF ABS(LOG35(PLA) - LOG0(PLA)) < pi THEN GOTO 11730 11720 IF LOG35(PLA) < LOG0(PLA) THEN LOG35(PLA) = LOG35(PLA) + 2 * pi ELSE LOG0(PLA) = LOG0(PLA) + 2 * pi 11730 IF ABS(LOG7(PLA) - LOG35(PLA)) < pi THEN GOTO 11750 11740 IF LOG7(PLA) < LOG35(PLA) THEN LOG7(PLA) = LOG7(PLA) + 2 * pi 11750 DELTA1 = LOG0(PLA) - LGS0(PLA) 11760 DELTA2 = LOG35(PLA) - LGS35(PLA) 11770 DELTA3 = LOG7(PLA) - LGS7(PLA) 11780 TESTD = DELTA3 - 4 * DELTA2 + 3 * DELTA1: IF TESTD = 0 THEN GOTO 11870 11790 TESTD = TESTD / (4 * DELTA3 - 8 * DELTA2 + 4 * DELTA1) 11800 IF TESTD < 0 OR TESTD > 1 THEN GOTO 11870 11810 PRINT "plus grande ‚longation "; 11820 IF ABS(LOG0(PLA) - LGS0(PLA)) > pi THEN COEF = -1 ELSE COEF = 1 11830 IF COEF * (LOG0(PLA) - LGS0(PLA)) < 0 THEN PRINT "Ouest de "; ELSE PRINT "Est de "; 11840 PRINT B$(PLA); " le "; 11841 IF INT(TESTD1 * 7) = 0 THEN GOTO 11843 11842 FOR ii = 1 TO INT(TESTD * 7): J0 = J0 + 1: GOSUB 1320: NEXT ii 11843 PRINT USING "##/##/####"; J0; M0; AN 11844 J0 = SJ0: M0 = SM0: GOSUB 1320 11870 NEXT PLA 11880 'conjonctions planŠtes-lune et planŠtes-planŠtes 11890 FOR PLA = 1 TO 8 11900 IF ABS(azim7(PLA) - azim0(PLA)) < pi THEN GOTO 11930 11910 IF azim7(PLA) < azim0(PLA) THEN azim7(PLA) = azim7(PLA) + 2 * pi 11920 IF azim0(PLA) < azim7(PLA) THEN azim0(PLA) = azim0(PLA) + 2 * pi 11930 FOR lun = 1 TO 7 11931 IF aziml0(lun + 1) < aziml0(lun) THEN aziml0(lun + 1) = aziml0(lun + 1) + 2 * pi 11940 TEST1 = azim0(PLA) - aziml0(lun) 11941 TEST2 = azim0(PLA) - aziml0(lun + 1) 11942 IF TEST1 < 0 AND TEST2 > 0 THEN PRINT B$(PLA); " en conjonction avec la lune le "; : GOTO 11960 11943 IF TEST1 > 0 AND TEST2 < 0 THEN PRINT B$(PLA); " en conjonction avec la lune le "; : GOTO 11960 11944 GOTO 11980 11960 IF lun = 1 THEN GOTO 11970 11965 FOR ii = 1 TO lun - 1: J0 = J0 + 1: GOSUB 1320: NEXT ii 11970 PRINT USING "##/##/####"; J0; M0; AN 11975 J0 = SJ0: M0 = SM0: GOSUB 1320: GOTO 11990 11980 NEXT lun 11990 IF azim7(PLA) > 2 * pi THEN azim7(PLA) = azim7(PLA) - 2 * pi 11991 IF azim0(PLA) > 2 * pi THEN azim0(PLA) = azim0(PLA) - 2 * pi 11992 NEXT PLA 12000 FOR PLA1 = 1 TO 7 12001 IF ABS(azim0(PLA1) - azim7(PLA1)) < pi THEN GOTO 12010 12002 IF azim0(PLA1) < azim7(PLA1) THEN azim0(PLA1) = azim0(PLA1) + 2 * pi 12003 IF azim0(PLA1) > azim7(PLA1) THEN azim7(PLA1) = azim7(PLA1) + 2 * pi 12010 FOR PLA2 = PLA1 + 1 TO 8 12011 IF ABS(azim0(PLA2) - azim7(PLA2)) < pi THEN GOTO 12020 12012 IF azim0(PLA2) < azim7(PLA2) THEN azim0(PLA2) = azim0(PLA2) + 2 * pi 12013 IF azim0(PLA2) > azim7(PLA2) THEN azim7(PLA2) = azim7(PLA2) + 2 * pi 12020 IF azim0(PLA1) < azim0(PLA2) AND azim7(PLA1) > azim7(PLA2) THEN PRINT B$(PLA1); " en conjonction avec "; B$(PLA2) 12030 IF azim0(PLA1) > azim0(PLA2) AND azim7(PLA1) < azim7(PLA2) THEN PRINT B$(PLA1); " en conjonction avec "; B$(PLA2) 12040 NEXT PLA2 12050 NEXT PLA1 13000 ' 13010 'CONFIGURATION DES SATELLITES DE JUPITER 13020 ' 13021 PRINT "tapez une touche pour continuer": DO 13022 LOOP WHILE INKEY$ = "" 13030 SCREEN 12 13040 CLS 13050 PRINT "CONFIGURATION DES SATELLITES DE JUPITER SUR UNE SEMAINE" 13060 PRINT "… partir du "; : PRINT USING "##/##/####"; J0; M0; AN; 13061 PRINT " … 0hTU" 13070 GOSUB 1320: GOSUB 1790: GOSUB 2660: GOSUB 5200 13080 DTJ = SQR(X2 * X2 + Y2 * Y2 + Z2 * Z2) 13090 AB = DTJ * 1.58E-08 13100 LINE (8, 122)-(456, 122) 13110 LINE (8, 128)-(456, 128) 13120 FOR ii = 1 TO 8 13130 LINE (8 + 64 * (ii - 1), 60)-(8 + 64 * (ii - 1), 195) 13140 NEXT ii 13141 LOCATE 7, 60: PRINT "EST": LOCATE 12, 60: PRINT "OUEST" 13142 FOR ii = 1 TO 8: LOCATE 4, 1 + 8 * (ii - 1): PRINT USING "#"; ii - 1; : NEXT ii 13150 ST = T: T = T - AB: LLG = .3147121856# + 1297204.6697# * T 13160 RSA = 5.905: TE = LLG - LLOG + pi: EL = RSA * SIN(TE): PSET (8, 123.5 + 2.5 * EL) 13170 FOR ii = 1 TO 224: T = T + 7 / 224 / 365250 13180 LLG = .3147121856# + 1297204.6697# * T 13190 RSA = 5.905: TE = LLG - LLOG + pi: EL = RSA * SIN(TE): LINE -(8 + 2 * ii, 123.5 + 2.5 * EL) 13200 NEXT ii 13210 T = ST: T = T - AB: LLG = 3.7128912277# + 646245.3628# * T 13220 RSA = 9.3969: TE = LLG - LLOG + pi: EL = RSA * SIN(TE): PSET (8, 123.5 + 2.5 * EL) 13230 FOR ii = 1 TO 224: T = T + 7 / 224 / 365250 13240 LLG = 3.7128912277# + 646245.3628# * T 13250 RSA = 9.3969: TE = LLG - LLOG + pi: EL = RSA * SIN(TE): LINE -(8 + 2 * ii, 123.5 + 2.5 * EL) 13260 NEXT ii 13270 T = ST: T = T - AB: LLG = 3.840528532# + 320765.6891# * T 13280 RSA = 14.989: TE = LLG - LLOG + pi: EL = RSA * SIN(TE): PSET (8, 123.5 + 2.5 * EL) 13290 FOR ii = 1 TO 224: T = T + 7 / 224 / 365250 13300 LLG = 3.840528532# + 320765.6891# * T 13310 RSA = 14.989: TE = LLG - LLOG + pi: EL = RSA * SIN(TE): LINE -(8 + 2 * ii, 123.5 + 2.5 * EL) 13320 NEXT ii 13330 T = ST: T = T - AB: LLG = 1.382313333# + 137511.8375# * T 13340 RSA = 26.341: TE = LLG - LLOG + pi: EL = RSA * SIN(TE): PSET (8, 123.5 + 2.5 * EL) 13350 FOR ii = 1 TO 224: T = T + 7 / 224 / 365250 13360 LLG = 1.382313333# + 137511.8375# * T 13370 RSA = 26.341: TE = LLG - LLOG + pi: EL = RSA * SIN(TE): LINE -(8 + 2 * ii, 123.5 + 2.5 * EL) 13380 NEXT ii 20000 END: GOTO 160