RosettaCodeData/Task/Angle-difference-between-tw.../PascalABC.NET/angle-difference-between-tw...

17 lines
586 B
ObjectPascal

function delta(b1, b2: real): real;
begin
result := (b2 - b1) - Trunc((b2 - b1) / 360.0) * 360.0;
if result < -180.0 then result += 360.0
else if result >= 180.0 then result -= 360.0
end;
begin
var testVectors :=
|(20.00, 45.00), (-45.00, 45.00), (-85.00, 90.00),
(-95.00, 90.00), (-45.00, 125.00), (-45.00, 145.00),
(29.48, -88.64), (-78.33, -159.04), (-70099.74, 29840.67),
(-165313.67, 33693.99), (1174.84, -154146.66), (60175.77, 42213.07)|;
foreach var vector in testVectors do
writeln(vector[0]:10:2, vector[1]:12:2, delta(vector[0], vector[1]):10:2);
end.