10 CLS 0 CLEAR : SCREEN 12 PALETTE 4, 63 GOSUB INTRO1: GOSUB INTRO2: GOSUB INTRO3 CLS 0 ON ERROR GOTO 100 GOSUB INITIALIZING PALETTE 4, 63 15 LOCATE 1, 1: PRINT SPACE$(79): LOCATE 1, 1 INPUT " MENU: [P]osicion [G]rafico [O]rbitas [Q]uit:"; MENU$ MENU$ = LTRIM$(MENU$) SELECT CASE MENU$ CASE IS = "P" GOSUB POSICION CLS 0 CASE IS = "G" GOSUB CIELO CLS 0 CASE IS = "O" GOSUB SOLAR CLS 0 CASE IS = "Q" SYSTEM CASE ELSE GOTO 15 END SELECT GOTO 15 SYSTEM '----------------------------------- 100 RESUME NEXT POSICION: 200 GOSUB INITIALIZING GOSUB DATEINPUT1 DJ# = DJ0# FOR PLAK = 1 TO 9 GOSUB MAINPGM1: GOSUB MAINPGM2 NEXT PLAK GOSUB DRAWING 210 LOCATE 28, 1: PRINT SPACE$(79) LOCATE 28, 5: INPUT "NOVO CALCULO ? [S/N] "; V$ V$ = LTRIM$(V$) SELECT CASE V$ CASE "N" RETURN CASE "S" LOCATE 28, 1: PRINT SPACE$(79) GOTO 200 CASE ELSE GOTO 210 END SELECT RETURN : CIELO: 50 CLS 0 VIEW (8, 96)-(632, 411), 0, 15 WINDOW (0, 30)-(24, -30) 60 GOSUB DATEINPUT1 GOSUB INTERVALO GOSUB ELEGIRPLANETA GOSUB TELA2 FOR j = 0 TO NBR DJ# = DJ0# + j LOCATE 2, 1: PRINT SPACE$(19): LOCATE 2, 1: PRINT "DIA =" + STR$(j) IF PLAN = 99 THEN ZGK = 1: PLAT = 9 ELSE ZGK = PLAN: PLAT = PLAN END IF FOR PLAK = ZGK TO PLAT GOSUB MAINPGM1: GOSUB MAINPGM2 GOSUB SELCAPLAN GOSUB TELA2 NEXT PLAK NEXT j LOCATE 2, 17: PRINT "DIA JULIANO FINAL = " + STR$(DJ#) 300 LOCATE 28, 1: PRINT SPACE$(79) LOCATE 28, 5: INPUT "NOVO CALCULO ? [S/N] "; V$ V$ = LTRIM$(V$) SELECT CASE V$ CASE "N" RETURN CASE "S" 310 LOCATE 28, 1: PRINT SPACE$(79) LOCATE 28, 1: INPUT "APAGA GRAFICO ? [S/N] "; V2$ V2$ = LTRIM$(V2$) SELECT CASE V2$ CASE "S" LOCATE 28, 1: PRINT SPACE$(79): GOTO 50 CASE "N" LOCATE 28, 1: PRINT SPACE$(79): GOTO 60 CASE ELSE GOTO 310 END SELECT CASE ELSE GOTO 300 END SELECT RETURN : SOLAR: 400 CLS 0: FOR Y = 1 TO 9: XPA(Y) = 0: YPA(Y) = 0: NEXT Y VIEW (4, 4)-(416, 416), 0, 11 GOSUB DATEINPUT2 405 : LOCATE 3, 56: INPUT "NUMERO DIAS "; NBR SELECT CASE NBR CASE IS < 0 LOCATE 3, 56: PRINT SPACE$(24): GOTO 405 END SELECT LOCATE 5, 54: PRINT "Escala Mar:2/Sat:10/Plu:40" 410 : LOCATE 6, 56: PRINT SPACE$(24) LOCATE 6, 56: INPUT "Escala [ua] ="; es SELECT CASE es CASE IS <= 0, IS >= 45 GOTO 410 END SELECT WINDOW (-es, es)-(es, -es) LOCATE 13, 54: PRINT "Desenhando..." FOR kk = 1 TO 9: LOCATE 13 + kk, 56: PRINT PN$(kk): NEXT kk FOR G# = 0 TO NBR DJ# = DJ0# + G# LOCATE 4, 56: PRINT SPACE$(24) LOCATE 4, 56: PRINT "DIA = " + STR$(G#) CIRCLE (0, 0), .1, 14: PAINT (0, 0), 14 FOR PLAK = 1 TO 9 GOSUB MAINPGM1 LINE (0, 0)-(45, 0), 1: LOCATE 14, 52: PRINT CHR$(231) CIRCLE (XPA(PLAK), YPA(PLAK)), .03, 11 PAINT (XPA(PLAK), YPA(PLAK)), 11 CIRCLE (XP(PLAK), YP(PLAK)), .03, 4 PAINT (XP(PLAK), YP(PLAK)), 4 XPA(PLAK) = XP(PLAK): YPA(PLAK) = YP(PLAK) NEXT PLAK LOCATE 8, 54: PRINT "DJ FINAL = "; DJ# NEXT G# 420 LOCATE 24, 56: PRINT SPACE$(17) LOCATE 24, 54: INPUT "NOVO CALCULO [S/N]"; CNT$ CNT$ = LTRIM$(CNT$) SELECT CASE CNT$ CASE "N" RETURN CASE "S" GOTO 400 CASE ELSE GOTO 420 END SELECT RETURN INITIALIZING: CONST PI = 3.1415926536#: DR = PI / 180: EK = 23.45 * DR: k# = 2 * PI / 365.25636# REM ARGUMENTS OF PERIHELION-INCLINATION-LONG ASC NODE-EXCENTR-MAJOR AXIS RESTORE 11008: FOR I = 1 TO 9: READ AP#(I): AP#(I) = AP#(I) * DR: NEXT I RESTORE 11010: FOR I = 1 TO 9: READ IN#(I): IN#(I) = IN#(I) * DR: NEXT I RESTORE 11012: FOR I = 1 TO 9: READ LN#(I): LN#(I) = LN#(I) * DR: NEXT I RESTORE 11014: FOR I = 1 TO 9: READ EX#(I): NEXT I RESTORE 11016: FOR I = 1 TO 9: READ SA#(I): NEXT I RESTORE 11018: FOR I = 1 TO 9: READ JP#(I): NEXT I FOR I = 1 TO 9 C(I, 1) = COS(AP#(I)) * COS(LN#(I)) - SIN(AP#(I)) * COS(IN#(I)) * SIN(LN#(I)) C(I, 2) = -SIN(AP#(I)) * COS(LN#(I)) - COS(AP#(I)) * COS(IN#(I)) * SIN(LN#(I)) C(I, 3) = COS(AP#(I)) * SIN(LN#(I)) + SIN(AP#(I)) * COS(IN#(I)) * COS(LN#(I)) C(I, 4) = -SIN(AP#(I)) * SIN(LN#(I)) + COS(AP#(I)) * COS(IN#(I)) * COS(LN#(I)) C(I, 5) = SIN(AP#(I)) * SIN(IN#(I)) C(I, 6) = COS(AP#(I)) * SIN(IN#(I)) N(I) = k# * SA#(I) ^ -1.5 NEXT I PN$(1) = "MER ": PN$(2) = "VEN ": PN$(3) = "TER " PN$(4) = "MAR ": PN$(5) = "JUP ": PN$(6) = "SAT " PN$(7) = "URA": PN$(8) = "NEP": PN$(9) = "PLU" RETURN : DATEINPUT1: LOCATE 1, 1: PRINT SPACE$(79): LOCATE 2, 1: PRINT SPACE$(79): LOCATE 3, 1: PRINT SPACE$(79) LOCATE 4, 1: PRINT SPACE$(79) 600 : LOCATE 1, 1: INPUT "DAY [DD] = "; DD SELECT CASE DD CASE IS <= 0, IS > 31 LOCATE 1, 1: PRINT SPACE$(79) GOTO 600 END SELECT 610 : LOCATE 2, 1: INPUT "MONTH [MM] = "; MM SELECT CASE MM CASE IS <= 0, IS > 12 LOCATE 2, 1: PRINT SPACE$(79) GOTO 610 END SELECT 620 : LOCATE 3, 1: INPUT "YEAR [YYYY] = "; YY SELECT CASE YY CASE IS < 1998 LOCATE 3, 1: PRINT SPACE$(79) GOTO 620 END SELECT LOCATE 1, 1: PRINT SPACE$(30): LOCATE 2, 1: PRINT SPACE$(30): LOCATE 3, 1: PRINT SPACE$(30) GOSUB DIAJULIANO LOCATE 1, 1: PRINT DD; "/"; MM; "/"; YY; " DJ INICIAL = "; DJ0# RETURN : DATEINPUT2: LOCATE 1, 56: PRINT SPACE$(24): LOCATE 2, 56: PRINT SPACE$(24) LOCATE 3, 56: PRINT SPACE$(24): LOCATE 4, 56: PRINT SPACE$(24) LOCATE 5, 56: PRINT SPACE$(24) LOCATE 1, 56: PRINT "DATA DE INICIO" 700 : LOCATE 2, 56: INPUT "DIA [DD] = "; DD SELECT CASE DD CASE IS <= 0, IS > 31 LOCATE 2, 56: PRINT SPACE$(24) GOTO 700 END SELECT 710 : LOCATE 3, 56: INPUT "MES [MM] = "; MM SELECT CASE MM CASE IS <= 0, IS > 12 LOCATE 3, 56: PRINT SPACE$(24) GOTO 710 END SELECT 720 : LOCATE 4, 56: INPUT "ANO [YYYY] = "; YY SELECT CASE YY CASE IS < 1998 LOCATE 4, 56: PRINT SPACE$(24) GOTO 720 END SELECT LOCATE 1, 56: PRINT SPACE$(24): LOCATE 2, 56: PRINT SPACE$(24) LOCATE 3, 56: PRINT SPACE$(24): LOCATE 4, 56: PRINT SPACE$(24) LOCATE 5, 56: PRINT SPACE$(24) LOCATE 1, 56: PRINT "DATA"; DD; "/"; MM; "/"; YY GOSUB DIAJULIANO LOCATE 2, 54: PRINT "DJ INICIAL = "; DJ0# RETURN : INTERVALO: 750 : LOCATE 2, 20: INPUT "NUMERO DE DIAS"; NBR SELECT CASE NBR CASE IS < 0 LOCATE 2, 20: PRINT SPACE$(60): GOTO 750 END SELECT LOCATE 1, 50: PRINT "GRAFICO PARA " + STR$(NBR) + " DIAS" RETURN : DIAJULIANO: IF MM = 1 OR MM = 2 THEN MMJ = MM + 13: AAJ = YY - 1 END IF IF MM >= 3 THEN MMJ = MM + 1: AAJ = YY END IF DJ0# = 1720982 + INT(365.25 * AAJ) + INT(30.6001 * MMJ) + DD - .5 RETURN : MAINPGM1: 'CALCULO POSICION EN LA ORBITA 'COORDENADAS HELIOCENTRICAS ORBITALES POLARES M(3) = N(3) * (DJ# - JP#(3)) M = M(3): SA = SA#(3): EX = EX#(3) GOSUB ANOMALY RV#(3) = RV: AV#(3) = AV 'COORDENADAS HELIOCENTRICAS ORBITALES RECTANGULARES X(3) = RV#(3) * COS(AV#(3)) Y(3) = RV#(3) * SIN(AV#(3)) Z(3) = 0 'COORDENADAS HELIOCENTRICAS ECLIPTICAS RECTANGULARES XP(3) = C(3, 1) * X(3) + C(3, 2) * Y(3) YP(3) = C(3, 3) * X(3) + C(3, 4) * Y(3) ZP(3) = C(3, 5) * X(3) + C(3, 6) * Y(3) M(PLAK) = N(PLAK) * (DJ# - JP#(PLAK)) M = M(PLAK): SA = SA#(PLAK): EX = EX#(PLAK) GOSUB ANOMALY RV#(PLAK) = RV: AV#(PLAK) = AV 'COORDENADAS HELIOCENTRICAS ORBITALES RECTANGULARES X(PLAK) = RV#(PLAK) * COS(AV#(PLAK)) Y(PLAK) = RV#(PLAK) * SIN(AV#(PLAK)) Z(PLAK) = 0 'COORDENADAS HELIOCENTRICAS ECLIPTICAS RECTANGULARES XP(PLAK) = C(PLAK, 1) * X(PLAK) + C(PLAK, 2) * Y(PLAK) YP(PLAK) = C(PLAK, 3) * X(PLAK) + C(PLAK, 4) * Y(PLAK) ZP(PLAK) = C(PLAK, 5) * X(PLAK) + C(PLAK, 6) * Y(PLAK) RETURN : MAINPGM2: 'COORDENADAS HELIOCENTRICAS ECLIPTICAS ESFERICAS POLARES RS(PLAK) = SQR(XP(PLAK) ^ 2 + YP(PLAK) ^ 2 + ZP(PLAK) ^ 2) L0 = XP(PLAK) / RS(PLAK) M0 = YP(PLAK) / RS(PLAK) N0 = ZP(PLAK) / RS(PLAK) GOSUB RADEC LONH(PLAK) = RA * 15: LATH(PLAK) = DK RS$(PLAK) = STR$(RS(PLAK)) IF RS(PLAK) >= 10 THEN RS$(PLAK) = LTRIM$(RS$(PLAK)) END IF NN = LONH(PLAK): GOSUB OUTLINE: LONH$(PLAK) = KD$ NN = LATH(PLAK): GOSUB OUTLINE: LATH$(PLAK) = KD$ 'COORDENADAS GEOCENTRICAS ECLIPTICAS RECTANGULARES XL(PLAK) = XP(PLAK) - XP(3) YL(PLAK) = YP(PLAK) - YP(3) ZL(PLAK) = ZP(PLAK) - ZP(3) 'COORDENADAS GEOCENTRICAS ECUATORIALES RECTANGULARES XQ(PLAK) = XL(PLAK) YQ(PLAK) = COS(EK) * YL(PLAK) - SIN(EK) * ZL(PLAK) ZQ(PLAK) = SIN(EK) * YL(PLAK) + COS(EK) * ZL(PLAK) 'COORDENADAS GEOCENTRICAS ECUATORIALES ESFERICAS-ascencion recta y declinacion RP(PLAK) = SQR(XQ(PLAK) ^ 2 + YQ(PLAK) ^ 2 + ZQ(PLAK) ^ 2) LQ(PLAK) = XQ(PLAK) / RP(PLAK) MQ(PLAK) = YQ(PLAK) / RP(PLAK) NQ(PLAK) = ZQ(PLAK) / RP(PLAK) L0 = LQ(PLAK) M0 = MQ(PLAK) N0 = NQ(PLAK) GOSUB RADEC RA(PLAK) = RA DK(PLAK) = DK RP$(PLAK) = STR$(RP(PLAK)) IF RP(PLAK) >= 10 THEN RP$(PLAK) = LTRIM$(RP$(PLAK)) END IF NN = RA: GOSUB OUTLINE: RA$(PLAK) = KD$ NN = DK: GOSUB OUTLINE: DK$(PLAK) = KD$ RETURN : ANOMALY: IF M >= 2 * PI THEN AM = M - 2 * PI * FIX(M / (2 * PI)) ELSE AM = M END IF : E1 = AM DO E = E1 E1 = AM + EX * SIN(E) LOOP UNTIL ABS(E1 - E) < .000001 CAV = (COS(E1) - EX) / (1 - EX * COS(E1)) SAV = SQR(1 - EX ^ 2) * SIN(E1) / (1 - EX * COS(E1)) TAV = SAV / CAV AT = ATN(TAV) IF SAV >= 0 AND CAV >= 0 THEN AV = AT END IF IF SAV >= 0 AND CAV < 0 THEN AV = PI + AT END IF IF SAV < 0 AND CAV <= 0 THEN AV = PI + AT END IF IF SAV < O AND CAV > 0 THEN AV = 2 * PI + AT END IF RV = SA * (1 - EX * COS(E1)) RETURN : RADEC: DK = (1 / DR) * ATN(N0 / SQR(1 - N0 ^ 2)) IF L0 = 0 THEN SELECT CASE M0 CASE M0 > 0 RAK = 90: GOTO 16012 CASE M0 < 0 RAK = 270: GOTO 16012 END SELECT ELSE AR = ATN(M0 / L0) / DR END IF : IF L0 > 0 AND M0 > 0 THEN RAK = AR: GOTO 16012 END IF IF L0 > 0 AND M0 < 0 THEN RAK = 360 + AR: GOTO 16012 END IF IF L0 < 0 AND M0 < 0 THEN RAK = 180 + AR: GOTO 16012 END IF IF L0 < 0 AND M0 > 0 THEN RAK = 180 + AR END IF 16012 RA = RAK / 15 RETURN : OUTLINE: K9 = ABS(FIX(NN)) K7 = 60 * (ABS(NN) - K9) K8 = FIX(K7) K6 = FIX(10 * (K7 - K8)) K9$ = LTRIM$(STR$(K9)) K8$ = LTRIM$(STR$(K8) + "." + LTRIM$(STR$(K6))) SK = SGN(NN) SELECT CASE SK CASE IS > 0 SS$ = "+" CASE IS = 0 SS$ = " " CASE IS < 0 SS$ = "-" END SELECT : SP = LEN(K9$) SELECT CASE SP CASE IS = 3 K9$ = SS$ + K9$ CASE IS = 2 K9$ = SS$ + " " + K9$ CASE IS = 1 K9$ = SS$ + " " + K9$ END SELECT : IF K8 < 10 THEN K8$ = " " + K8$ END IF : KD$ = K9$ + " " + K8$ RETURN : TELA2: FOR G = 0 TO 24 IF G = 12 THEN COR = 7 ELSE COR = 8 END IF LINE (G, 45)-(G, -45), COR NEXT G FOR G = -40 TO 40 STEP 10 IF G = 0 THEN COR = 7 ELSE COR = 8 END IF LINE (0, G)-(24, G), COR NEXT G LOCATE 27, 2: PRINT "0h AR": LOCATE 27, 40: PRINT "12h": LOCATE 27, 78: PRINT "24h" LOCATE 7, 1: PRINT "30" + CHR$(248) + "Decl" LOCATE 25, 1: PRINT "-30" + CHR$(248) RETURN : TELA1: LOCATE 4, 1: PRINT "Codigo Cores:" LOCATE 4, 15: COLOR 11: PRINT "Mer": LOCATE 4, 19: COLOR 15: PRINT "Ven" LOCATE 4, 23: COLOR 4: PRINT "Mar": LOCATE 4, 27: COLOR 9: PRINT "Jup" LOCATE 4, 31: COLOR 14: PRINT "Sat": LOCATE 4, 35: COLOR 2: PRINT "Ura" LOCATE 4, 39: COLOR 5: PRINT "Nep": LOCATE 4, 43: COLOR 8: PRINT "Plu" COLOR 15 RETURN : ELEGIRPLANETA: 500 LOCATE 3, 1: PRINT SPACE$(79): LOCATE 3, 1 INPUT "QUAL PLANETA ?(MMer,Ven,Mar,Jup,Sat,Ura,Nep,Plu,Todos)"; PLA$ PLA$ = LTRIM$(PLA$) SELECT CASE PLA$ CASE IS = "MM" PLAN = 1 CASE IS = "V" PLAN = 2 CASE IS = "M" PLAN = 4 CASE IS = "J" PLAN = 5 CASE IS = "S" PLAN = 6 CASE IS = "U" PLAN = 7 CASE IS = "N" PLAN = 8 CASE IS = "P" PLAN = 9 CASE IS = "T" PLAN = 99 CASE ELSE GOTO 500 END SELECT GOSUB TELA1 RETURN : SELCAPLAN: CORPLAN(1) = 11: CORPLAN(2) = 15: CORPLAN(4) = 4: CORPLAN(5) = 9 CORPLAN(6) = 14: CORPLAN(7) = 2: CORPLAN(8) = 5: CORPLAN(9) = 8 SELECT CASE PLA$ CASE IS = "T" FOR hh = 1 TO 9 PSET (RA(hh), DK(hh)), CORPLAN(hh) NEXT hh CASE ELSE PSET (RA(PLAK), DK(PLAK)), CORPLAN(PLAK) END SELECT RETURN : DRAWING: LOCATE 1, 1: PRINT DD; "/"; MM; "/"; YY; " DIA JULIANO = "; DJ0# TITULO0$ = "VALORES GEOCENTRICOS" TITULO00$ = "VALORES HELIOCENTRICOS" TITULO1$ = "PLANETA " TITULO2$ = " AR [h m]" + " DECL " + "[" + CHR$(248) + " '" + "]" TITULO2$ = TITULO2$ + " DIST[ua] " TITULO3$ = " LONG " + "[" + CHR$(248) + " '" + "]" TITULO3$ = TITULO3$ + " LAT " + "[" + CHR$(248) + " '" + "]" TITULO3$ = TITULO3$ + " DIST[ua]" LOCATE 6, 15: COLOR 11: PRINT TITULO0$: LOCATE 6, 50: COLOR 14: PRINT TITULO00$ LOCATE 7, 2: COLOR 15: PRINT TITULO1$ LOCATE 7, 10: COLOR 11: PRINT TITULO2$ LOCATE 7, 46: COLOR 14: PRINT TITULO3$ FOR I = 1 TO 9 COLOR 15: LOCATE 7 + I, 4: PRINT PN$(I) COLOR 11 LOCATE 7 + I, 10: PRINT RA$(I) LOCATE 7 + I, 22: PRINT DK$(I) LOCATE 7 + I, 34: PRINT RP$(I) COLOR 14 LOCATE 7 + I, 46: PRINT LONH$(I) LOCATE 7 + I, 57: PRINT LATH$(I) LOCATE 7 + I, 68: PRINT RS$(I) NEXT I COLOR 15 RETURN : 'redshift2 values 11007 'ARGUMENTS OS PERIHELION -AP- IN DEGREES 11008 DATA 29.1127778,54.5597222,102.5963889,286.415,274.4747222,334.64111111,100.5275,241.1038889,114.3166667 11009 'ORBIT INCLINATION -IN- IN DEGREES 11010 DATA 7.005,3.39472222,0,1.8497222,1.3047222,2.4852778,0.7733333,1.7675,17.1269444 11011 'LONGITUDE OF ASCENDING NODE -LN- IN DEGREES 11012 DATA 48.3080556,76.6636111,0,49.5427778,100.4613889,113.6166667,74.0730556,131.7791667,110.3397222 11013 'ORBIT EXCENTRICITY 11014 DATA 0.205650,0.006824,0.0172,0.093426,0.049282,0.053860,0.042739,0.010691,0.248591 11015 'ORBIT MAJOR AXIS -SA- IN ASTRONOMICAL UNITS 11016 DATA 0.387096,0.723352,1.000798,1.523714,5.207972,9.577868,19.296616,30.252611,39.534723 11017 'LAST PERIHELION JULIAN DATE -JP- IN JULIAN DAYS 11018 DATA 2450797.5312,2450613.6959,2450450.8547,2450132.9594,2446969.0125,2441878.9985,2439656.3974,2401820.168,2447897.1777 : INTRO1: PRINT PRINT : COLOR 14 PRINT " P L A N E T A S" PRINT PRINT : COLOR 15 PRINT PRINT " Um programa astronomico de Andres Esteban de la Plaza" PRINT PRINT " Rio de Janeiro ----- Marzo de 1998" PRINT PRINT VIEW (200, 180)-(400, 380), 0, 4 WINDOW (-100, 100)-(100, -100) CIRCLE (0, 0), 50, 4 FOR JKG = 0 TO 360 STEP 10 JKR = JKG * 3.1416 / 180: V = 100 * COS(JKR): U = 100 * SIN(JKR) LINE (0, 0)-(V, U), 14 NEXT JKG FOR JKG = 10 TO 100 STEP 10 CIRCLE (0, 0), JKG, 4 NEXT JKG PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT "Pressione uma tecla para continuar..." DO LOOP UNTIL INKEY$ <> "" RETURN INTRO2: PRINT "Em 1991 comecei a interessar-me pelo problema da determinacao das trajetorias" PRINT "dos corpos celestes por causa de uma artigo publicado na revista SKY & TELES-" PRINT "COPE de maio de 1989 na coluna Astronomical Computing. O titulo do artigo em " PRINT "questao era 'The Double Polestar of the Past' e tratava do aspecto do ceu em" PRINT "epocas remotas, principalmente sobre quais as estrelas que no passado cumpri" PRINT "ram a funcao de estrela polar... O artigo trazia um pequeno listado em Basic " PRINT "para calcular os efeitos da precessao e os movimentos proprios das estrelas." PRINT "Apos estuda-lo resolvi incrementar o mesmo e procedi a verificacao de algumas" PRINT "estrelas do hemisferio sul; porem na epoca tive que fazer os calculos apenas" PRINT "empregando minha calculadora programavel HP 28S que possui apenas 32 Kbytes." PRINT "Fiz alguns graficos e mandei-os pelo correio ao endereco do autor do artigo" PRINT "na Alemanha. Afortunadamente o Andreas (o autor) verificou meus dados..." PRINT "Tempo depois numa Livraria Pagina Ltda. na rua das Marrecas no centro do Rio" PRINT "achei um livro russo em espanhol titulado 'Problemas y Ejercicios Practicos" PRINT "de Astronomia, da conhecida editorial MIR. Este excelente livro me forneceu" PRINT "algumas formulas para comecar entretanto, nao figuravam neste os procedimen-" PRINT "tos de resolucao das equacoes diferenciais que governam a mecanica celeste." PRINT "Principalmente a resolucao da equacao:" PRINT PRINT " F = -GMm/r" + CHR$(253) PRINT PRINT "Assim sendo, tive que me sentar e resolver esta equacao diferencial ate chegar" PRINT "a formulas conhecidas de calculo a partir das quais poderia implementar alguns" PRINT "algoritmos para que o computador pudesse dar valores numericos. E obvio que a" PRINT "resolucao da equacao mencionada nao e nada facil, porem os algoritmos sao muito" PRINT "simples." PRINT PRINT "Pressione uma tecla para continuar..." DO LOOP UNTIL INKEY$ <> "" RETURN INTRO3: PRINT "Este programa resultou da implementacao de tais conceitos..." PRINT "-------------------------------------------------------------------------------" PRINT "Basicamente o programa compoe-se de tres modulos, apresentados em forma de menu:" PRINT PRINT " POSICION GRAFICO ORBITAS " PRINT PRINT "A opcao POSICION retorna a posicao dos nove planetas do sistema solar para uma" PRINT "data determinada, fornecida como dia/mes/ano. A posicao do planeta no espaco" PRINT "e dada em dois sistemas de coordenadas diferentes:as equatoriais geocentricas e" PRINT "as eclipticas heliocentricas, ou seja:" PRINT PRINT "Equatoriais Geocentricas -> AR / Dec =Ascencao Reta[hrs min]/ Declinacao [graus]" PRINT "Eclipticas Heliocentricas -> LONG / LAT = Longitude e Latitude, ambas em [graus]" PRINT PRINT PRINT "A opcao GRAFICO permite desenhar no mapa do ceu, entre 0 e 24 hrs de AR e -35 a" PRINT "35 graus de declinacao, as trajetorias dos planetas em forma individual ou con-" PRINT "junta, para um certo numero de dias. O computo da posicao e diaria." PRINT PRINT PRINT "A opacao ORBITAS permite visualizar o movimento e posicao dos planetas do sis-" PRINT "tema solar desde o lado norte do mesmo, para um certo numero de dias." PRINT "A escala de visualizacao pode ser mudada pelo usuario para observar melhor os" PRINT "planetas do sistema solar interior (Mercurio/Venus/Terra/Marte)." PRINT PRINT PRINT PRINT PRINT "Pressione uma tecla para INICIAR O MENU..." DO LOOP UNTIL INKEY$ <> "" RETURN