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}}==