Horizontal sundial calculations: Difference between revisions

(→‎{{header|Tcl}}: -- smalltalk)
Line 364:
HR= 6; HRA= 90.500; HLA= 84.225
</pre>
 
=={{header|Sather}}==
<lang sather>class MAIN is
 
getvalue(s:STR):FLT is
#OUT + s + ": ";
return #FLT(#IN.get_line.str);
end;
 
dr(a:FLT):FLT is
return a * FLT::pi / 180.0;
end;
 
rd(a:FLT):FLT is
return a * 180.0 / FLT::pi;
end;
 
main is
lat ::= getvalue("Enter latitude");
lng ::= getvalue("Enter longitude");
ref ::= getvalue("Enter legal meridian");
#OUT + "\n";
slat ::= dr(lat).sin;
#OUT + "sine of latitude: " + #FMT("%.3f\n", slat);
#OUT + "diff longitude: " + #FMT("%.3f\n\n", lng - ref);
#OUT + "Hour, sun hour angle, dial hour line angle from 6am to 6pm\n";
loop h ::= (-6).upto!(6);
hra ::= 15.0 * h.flt;
hra := hra - lng + ref;
hla ::= rd((dr(hra).tan * slat).atan);
#OUT + #FMT("HR = %3d; \t HRA=%7.3f; \t HLA= %7.3f\n", h, hra, hla);
end;
end;
end;</lang>
 
=={{header|Smalltalk}}==