Angle difference between two bearings: Difference between revisions

m
→‎{{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}}==
A littleSome extra coding was added for a better visual presentation;   the angles were centered,   the answers were aligned.
<lang rexx>/*REXX pgm calculates difference between two angles (in degrees), normalizes the result.*/
numeric digits 25 /*use enough decimaldec. diigitsdigits for angles*/
call show 20, 45 45 /*display the angular difference (deg).*/
call show -45, 45 45 /* " " " " " */
call show -85, 90 90 /* " " " " " */
call show -95, 90 90 /* " " " " " */
call show -45, 125 125 /* " " " " " */
call show 45, 145 145 /* " " " " " */
call show 29.4803, -88.6361 -88.6361 /* " " " " " */
call show -78.3251, -159.036 -159.036 /* " " " " " */
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 all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
show: parse arg a,b; d=digits(); $='º' /*obtain the 2 angles (are in degrees).*/
x=format( ( ( ((b-a) // 360) + 540) // 360) - 180, 4, d-4) /*compute and format. */
if pos(., x)\==0 then x=strip( strip(x, 'T', 0), "T", .) /*strip trailing chaff.*/
say center(a || $, d) '─' center(b || $, d) " ────► "───►" x || $
return /* [↑] display the angular difference.*/</lang>
'''{{out|output'''}}
<pre>
20º ─ 45º ───► ────► 25º
-45º ─ 45º ───► ────► 90º
-85º ─ 90º ───► ────► 175º
-95º ─ 90º ───► ────► -175º
-45º ─ 125º ───► ────► 170º
45º ─ 145º ───► ────► 100º
29.4803º ─ -88.6361º ───► ────► -118.1164º
-78.3251º ─ -159.036º ───► ────► -80.7109º
-70099.74233810938º ─ 29840.67437876723º ───► ────► -139.58328312339º
-165313.6666297357º ─ 33693.9894517456º ───► ────► -72.3439185187º
1174.8380510598456º ─ -154146.66490124757º ───► ────► -161.5029523074156º
60175.773067955546º ─ 42213.07192354373º ───► ────► 37.298855588184º
</pre>