Horizontal sundial calculations: Difference between revisions

m
(Horizontal sundial calculations in Chipmunk Basic)
m (→‎{{header|Wren}}: Minor tidy)
 
(4 intermediate revisions by 2 users not shown)
Line 345:
 
=={{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}}===
<syntaxhighlight lang="basic256">call SolarhoraAngle(-4.95, -150.5, -150.0)
Line 1,337 ⟶ 1,385:
 
=={{header|EasyLang}}==
<syntaxhighlight lang="text">func getn s$ . v .
func writegetn s$ .
write s$
v = number input
print v
return v
.
calllat = getn "Enter latitude: " lat
calllng = getn "Enter longitude: " lng
callmerid = getn "Enter legal meridian: " merid
slat = sin lat
diff = lng - merid
Line 1,353 ⟶ 1,403:
print "Hour\tSun hour angle\tDial hour line angle"
for h = -6 to 6
hra = 15 * h - diff
hla = atan2 (slat * sin hra) cos hra
print h + 12 & "\t" & hra & "\t\t" & hla
.
.</syntaxhighlight>
</syntaxhighlight>
 
=={{header|ERRE}}==
Line 3,642 ⟶ 3,693:
{{trans|Go}}
{{libheader|Wren-fmt}}
<syntaxhighlight lang="ecmascriptwren">import "io" for Stdin, Stdout
import "./fmt" for Fmt
 
var getNum = Fn.new { |prompt|
9,479

edits