Angle difference between two bearings: Difference between revisions
Content added Content deleted
(Added Modula 2) |
|||
Line 843: | Line 843: | ||
60175.7731 42213.0719 37.2989 |
60175.7731 42213.0719 37.2989 |
||
</pre> |
</pre> |
||
=={{header|Modula-2}}== |
|||
{{trans|Java}} |
|||
<lang modula2>FROM Terminal IMPORT *; |
|||
PROCEDURE WriteRealLn(value : REAL); |
|||
VAR str : ARRAY[0..16] OF CHAR; |
|||
BEGIN |
|||
RealToStr(value, str); |
|||
WriteString(str); |
|||
WriteLn; |
|||
END WriteRealLn; |
|||
PROCEDURE AngleDifference(b1, b2 : REAL) : REAL; |
|||
VAR r : REAL; |
|||
BEGIN |
|||
r := (b2 - b1); |
|||
WHILE r < -180.0 DO |
|||
r := r + 360.0; |
|||
END; |
|||
WHILE r >= 180.0 DO |
|||
r := r - 360.0; |
|||
END; |
|||
RETURN r; |
|||
END AngleDifference; |
|||
BEGIN |
|||
WriteString('Input in -180 to +180 range'); |
|||
WriteLn; |
|||
WriteRealLn(AngleDifference(20.0, 45.0)); |
|||
WriteRealLn(AngleDifference(-45.0, 45.0)); |
|||
WriteRealLn(AngleDifference(-85.0, 90.0)); |
|||
WriteRealLn(AngleDifference(-95.0, 90.0)); |
|||
WriteRealLn(AngleDifference(-45.0, 125.0)); |
|||
WriteRealLn(AngleDifference(-45.0, 145.0)); |
|||
WriteRealLn(AngleDifference(29.4803, -88.6381)); |
|||
WriteRealLn(AngleDifference(-78.3251, -159.036)); |
|||
WriteString('Input in wider range'); |
|||
WriteLn; |
|||
WriteRealLn(AngleDifference(-70099.74233810938, 29840.67437876723)); |
|||
WriteRealLn(AngleDifference(-165313.6666297357, 33693.9894517456)); |
|||
WriteRealLn(AngleDifference(1174.8380510598456, -154146.66490124757)); |
|||
WriteRealLn(AngleDifference(60175.77306795546, 42213.07192354373)); |
|||
ReadChar; |
|||
END Bearings.</lang> |
|||
=={{header|Perl 6}}== |
=={{header|Perl 6}}== |