10 CLS 12 PRINT " *************************" 15 PRINT " EPHEMERIDES ASTRONOMIQUES" 20 PRINT " *************************" 30 PRINT 31 PRINT " Programme fait d'apr‚s le livre" 32 PRINT " CALCULS ASTRONOMIQUES" 33 PRINT " POUR AMATEURS DE S.BOUIGES" 70 PI = 3.14159625# 75 REM coord de l'obs: LA=lat ,LO=long negative … l'est de GW 80 LA = 45 85 LA = LA * PI / 180 90 LO = -.6 100 INPUT " DATE JJ,MM,AAAA"; J, M, A 110 INPUT " HEURE TU HH,MM"; HE, MI 115 HS = (HE + MI / 60) / 24 120 J = J + HS 130 N = A * 365 + 31 * (M - 1) + J 140 IF M > 2 GOTO 160 150 A = A - 1 160 N = N + INT(A / 4) - INT(A / 100) + INT(A / 400) 170 IF M <= 2 GOTO 190 180 N = N - INT((M - 1) * .4 + 2.7) 190 N = N - 694325 200 PRINT "NOMBRE DE JOURS DEPUIS LE 1/1/1901 N = "; N 205 DIM L0(15), LP(15), A(15), P0(7), PP(7), O0(7), OP(7), E(7), I(7) 270 REM calcul position du soleil 280 DATA 4.8689,1.72027914E-2,4.9085,8.1856E-7,.01675104,1.00000023,3 290 READ L0, LP, P0, PP, E, A, KE 300 P = P0 + PP * N 301 LL = L0 + LP * N 305 M = LL - P 306 MS = M 310 GOSUB 420 320 V = 2 * ATN(TAN(U / 2) * SQR((1 + E) / (1 - E))) 330 R = A * (1 - E * COS(U)) 335 L = V + P 338 LS = L 340 XS = R * COS(L) 345 YS = R * SIN(L) 350 GOSUB 470 360 PRINT " LONGITUDE DU SOLEIL = "; LD 365 GOSUB 1080 370 B = 0 375 GOSUB 1170 380 GOSUB 1270 385 GOSUB 1360 390 AH = TS - AR 400 ZX = 90.85 * PI / 180 405 GOSUB 1510 407 GOSUB 1550 410 GOTO 510 420 REM eq de kepler 425 U = M 430 FOR K = 0 TO KE 440 U = M + E * SIN(U) 450 NEXT K 460 RETURN 470 REM transformation rad/deg 475 LD = L * 180 / PI 480 LD = (LD / 360 - INT(LD / 360)) * 360 490 IF LD < 0 THEN LD = LD + 360 500 LD = INT(LD * 10 + .5) / 10 505 RETURN 510 DATA 4.0117,7.14254534E-2,1.3249,7.4229E-7,.82304,5.6618E-7,.205615,.1222,.387098 520 DATA 3.6086,2.79631195E-2,2.2716,6.5572E-7,1.3229,4.3668E-7,.006816,.05923,.72333 530 DATA 2.1776,9.14676584E-3,5.8338,8.793E-7,.8516,3.712E-7,.093309,3.2294E-2,1.523678 540 DATA 4.6879,1.4509868E-3,.2289,857E-9,1.7358,483E-9,.048376,.02284,5.202799 550 DATA 4.8567,5.8484028E-4,1.5974,412E-9,1.9686,417E-9,.054311,435E-4,9.552098 560 DATA 4.3224,205424E-9,2.9523,762E-9,1.2825,2.3824E-7,.047319,1.3482E-2,19.21694 570 DATA 1.5223,105061E-9,.7637,393E-9,2.281,525E-9,.008262,3.1054E-2,30.112912 580 DATA 1.6406,701214E-10,3.8978,6.672E-7,1.9034,6.672E-7,.250236,.29968,39.438712 585 DATA 2.694,3.5515529,5.9059,5.771,1.76932338,9.3969,2.597,.87820859,14.989,3.091,.37648689,26.3641 586 DATA .434,3.32830711,4.877,4.472,2.29571836,6.2464,6.081,1.39085442,8.723,3.857,.39404325,20.213 590 FOR J = 0 TO 7 600 READ L0(J), LP(J), P0(J), PP(J), O0(J), OP(J), E(J), I(J), A(J) 601 NEXT J 605 FOR I = 8 TO 15 606 READ L0(I), LP(I), A(I) 607 NEXT I 608 INPUT " TAPEZ SUR ENTER POUR CONTINUER ", XXX 609 PRINT " ************************" 610 PRINT " CHOIX DE L'ASTRE OBSERVE" 611 PRINT " ************************" 612 PRINT 613 PRINT " MERCURE 1" 614 PRINT " VENUS 2" 615 PRINT " MARS 3" 616 PRINT " JUPITER 4" 617 PRINT " SATURNE 5" 618 PRINT " URANUS 6" 619 PRINT " NEPTUNE 7" 620 PRINT " PLUTON 8" 630 PRINT " LUNE 9" 640 PRINT " ETOILE ou RADIO SOURCE 10" 650 PRINT " FIN DU PROGRAMME choix 11" 655 PRINT 660 INPUT " ENTREZ VOTRE CHOIX"; CH 671 IF CH = 1 GOTO 800 672 IF CH = 2 GOTO 810 673 IF CH = 3 GOTO 820 674 IF CH = 4 GOTO 830 675 IF CH = 5 GOTO 840 676 IF CH = 6 GOTO 850 677 IF CH = 7 GOTO 860 678 IF CH = 8 GOTO 870 679 IF CH = 9 GOTO 2000 680 IF CH = 10 GOTO 2500 690 IF CH = 11 THEN END 695 GOTO 660 800 T$ = " MERCURE " 801 J = 0 802 KE = 5 803 D0 = 6.7 804 M0 = -.21 805 A0 = 3.8 806 B0 = -3.4 807 C0 = 2 808 GOTO 880 810 T$ = " VENUS " 811 J = 1 812 KE = 3 813 D0 = 16.7 814 M0 = -4.1 815 A0 = .1 816 B0 = 2.4 817 C0 = -.65 818 GOTO 880 820 T$ = " MARS " 821 J = 2 822 KE = 5 823 D0 = 9.4 824 M0 = -1.36 825 A0 = 1.5 826 GOTO 880 830 T$ = " JUPITER " 831 J = 3 832 KE = 4 835 D0 = 196.9 836 M0 = -9 837 A0 = 1.48 838 GOTO 880 840 T$ = " SATURNE " 841 J = 4 842 KE = 4 844 D0 = 165.5 845 M0 = -8.7 846 A0 = 1.7 847 GOTO 880 850 T$ = " URANUS " 851 J = 5 852 KE = 4 853 D0 = 71.4 854 M0 = -7 855 GOTO 880 860 T$ = " NEPTUNE " 861 J = 6 862 KE = 3 863 D0 = 68.3 864 M0 = -7 865 GOTO 880 870 T$ = " PLUTON " 871 J = 7 872 KE = 7 873 D0 = 8.3 874 M0 = -1.5 880 P = P0(J) + PP(J) * N 885 M = L0(J) + LP(J) * N - P 890 E = E(J) 895 GOSUB 420 900 V = 2 * ATN(TAN(U / 2) * SQR((1 + E) / (1 - E))) 910 O = O0(J) + OP(J) * N 915 C = V + P - O 920 IF COS(C) = 0 THEN D = C 925 GOTO 950 930 D = ATN(TAN(C) * COS(I(J))) 940 IF COS(C) < 0 THEN D = D + PI 950 IF COS(C) < 0 THEN LH = D + O 960 BS = ATN(SIN(D) * TAN(I(J))) 970 RS = A(J) * (1 - E * COS(U)) 980 XP = RS * COS(BS) * COS(LH) + XS 985 YP = RS * COS(BS) * SIN(LH) + YS 987 ZP = RS * SIN(BS) 990 R = SQR(XP * XP + YP * YP) 995 B = ATN(ZP / R) 997 L = ATN(YP / XP) 1000 IF XP < 0 THEN L = L + PI 1010 GOSUB 470 1020 CLS 1025 PRINT T$ 1026 PRINT 1030 PRINT " POSITION A "; HE; " H "; MI; " TU " 1035 PRINT 1040 PRINT " LONGITUDE "; LD 1050 PRINT " LATITUDE "; INT(B * 18000 / PI + .5 / 100) 1060 PRINT 1070 GOSUB 1080 1075 GOTO 1130 1080 REM TEMPS SIDERAL 1090 RD = 1.7273 + .0172027914# * N + HS * 2 * PI - LO * PI / 180 1100 GOSUB 1300 1110 TS = RD 1120 RETURN 1130 GOSUB 1170 1135 GOSUB 1270 1140 GOSUB 1360 1150 GOSUB 1510 1155 GOSUB 1550 1160 INPUT "VOULEZ VOUS ARRETER (O/N) "; S$ 1162 IF S$ = "O" OR S$ = "o" THEN END 1165 GOTO 608 1170 REM calcul asc droite et dec 1180 EP = .40927971# 1190 SD = COS(EP) * SIN(B) + SIN(EP) * COS(B) * SIN(L) 1200 DE = ATN(SD / SQR(1 - SD * SD)) 1210 SR = -SIN(EP) * SIN(B) + COS(EP) * COS(B) * SIN(L) 1220 RD = ATN(SR / COS(B) / COS(L)) 1230 IF COS(B) * COS(L) < 0 THEN RD = RD + PI 1240 IF RD < 0 THEN RD = RD + 2 * PI 1250 AR = RD 1255 GOSUB 1300 1260 GOSUB 1320 1265 RETURN 1270 PRINT " ASCENSION DROITE ="; H; " H "; M; " M "; S; " S" 1280 PRINT " DECLINAISON ="; INT(DE * 18000 / PI + .5) / 100 1285 PRINT 1290 RETURN 1300 RD = (RD / 2 / PI - INT(RD / 2 / PI)) * 2 * PI 1305 IF RD < 0 THEN RD = RD + 2 * PI 1310 RETURN 1320 H = INT(RD / PI * 12) 1330 M = INT((RD - H * PI / 12) * 720 / PI) 1340 S = INT((RD - H * PI / 12 - M * PI / 720) * 43200 / PI) 1350 RETURN 1360 REM calcul hauteur et azimut 1370 AH = TS - AR 1380 ZC = SIN(LA) * SIN(DE) + COS(LA) * COS(DE) * COS(AH) 1390 HT = ATN(ZC / SQR(-ZC * ZC + 1)) 1400 ASS = COS(DE) * SIN(AH) / COS(HT) 1410 AC = (-COS(LA) * SIN(DE) + SIN(LA) * COS(DE) * COS(AH)) / COS(HT) 1420 AZ = ATN(ASS / AC) 1430 IF AC < 0 THEN AZ = AZ + PI 1440 LJ = L 1445 L = AZ 1447 GOSUB 470 1450 PRINT " AZIMUT = "; LD 1460 HD = HT * 180 / PI 1465 HD = INT(HD * 10 + .5) / 10 1470 PRINT " HAUTEUR = "; HD 1480 IF HD < 0 THEN PRINT " INVISIBLE EN CE MOMENT " 1500 RETURN 1510 REM calcul lever/coucher 1520 ZX = 90.58 * PI / 180 1530 HC = (COS(ZX) - SIN(LA) * SIN(DE)) / COS(LA) / COS(DE) 1535 IF HC >= 1 THEN PRINT " CALCUL LEVER/COUCHER IMPOSSIBLE" 1540 HL = -ATN(HC / SQR(-HC * HC + 1)) + PI / 2 1545 RETURN 1550 HZ = 2 * PI * HS - AH 1555 RD = HZ - HL 1560 GOSUB 1300 1565 GOSUB 1320 1570 PRINT " LEVER ="; H; " H "; M; " M" 1580 RD = HZ + HL 1590 GOSUB 1300 1595 GOSUB 1320 1600 PRINT " COUCHER ="; H; " H "; M; " M" 1700 RETURN 2000 REM CALCUL LUNE 2010 GOSUB 3000 2020 CLS 2025 PRINT " LUNE" 2027 PRINT 2030 PRINT " POSITION A "; HE; " H "; MI; " TU" 2040 GOSUB 470 2050 PRINT " LONGITUDE ="; LD 2060 PRINT " LATITUDE ="; INT(B * 18000 / PI + .5) / 100 2065 PRINT 2070 GOSUB 1180 2075 GOSUB 1270 2080 AH = TS - AR 2090 REM calcul de la phase 2100 PH = L - LS 2102 RD = PH 2103 GOSUB 1300 2104 PH = RD 2110 IF PH < PI / 24 GOTO 2190 2120 IF PH < 11 * PI / 24 THEN PRINT " ENTRE NOUVELLE LUNE ET PREMIER QUARTIER " 2125 IF PH < 11 * PI / 24 GOTO 2200 2130 IF PH < 13 * PI / 24 THEN PRINT " PREMIER QUARTIER " 2135 IF PH < 13 * PI / 24 GOTO 2200 2140 IF PH < 23 * PI / 24 THEN PRINT " ENTRE PREMIER QUARTIER ET PLEINE LUNE" 2145 IF PH < 23 * PI / 24 GOTO 2200 2150 IF PH < 25 * PI / 24 THEN PRINT " PLEINE LUNE" 2155 IF PH < 25 * PI / 24 GOTO 2200 2160 IF PH < 35 * PI / 24 THEN PRINT " ENTRE PLEINE LUNE ET DERNIER QUARTIER" 2165 IF PH < 35 * PI / 24 GOTO 2200 2170 IF PH < 37 * PI / 24 THEN PRINT " DERNIER QUARTIER " 2175 IF PH < 37 * PI / 4 GOTO 2200 2180 IF PH < 47 * PI / 24 THEN PRINT " ENTRE DERNIER QUARTIER ET NOUVELLE LUNE" 2185 IF PH < 47 * PI / 24 GOTO 2200 2190 PRINT " NOUVELLE LUNE" 2200 PRINT 2210 GOSUB 1520 2220 REM calcul de la fraction de jour au lever et coucher 2230 HZ = 2 * PI * HS - AH - HL 2240 FJ = HZ / 2 / PI - INT(HZ / 2 / PI) 2245 HZ = 2 * PI * HS - AH + HL 2250 FK = HZ / 2 / PI - INT(HZ / 2 / PI) 2260 NI = N 2265 HU = HS 2280 GOSUB 3000 2285 GOSUB 1090 2287 GOSUB 1180 2290 GOSUB 2440 2300 ZX = 89.9 * PI / 180 2310 GOSUB 1530 2320 HZ = 2 * PI * FJ - AH - HL 2325 IF HZ < 0 OR HZ > 2 * PI GOTO 2345 2330 RD = HZ 2335 GOSUB 1300 2337 GOSUB 1320 2340 PRINT " LEVER = "; H; " H "; M; " M" 2342 GOTO 2350 2345 PRINT " PAS DE LEVER" 2350 N = INT(NI) + FK 2355 HS = FK 2360 GOSUB 3000 2365 GOSUB 1090 2367 GOSUB 1180 2370 GOSUB 2440 2390 HZ = 2 * PI * FK - AH + HL 2400 RD = HZ 2402 GOSUB 1300 2405 GOSUB 1320 2410 PRINT " COUCHER = "; H; " H "; M; " M " 2412 GOTO 2420 2415 PRINT " PAS DE COUCHER " 2420 N = NI 2425 HS = HU 2430 GOTO 1160 2440 AH = TS - AR 2445 IF AH > PI THEN AH = AH - 2 * PI 2450 IF AH < -PI THEN AH = AH + 2 * PI 2455 RETURN 2500 CLS 2510 INPUT " ASC DROITE : "; AD 2515 INPUT " DECLINAISON :"; DC 2520 AR = AD * PI / 180 2530 DE = DC * PI / 180 2540 GOSUB 1080 2545 GOSUB 1360 2550 GOTO 1160 3000 REM CALCUL LONGITUDE LUNE 3010 L = .57999 + .229971503# * N 3020 O = 4.1867 - 9.2422E-04 * N 3030 M = .3193 + .228027135# * N 3040 D = L - LL 3045 F = L - O 3050 L = L + .1098 * SIN(M) + .003728 * SIN(2 * M) + .01149 * SIN(2 * D) 3060 L = L - .000329 * SIN(MS) + .02224 * SIN(2 * D - M) - .001945 * SIN(2 * F) 3070 L = L + .001026 * SIN(2 * D - 2 * M) + .000998 * SIN(2 * D - M - MS) 3080 L = L + .0009903 * SIN(2 * D + M) + .0008011 * SIN(2 * D - MS) 3090 L = L + .0007156 - 4 * SIN(M - MS) - .0005323 * SIN(M + MS) - .0006074 * SIN(D) 3200 REM CALCUL LATITUDE LUNE 3210 B = .08995 * SIN(F) + .0049 * SIN(M + F) + .00485 * SIN(M - F) + .003 * SIN(2 * D - F) 3220 B = B + .00097 * SIN(2 * D - M + F) + .0008 * SIN(2 * D - M - F) + .00057 * SIN(2 * D + F) 3230 RETURN