home *** CD-ROM | disk | FTP | other *** search
/ Play and Learn 2 / 19941.ZIP / 19941 / EDUCNOMY / ASTRONMY / SOLAR.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1994-02-04  |  5.4 KB  |  135 lines

  1. 1              'SOLAR DATA PROGRAM
  2. 2              'SCIENCE PROJECT
  3. 3              'MICHAEL A. SYCZYLO
  4. 4              'SIXTH GRADE
  5. 5              'VALLEY MILLS ELEMENTRY SCHOOL
  6. 10      DIM N(12)
  7. 20  PL = 3.14159 / 26 : J = 57.2958 : K$ = CHR$(13)
  8. 21             'THIS DATA DEFINES THE
  9. 22             'LOCATION WHICH ALL
  10. 23             'CALCULATIONS ARE BASED.
  11. 24             'USER'S LOCAL DATA SHOULD
  12. 25             'BE INSERTED HERE.
  13. 26             'LC$   = CITY, STATE
  14. 27             'D1,M1 = LAT. (DEG,MIN)
  15. 28             'D2,M2 = LONG. (DEG,MIN)
  16. 29             'T$    = TIME ZONE (E,C,M,P)
  17. 30      LC$ = "INDIANAPOLIS, INDIANA" : D1 = 39 :M1 = 46 :D2 = 86 : M2 =  9 : T$        = "E"
  18. 40      KEY OFF : CLS
  19. 50      RESTORE : FOR I =1 TO 12 : READ N (I) : NEXT I
  20. 60      DATA 0,31,59,90,120,151
  21. 70      DATA 181,212,243,273,304,334
  22. 80      PRINT " THIS PROGRAM FINDS THE DECLINATION";                                  : PRINT " OF THE SUN, THE EQUATION OF TIME,"
  23. 90      PRINT " THE AZMITH ANGLES OF SUNRISE AND";                                    : PRINT " SUNSET, AND THE TIMES OF SUNRISE"
  24. 100     PRINT " AND SUNSET FOR ANY POINT IN";                                    : PRINT " NORTH AMERICA."
  25. 110     PRINT
  26. 120   RESTORE 122 : FOR I = 1 TO 10 : READ KEYDES$ : KEY I, KEYDES$ + K$ : NEXT            : KEY 9, "" : KEY ON
  27. 122  DATA "NLAT", "WLON", "ZONE", "MONTH", "DAY",  "CALC", "LOC", "PRTMO", " ", "END"
  28. 130     GOSUB 640                                                                     : GOTO 220
  29. 140  COLOR 10,0
  30. 141  LOCATE 5,1
  31. 142  PRINT SPC(79)
  32. 143  LOCATE 5,1
  33. 144  BEEP
  34. 145  INPUT "Select function", Z$
  35. 146  COLOR 10,0
  36. 147  BEEP
  37. 150  LOCATE 5,1
  38. 151  PRINT SPC(79)
  39. 152  LOCATE 5,1
  40. 153  IF Z$ = "END" THEN 720 ELSE IF Z$ = "NLAT" THEN 190 ELSE IF Z$ = "WLON" THEN    200 ELSE IF Z$ = "ZONE" THEN 210 ELSE IF Z$ = "MONTH" THEN 280 ELSE IF Z$ =     "DAY" THEN 300 ELSE IF Z$ = "PRTMO" THEN 730
  41. 160   IF Z$ = "CALC" THEN GOSUB 310 : GOTO 140 ELSE IF Z$ = "LOC" THEN 180
  42. 170   SOUND 350,8 :GOTO 140
  43. 180   LINE INPUT "LOCATION (CITY,STATE)"    ,LC$ :GOSUB 640 :GOTO 140
  44. 190   INPUT "NORTH LATITUDE (DEG,MIN)"; D1,M1 :GOSUB 640 :GOTO 140
  45. 200   INPUT "WEST LONGITUDE (DEG,MIN)"; D2,M2 : GOSUB 640 : GOTO 140
  46. 210   INPUT "TIME ZONE (E, C, M, P)";T$
  47. 220   IF T$ = "E" OR T$ ="e" THEN T$ ="E" : LO =75 : GOTO 270
  48. 230   IF T$ = "C" OR T$ = "c" THEN T$ = "C" : LO = 90 :GOTO 270
  49. 240   IF T$ = "M" OR T$ = "m" THEN T$ = "M" : LO = 105 : GOTO 270
  50. 250   IF T$ = "P" OR T$ = "p" THEN T$ = "P" : LO = 120 : GOTO 270
  51. 260   GOTO 210
  52. 270   GOSUB 640 : GOTO 140
  53. 280   INPUT "MONTH (1-12) ",M : GOSUB 640 : GOTO 140
  54. 290   IF Q$ = "p" OR Q$ = "P" THEN 700 : ELSE IF Q$ = "d" OR Q$ = "D" THEN 300         ELSE 221
  55. 300  INPUT "DAY OF MONTH (1-31) ",DA  : GOSUB 640 : GOTO 140
  56. 310   X =(N(M) + DA) / 7
  57. 320   LA = D1 + M1 / 60
  58. 330   TD = (D2+M2 / 60-LO) / 15
  59. 340  D=0.456-22.915 * COS(PL * X)- 0.43 * COS(2 * PL * X) - 0.156 * COS(3 * PL * X) + 3.83 * SIN(PL * X) + 0.06 * SIN(2 * PL * X) - 0.082 * SIN(3 * PL * X)
  60. 350   LOCATE 16,1 : PRINT STRING$(79,223) : LOCATE 17,1
  61. 360   PRINT USING "DECLINATION OF THE SUN:  ###.#";D;
  62. 370   PRINT " DEGREES"
  63. 380   E = 0.008 + 0.51* COS(PL * X) - 3.197* COS(2* PL * X) - 0.106* COS(3* PL * X) - 0.15* COS(4* PL * X) - 7.317* SIN(PL * X) - 9.471* SIN(2* PL * X) - 0.391* SIN(3* PL * X) - 0.242* SIN(4* PL * X)
  64. 390   PRINT USING "EQUATION OF TIME : ###.#"; E;
  65. 400   PRINT " MINUTES"
  66. 410   CL = COS(LA /J) : SD = SIN(D / J) : CD = COS(D /J) : Y = SD / CL
  67. 420   IF ABS(Y) =>1 THEN PRINT "NO SUNRISE OF SUNSET" : GOTO 140
  68. 430   Z = 90 - J * ATN(Y / SQR(1 - Y * Y))
  69. 440   F$ = "AZIMUTH OF SUNRISE:  ####.#" : PRINT USING F$; Z;
  70. 450   PRINT " DEGREES"
  71. 460   F$ = "AZIMUTH OF SUNSET:  ####.# " : PRINT USING F$; 360 - Z;
  72. 470   PRINT " DEGREES"
  73. 480  ST = SIN(Z / J) / CD
  74. 490   IF ABS(ST)> = 1 THEN T = 6 : TT = 6 : GOTO 520
  75. 500   CT = SQR(1 - ST * ST)
  76. 510  T=J/15 * ATN(ST / CT) : TT = T
  77. 520   IF D < 0 THEN T = 12 - T : TT = T
  78. 530   T = T + TD - E / 60 - 0.04
  79. 540   GOSUB 600
  80. 550   PRINT "TIME OF SUNRISE: " ; : PRINT T1$; ":"; T2$;  " " ; T$; ".S.T."
  81. 560   T = 12 - TT : T=T +TD - E / 60 + 0.04 : T3$ = T1$ : T4$ = T2$
  82. 570   GOSUB 600
  83. 580   PRINT "TIME OF SUNSET: "; : PRINT T1$; ":"; T2$; " " ; T$; ".S.T."
  84. 590   RETURN
  85. 600   T1 = INT(T) : T2 = T - T1 : T1$ = STR$(T1) : T2 = INT((T2 * 600 + 5) / 10)
  86. 610   T2$ = STR$(T2) : T2$ = RIGHT$(T2$, LEN(T2$) - 1)
  87. 620   IF INT(T2) < 10 THEN T2$ = "0" + T2$
  88. 630   RETURN
  89. 640   LOCATE 8,25 : COLOR 0,7 : PRINT " Present values " : COLOR 7,0 : PRINT
  90. 650   LOCATE 10,30 : PRINT STRING$(49,32) : LOCATE 10 : PRINT "Location name:                      ";  LC$
  91. 660   LOCATE 11 : PRINT "North Latitude:                      "; : PRINT USING   "###:##"; D1;M1
  92. 670   LOCATE 12 : PRINT "West Longitude:                      "; : PRINT USING   "###:##"; D2,M2
  93. 680   LOCATE 13 : PRINT "Time Zone:                           "; : PRINT USING   "!"; T$
  94. 690   LOCATE 14 : PRINT "Month:                               "; : PRINT USING   "##"; M
  95. 700   LOCATE 15 :PRINT "DAY:                                  "; : PRINT USING   "##"; DA
  96. 710   RETURN
  97. 720  KEY 1, "LIST " :KEY 2, "RUN" + K$ : KEY 3, "LOAD" + CHR$(34) : KEY 4, "SAVE" + CHR$(34) : KEY 5, "CONT" + CHR$(13) :CLS : KEY ON : WIDTH "LPT1:",80 : PRINT CHR$(27); CHR$(18) : END
  98. 730   LPRINT CHR$(15) :WIDTH "lpt1:",132
  99. 740   LPRINT "Solar Data for ";LC$; : LPRINT "      Latitude - ";D1;":";M1;: LPRINT "   LONGITUDE - ";D2;":";M2 :LPRINT
  100. 750   LPRINT "Month   Day  Declination    "; : LPRINT "  Equation of  Azimuth of   Azimuth"; : LPRINT " of    Time of    Time of "
  101. 760   LPRINT "              of Sun              "; : LPRINT "Time      Sunrise      Sunset"; : LPRINT "       Sunrise    Sunset"
  102. 765  ON M GOTO 830,850,870,890,910,930,950,970,990,1010,1030,1050
  103. 770   FOR DA = 1 TO ND
  104. 780   GOSUB 640 : GOSUB 310
  105. 790   F$="  ##    ##     ###.#            ###.#"
  106. 791  F$=F$ + "       ####.#      ####.#     "
  107. 792  LPRINT USING F$; M; DA; D; E; Z; 360 - Z;
  108. 800  LPRINT"   " T3$;   ":";T4$;"      ";  T1$ ;":";T2$
  109. 810   NEXT DA
  110. 820   LPRINT CHR$(12) : GOTO 140
  111. 830  ND=31
  112. 840  GOTO 1100
  113. 850  ND=28
  114. 860  GOTO 1100
  115. 870  ND=31
  116. 880  GOTO 1100
  117. 890  ND=30
  118. 900  GOTO 1100
  119. 910  ND=31
  120. 920  GOTO 1100
  121. 930  ND=30
  122. 940  GOTO 1100
  123. 950  ND=31
  124. 960  GOTO 1100
  125. 970  ND=31
  126. 980  GOTO 1100
  127. 990  ND=30
  128. 1000  GOTO 1100
  129. 1010  ND=31
  130. 1020  GOTO 1100
  131. 1030  ND=30
  132. 1040  GOTO 1100
  133. 1050  ND=31
  134. 1100  GOTO 770
  135.