Horizontal sundial calculations: Difference between revisions
Rename Perl 6 -> Raku, alphabetize, minor clean-up
Alextretyak (talk | contribs) (Added 11l) |
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
||
Line 291:
18 90.500 -95.775
</pre>
=={{header|BBC BASIC}}==
{{works with|BBC BASIC for Windows}}
Line 897 ⟶ 898:
end program SunDial</lang>
=={{header|freeBASIC}}==
{{trans|BBC BASIC}}
Line 1,119 ⟶ 1,121:
HR= +5; HRA= +75.500; HLA= -18.451
HR= +6; HRA= +90.500; HLA= +84.225
</pre>
=={{header|Haskell}}==
Line 1,531 ⟶ 1,533:
if x >0 then return 1 else return -1
end sgn</lang>
=={{header|Logo}}==
Line 1,969 ⟶ 1,970:
5 PM 75.500 -18.451
6 PM 90.500 -95.775</pre>
=={{header|Perl 6}}==▼
<lang perl6>sub postfix:<°> ($a) { $a * pi / 180 } # degrees to radians▼
sub postfix:<®> ($a) { $a * 180 / pi } # radians to degrees▼
my $latitude = prompt 'Enter latitude => ';▼
my $longitude = prompt 'Enter longitude => ';▼
my $meridian = prompt 'Enter legal meridian => ';▼
my $lat_sin = sin( $latitude° );▼
say 'Sine of latitude: ', $lat_sin.fmt("%.4f"); ▼
say 'Longitude offset: ', my $offset = $meridian - $longitude;▼
say '=' x 48;▼
say ' Hour : Sun hour angle° : Dial hour line angle°'; ▼
for -6 .. 6 -> $hour {▼
my $sun_deg = $hour * 15 + $offset;▼
my $line_deg = atan2( ( sin($sun_deg°) * $lat_sin ), cos($sun_deg°) )®;▼
printf "%2d %s %7.3f %7.3f\n",▼
($hour + 12) % 12 || 12, ($hour < 0 ?? 'AM' !! 'PM'), $sun_deg, $line_deg;▼
}</lang>▼
{{out|Example output}}▼
<pre>▼
Enter latitude => -4.95▼
Enter longitude => -150.5▼
Enter legal meridian => -150▼
Sine of latitude: -0.0863▼
Longitude offset: 0.5▼
================================================▼
Hour : Sun hour angle° : Dial hour line angle°▼
6 AM -89.500 84.225▼
7 AM -74.500 17.283▼
8 AM -59.500 8.334▼
9 AM -44.500 4.847▼
10 AM -29.500 2.795▼
11 AM -14.500 1.278▼
12 PM 0.500 -0.043▼
1 PM 15.500 -1.371▼
2 PM 30.500 -2.910▼
3 PM 45.500 -5.018▼
4 PM 60.500 -8.671▼
5 PM 75.500 -18.451▼
6 PM 90.500 -95.775▼
</pre>▼
=={{header|Phix}}==
Line 2,406 ⟶ 2,363:
HR= 6; HRA= 90.500; HLA=-95.775
>
▲</pre>
(formerly Perl 6)
▲<lang perl6>sub postfix:<°> ($a) { $a * pi / 180 } # degrees to radians
▲sub postfix:<®> ($a) { $a * 180 / pi } # radians to degrees
▲my $latitude = prompt 'Enter latitude => ';
▲my $longitude = prompt 'Enter longitude => ';
▲my $meridian = prompt 'Enter legal meridian => ';
▲my $lat_sin = sin( $latitude° );
▲say 'Sine of latitude: ', $lat_sin.fmt("%.4f");
▲say 'Longitude offset: ', my $offset = $meridian - $longitude;
▲say '=' x 48;
▲say ' Hour : Sun hour angle° : Dial hour line angle°';
▲for -6 .. 6 -> $hour {
▲ my $sun_deg = $hour * 15 + $offset;
▲ my $line_deg = atan2( ( sin($sun_deg°) * $lat_sin ), cos($sun_deg°) )®;
▲ printf "%2d %s %7.3f %7.3f\n",
▲ ($hour + 12) % 12 || 12, ($hour < 0 ?? 'AM' !! 'PM'), $sun_deg, $line_deg;
▲}</lang>
▲{{out|Example output}}
▲<pre>
▲Enter latitude => -4.95
▲Enter longitude => -150.5
▲Enter legal meridian => -150
▲Sine of latitude: -0.0863
▲Longitude offset: 0.5
▲================================================
▲ Hour : Sun hour angle° : Dial hour line angle°
▲ 6 AM -89.500 84.225
▲ 7 AM -74.500 17.283
▲ 8 AM -59.500 8.334
▲ 9 AM -44.500 4.847
▲10 AM -29.500 2.795
▲11 AM -14.500 1.278
▲12 PM 0.500 -0.043
▲ 1 PM 15.500 -1.371
▲ 2 PM 30.500 -2.910
▲ 3 PM 45.500 -5.018
▲ 4 PM 60.500 -8.671
▲ 5 PM 75.500 -18.451
▲ 6 PM 90.500 -95.775
</pre>
Line 2,720 ⟶ 2,722:
}</lang>
=={{header|Seed7}}==
<lang seed7>$ include "seed7_05.s7i";
|