home *** CD-ROM | disk | FTP | other *** search
Wrap
1 'SOLAR DATA PROGRAM 2 'SCIENCE PROJECT 3 'MICHAEL A. SYCZYLO 4 'SIXTH GRADE 5 'VALLEY MILLS ELEMENTRY SCHOOL 10 DIM N(12) 20 PL = 3.14159 / 26 : J = 57.29578 : K$ = CHR$(13) 21 'THIS DATA DEFINES THE 22 'LOCATION WHICH ALL 23 'CALCULATIONS ARE BASED. 24 'USER'S LOCAL DATA SHOULD 25 'BE INSERTED HERE. 26 'LC$ = CITY, STATE 27 'D1,M1 = LAT. (DEG,MIN) 28 'D2,M2 = LONG. (DEG,MIN) 29 'T$ = TIME ZONE (E,C,M,P) 30 LC$ = "INDIANAPOLIS, INDIANA" : D1 = 39 :M1 = 46 :D2 = 86 : M2 = 9 : T$ = "E" 40 KEY OFF : CLS 50 RESTORE : FOR I =1 TO 12 : READ N (I) : NEXT I 60 DATA 0,31,59,90,120,151 70 DATA 181,212,243,273,304,334 80 PRINT " THIS PROGRAM FINDS THE DECLINATION"; : PRINT " OF THE SUN, THE EQUATION OF TIME," 90 PRINT " THE AZMITH ANGLES OF SUNRISE AND"; : PRINT " SUNSET, AND THE TIMES OF SUNRISE" 100 PRINT " AND SUNSET FOR ANY POINT IN"; : PRINT " NORTH AMERICA." 110 PRINT 120 RESTORE 122 : FOR I = 1 TO 10 : READ KEYDES$ : KEY I, KEYDES$ + K$ : NEXT : KEY 9, "" : KEY ON 122 DATA "NLAT", "WLON", "ZONE", "MONTH", "DAY", "CALC", "LOC", "PRTMO", " ", "END" 130 GOSUB 640 : GOTO 220 140 COLOR 10,0 141 LOCATE 5,1 142 PRINT SPC(79) 143 LOCATE 5,1 144 BEEP 145 INPUT "Select function", Z$ 146 COLOR 10,0 147 BEEP 150 LOCATE 5,1 151 PRINT SPC(79) 152 LOCATE 5,1 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 160 IF Z$ = "CALC" THEN GOSUB 310 : GOTO 140 ELSE IF Z$ = "LOC" THEN 180 170 SOUND 350,8 :GOTO 140 180 LINE INPUT "LOCATION (CITY,STATE)" ,LC$ :GOSUB 640 :GOTO 140 190 INPUT "NORTH LATITUDE (DEG,MIN)"; D1,M1 :GOSUB 640 :GOTO 140 200 INPUT "WEST LONGITUDE (DEG,MIN)"; D2,M2 : GOSUB 640 : GOTO 140 210 INPUT "TIME ZONE (E, C, M, P)";T$ 220 IF T$ = "E" OR T$ ="e" THEN T$ ="E" : LO =75 : GOTO 270 230 IF T$ = "C" OR T$ = "c" THEN T$ = "C" : LO = 90 :GOTO 270 240 IF T$ = "M" OR T$ = "m" THEN T$ = "M" : LO = 105 : GOTO 270 250 IF T$ = "P" OR T$ = "p" THEN T$ = "P" : LO = 120 : GOTO 270 260 GOTO 210 270 GOSUB 640 : GOTO 140 280 INPUT "MONTH (1-12) ",M : GOSUB 640 : GOTO 140 290 IF Q$ = "p" OR Q$ = "P" THEN 700 : ELSE IF Q$ = "d" OR Q$ = "D" THEN 300 ELSE 221 300 INPUT "DAY OF MONTH (1-31) ",DA : GOSUB 640 : GOTO 140 310 X =(N(M) + DA) / 7 320 LA = D1 + M1 / 60 330 TD = (D2+M2 / 60-LO) / 15 340 D=.4560001-22.915 * COS(PL * X)- .43 * COS(2 * PL * X) - .156 * COS(3 * PL * X) + 3.83 * SIN(PL * X) + .06 * SIN(2 * PL * X) - .082 * SIN(3 * PL * X) 350 LOCATE 16,1 : PRINT STRING$(79,223) : LOCATE 17,1 360 PRINT USING "DECLINATION OF THE SUN: ###.#";D; 370 PRINT " DEGREES" 380 E = 8.000001E-03 + .51* COS(PL * X) - 3.197* COS(2* PL * X) - .106* COS(3* PL * X) - .15* COS(4* PL * X) - 7.317001* SIN(PL * X) - 9.471001* SIN(2* PL * X) - .391* SIN(3* PL * X) - .242* SIN(4* PL * X) 390 PRINT USING "EQUATION OF TIME : ###.#"; E; 400 PRINT " MINUTES" 410 CL = COS(LA /J) : SD = SIN(D / J) : CD = COS(D /J) : Y = SD / CL 420 IF ABS(Y) =>1 THEN PRINT "NO SUNRISE OF SUNSET" : GOTO 140 430 Z = 90 - J * ATN(Y / SQR(1 - Y * Y)) 440 F$ = "AZIMUTH OF SUNRISE: ####.#" : PRINT USING F$; Z; 450 PRINT " DEGREES" 460 F$ = "AZIMUTH OF SUNSET: ####.# " : PRINT USING F$; 360 - Z; 470 PRINT " DEGREES" 480 ST = SIN(Z / J) / CD 490 IF ABS(ST)> = 1 THEN T = 6 : TT = 6 : GOTO 520 500 CT = SQR(1 - ST * ST) 510 T=J/15 * ATN(ST / CT) : TT = T 520 IF D < 0 THEN T = 12 - T : TT = T 530 T = T + TD - E / 60 - .04 540 GOSUB 600 550 PRINT "TIME OF SUNRISE: " ; : PRINT T1$; ":"; T2$; " " ; T$; ".S.T." 560 T = 12 - TT : T=T +TD - E / 60 + .04 : T3$ = T1$ : T4$ = T2$ 570 GOSUB 600 580 PRINT "TIME OF SUNSET: "; : PRINT T1$; ":"; T2$; " " ; T$; ".S.T." 590 RETURN 600 T1 = INT(T) : T2 = T - T1 : T1$ = STR$(T1) : T2 = INT((T2 * 600 + 5) / 10) 610 T2$ = STR$(T2) : T2$ = RIGHT$(T2$, LEN(T2$) - 1) 620 IF INT(T2) < 10 THEN T2$ = "0" + T2$ 630 RETURN 640 LOCATE 8,25 : COLOR 0,7 : PRINT " Present values " : COLOR 7,0 : PRINT 650 LOCATE 10,30 : PRINT STRING$(49,32) : LOCATE 10 : PRINT "Location name: "; LC$ 660 LOCATE 11 : PRINT "North Latitude: "; : PRINT USING "###:##"; D1;M1 670 LOCATE 12 : PRINT "West Longitude: "; : PRINT USING "###:##"; D2,M2 680 LOCATE 13 : PRINT "Time Zone: "; : PRINT USING "!"; T$ 690 LOCATE 14 : PRINT "Month: "; : PRINT USING "##"; M 700 LOCATE 15 :PRINT "DAY: "; : PRINT USING "##"; DA 710 RETURN 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 730 LPRINT CHR$(15) :WIDTH "lpt1:",132 740 LPRINT "Solar Data for ";LC$; : LPRINT " Latitude - ";D1;":";M1;: LPRINT " LONGITUDE - ";D2;":";M2 :LPRINT 750 LPRINT "Month Day Declination "; : LPRINT " Equation of Azimuth of Azimuth"; : LPRINT " of Time of Time of " 760 LPRINT " of Sun "; : LPRINT "Time Sunrise Sunset"; : LPRINT " Sunrise Sunset" 765 ON M GOTO 830,850,870,890,910,930,950,970,990,1010,1030,1050 770 FOR DA = 1 TO ND 780 GOSUB 640 : GOSUB 310 790 F$=" ## ## ###.# ###.#" 791 F$=F$ + " ####.# ####.# " 792 LPRINT USING F$; M; DA; D; E; Z; 360 - Z; 800 LPRINT" " T3$; ":";T4$;" "; T1$ ;":";T2$ 810 NEXT DA 820 LPRINT CHR$(12) : GOTO 140 830 ND=31 840 GOTO 1100 850 ND=28 860 GOTO 1100 870 ND=31 880 GOTO 1100 890 ND=30 900 GOTO 1100 910 ND=31 920 GOTO 1100 930 ND=30 940 GOTO 1100 950 ND=31 960 GOTO 1100 970 ND=31 980 GOTO 1100 990 ND=30 1000 GOTO 1100 1010 ND=31 1020 GOTO 1100 1030 ND=30 1040 GOTO 1100 1050 ND=31 1100 GOTO 770