How to resolve the algorithm Angle difference between two bearings step by step in the Seed7 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 Seed7 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 Seed7 programming language

Source code in the seed7 programming language

$ include "seed7_05.s7i";
  include "float.s7i";

const func float: getDifference (in float: b1, in float: b2) is func
  result
    var float: difference is 0.0;
  begin
    difference := (b2 - b1) mod 360.0;
    if difference > 180.0 then
      difference -:= 360.0;
    end if;
  end func;

const proc: main is func
  begin
    writeln("Input in -180 to +180 range");
    writeln(getDifference(20.0, 45.0));
    writeln(getDifference(-45.0, 45.0));
    writeln(getDifference(-85.0, 90.0));
    writeln(getDifference(-95.0, 90.0));
    writeln(getDifference(-45.0, 125.0));
    writeln(getDifference(-45.0, 145.0));
    writeln(getDifference(-45.0, 125.0));
    writeln(getDifference(-45.0, 145.0));
    writeln(getDifference(29.4803, -88.6381));
    writeln(getDifference(-78.3251, -159.036));
    writeln("Input in wider range");
    writeln(getDifference(-70099.74233810938, 29840.67437876723));
    writeln(getDifference(-165313.6666297357, 33693.9894517456));
    writeln(getDifference(1174.8380510598456, -154146.66490124757));
    writeln(getDifference(60175.77306795546, 42213.07192354373));
  end func;

  

You may also check:How to resolve the algorithm Formatted numeric output step by step in the Aime programming language
You may also check:How to resolve the algorithm Balanced brackets step by step in the Amazing Hopper programming language
You may also check:How to resolve the algorithm Hofstadter-Conway $10,000 sequence step by step in the PL/I programming language
You may also check:How to resolve the algorithm Nth root step by step in the Dart programming language
You may also check:How to resolve the algorithm Generate lower case ASCII alphabet step by step in the AutoIt programming language