How to resolve the algorithm Angle difference between two bearings step by step in the REXX programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Angle difference between two bearings step by step in the REXX programming language

Table of Contents

Problem Statement

Finding the angle between two bearings is often confusing.[1]

Find the angle which is the result of the subtraction b2 - b1, where b1 and b2 are the bearings. Input bearings are expressed in the range   -180   to   +180   degrees. The  result  is also expressed in the range   -180   to   +180   degrees.

Compute the angle for the following pairs:

Allow the input bearings to be any (finite) value.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Angle difference between two bearings step by step in the REXX programming language

Source code in the rexx programming language

/*REXX pgm calculates difference between two angles (in degrees), normalizes the result.*/
numeric digits 25                                    /*use enough dec. digits for angles*/
call show      20,                    45             /*display angular difference (deg).*/
call show     -45,                    45             /*   "       "        "        "   */
call show     -85,                    90             /*   "       "        "        "   */
call show     -95,                    90             /*   "       "        "        "   */
call show     -45,                   125             /*   "       "        "        "   */
call show      45,                   145             /*   "       "        "        "   */
call show      29.4803,              -88.6361        /*   "       "        "        "   */
call show     -78.3251,             -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 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)   /*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.*/


  

You may also check:How to resolve the algorithm HTTP step by step in the Maple programming language
You may also check:How to resolve the algorithm Fibonacci n-step number sequences step by step in the 11l programming language
You may also check:How to resolve the algorithm Scope/Function names and labels step by step in the ZX Spectrum Basic programming language
You may also check:How to resolve the algorithm Knapsack problem/Unbounded step by step in the Java programming language
You may also check:How to resolve the algorithm Include a file step by step in the Sidef programming language