Horizontal sundial calculations: Difference between revisions
Content added Content deleted
(→{{header|ANSI BASIC}}: Added a solution.) |
|||
Line 345: | Line 345: | ||
=={{header|BASIC}}== |
=={{header|BASIC}}== |
||
==={{header|ANSI BASIC}}=== |
|||
{{trans|ALGOL-68|ANSI BASIC has a possibility to use degrees in calculations.}} |
|||
{{works with|Decimal BASIC}} |
|||
<syntaxhighlight lang="basic> |
|||
100 REM Horizontal sundial calculations |
|||
110 INPUT PROMPT "Enter latitude => ": Lat |
|||
120 INPUT PROMPT "Enter longitude => ": Lng |
|||
130 INPUT PROMPT "Enter legal meridian => ": Ref |
|||
140 PRINT |
|||
150 OPTION ANGLE DEGREES |
|||
160 LET Slat = SIN(Lat) |
|||
170 PRINT " sine of latitude: "; Slat |
|||
180 PRINT " diff longitude: "; Lng - Ref |
|||
190 PRINT |
|||
200 PRINT "Hour, sun hour angle, dial hour line angle from 6am to 6pm" |
|||
210 FOR Hour = -6 TO 6 |
|||
220 LET HourAngle = 15 * Hour |
|||
230 LET HourAngle = HourAngle - (Lng - Ref) ! correct for longitude difference |
|||
240 LET HourLineAngle = ATN(Slat * TAN(HourAngle)) |
|||
250 PRINT USING "HR=###; HRA=####.###; HLA=####.###": Hour, HourAngle, HourLineAngle |
|||
260 NEXT Hour |
|||
270 END |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Enter latitude => -4.95 |
|||
Enter longitude => -150.5 |
|||
Enter legal meridian => -150 |
|||
sine of latitude: -8.62863657979234E-2 |
|||
diff longitude: -.5 |
|||
Hour, sun hour angle, dial hour line angle from 6am to 6pm |
|||
HR= -6; HRA= -89.500; HLA= 84.225 |
|||
HR= -5; HRA= -74.500; HLA= 17.283 |
|||
HR= -4; HRA= -59.500; HLA= 8.334 |
|||
HR= -3; HRA= -44.500; HLA= 4.847 |
|||
HR= -2; HRA= -29.500; HLA= 2.795 |
|||
HR= -1; HRA= -14.500; HLA= 1.278 |
|||
HR= 0; HRA= .500; HLA= -.043 |
|||
HR= 1; HRA= 15.500; HLA= -1.371 |
|||
HR= 2; HRA= 30.500; HLA= -2.910 |
|||
HR= 3; HRA= 45.500; HLA= -5.018 |
|||
HR= 4; HRA= 60.500; HLA= -8.671 |
|||
HR= 5; HRA= 75.500; HLA= -18.451 |
|||
HR= 6; HRA= 90.500; HLA= 84.225 |
|||
</pre> |
|||
==={{header|BASIC256}}=== |
==={{header|BASIC256}}=== |
||
<syntaxhighlight lang="basic256">call SolarhoraAngle(-4.95, -150.5, -150.0) |
<syntaxhighlight lang="basic256">call SolarhoraAngle(-4.95, -150.5, -150.0) |