Anonymous user
Angle difference between two bearings: Difference between revisions
Angle difference between two bearings (view source)
Revision as of 14:57, 9 February 2018
, 6 years ago→{{header|REXX}}: used more centering for a better display, used a template for the output section.
m (→{{header|REXX}}: changed the REXX program description comment.) |
m (→{{header|REXX}}: used more centering for a better display, used a template for the output section.) |
||
Line 977:
=={{header|REXX}}==
<lang rexx>/*REXX pgm calculates difference between two angles (in degrees), normalizes the result.*/
numeric digits 25 /*use enough
call show 20,
call show -45,
call show -85,
call show -95,
call show -45,
call show 45,
call show 29.4803,
call show -78.3251,
call show -70099.74233810938, 29840.67437876723 /* "
call show -165313.6666297357, 33693.9894517456 /* "
call show 1174.8380510598456, -154146.66490124757 /* "
call show 60175.773067955546, 42213.07192354373 /* "
exit /*stick a fork in it, we're
/*──────────────────────────────────────────────────────────────────────────────────────*/
show: parse arg a,b; d=digits(); $='º' /*obtain the 2 angles (are in degrees).*/
x=format( ( ( ((b-a) // 360) + 540) // 360) - 180, 4, d
if pos(., x)\==0 then x=strip( strip(x, 'T', 0), "T", .) /*strip trailing chaff.*/
say center(a || $, d) '─' center(b || $, d) " ────► "
return /* [↑] display the angular difference.*/</lang>
<pre>
20º ─ 45º
-45º ─ 45º
-85º ─ 90º
-95º ─ 90º
-45º ─ 125º
45º ─ 145º
29.4803º ─ -88.6361º
-78.3251º ─ -159.036º
-70099.74233810938º ─ 29840.67437876723º
-165313.6666297357º ─ 33693.9894517456º
1174.8380510598456º ─ -154146.66490124757º
60175.773067955546º ─ 42213.07192354373º
</pre>
|