Другие языки программирования и технологии

Задача по TURBO PASCAL! Помогите решить, пожалуйста! Дано 4 точки на плоскости. Нужно разставить их по часовой стрелке.

type
PointType = record X, Y : Real; end;

function Angle(P : PointType) : Real;
var
A : Real;
begin
if (P.X > 0) and (P.Y >= 0) then A := arctan(P.Y / P.X)
else if (P.X > 0) and (P.Y < 0) then A := arctan(P.Y / P.X) + 2*pi
else if P.X < 0 then A := arctan(P.Y / P.X) + pi
else if (P.X = 0) and (P.Y > 0) then A := pi/2
else if (P.X = 0) and (P.Y < 0) then A := 3*pi/2
else A := 0;

Angle := A;
end;

procedure Sorted(var A, B : PointType);
var
T : PointType;
begin
if Angle(A) < Angle(B) then
begin
T := A; A := B; B := T;
end;
end;

var
A, B, C, D : PointType;

begin
Write('Введите через пробел координаты точки A : '); ReadLn(A.X, A.Y);
Write('Введите через пробел координаты точки B : '); ReadLn(B.X, B.Y);
Write('Введите через пробел координаты точки C : '); ReadLn(C.X, C.Y);
Write('Введите через пробел координаты точки D : '); ReadLn(D.X, D.Y);
Sorted(A, B); Sorted(A, C); Sorted(A, D); Sorted(B, C); Sorted(B, D); Sorted(C, D);
WriteLn('Отсортированные по часовой стрелке точки: ');
Write('A[', A.X:4:1, ',', A.Y:4:1, '] ');
Write('B[', B.X:4:1, ',', B.Y:4:1, '] ');
Write('C[', C.X:4:1, ',', C.Y:4:1, '] ');
WriteLn('D[', D.X:4:1, ',', D.Y:4:1, ']');
end.
Женькааааа Золотарев
Женькааааа Золотарев
90 300
Лучший ответ
расставить, это типа показать какая точка где стоит?
Писать не буду, занят. . Но можно очень сильно упростить задачу если первести систему кардинат в радиальную. . Тогда все очень просто, сравниваешь углы и пишешь ответ, удачи!