program CompassDirection;
uses
Math; { for frac and floor if needed, but we'll keep it simple }
const
Directions: array[0..7] of string =
('North', 'North-East', 'East', 'South-East',
'South', 'South-West', 'West', 'North-West');
function DegreesToDirection(degrees: Real): string;
var
index: Integer;
begin
{ Normalize degrees to (0, 360) }
degrees := degrees + 360;
degrees := degrees - Int(degrees / 360) * 360;
{ Each direction covers 45 degrees }
//index := Round(degrees / 45) mod 8;
index := Round(degrees / 22.5) mod 8;
DegreesToDirection := Directions[index];
end;
var
degrees: Real;
begin
degrees := 120;
WriteLn('For ', degrees:0:0, ' degrees, Compass direction: ', DegreesToDirection(degrees));
end.
(*
run:
For 120 degrees, Compass direction: South-East
*)