Решить в паскале : Написать программу, определяющую, является ли фигура квадратом. Вершины квадрата задаются координатами точек.

Решить в паскале : Написать программу, определяющую, является ли фигура квадратом. Вершины квадрата задаются координатами точек.
Гость
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.2, сборка 1356 от 04.12.2016 // Внимание! Если программа не работает, обновите версию! type   Point=record     x,y:real;     name:char   end;   Vector=record     x,y,l:real;   end; function CreatePoint(px,py:real):Point; begin   With Result do begin     x:=px;     y:=py;   end end; function CreateVector(A,B:Point):Vector; begin   With Result do begin     x:=B.x-A.x;     y:=B.y-A.y;     l:=Sqrt(x*x+y*y)   end end;   function IsNormal(A,B:Vector):=Abs(B.x*A.x+B.y*A.y)<=1e-6; begin   var x,y:real;   Write('Введите координаты x и y точки A: '); Read(x,y);   var A:=CreatePoint(x,y);   Write('Введите координаты x и y точки B: '); Read(x,y);   var B:=CreatePoint(x,y);   var AB:=CreateVector(A,B);   Write('Введите координаты x и y точки C: '); Read(x,y);   var C:=CreatePoint(x,y);   var BC:=CreateVector(B,C);   if Abs(AB.l-BC.l)>1e-6 then begin     Writeln('Стороны AB и BC не равны');     Exit     end;   if not IsNormal(AB,BC) then begin     Writeln('Стороны AB и BC не перпендикулярны');     Exit     end;   Write('Введите координаты x и y точки D: '); Read(x,y);   var D:=CreatePoint(x,y);   var CD:=CreateVector(C,D);   if Abs(AB.l-CD.l)>1e-6 then begin     Writeln('Стороны AB и CD не равны');     Exit     end;   var AD:=CreateVector(D,A);   if Abs(AB.l-AD.l)>1e-6 then Writeln('Стороны AB и ADC не равны')   else Writeln('Точки образуют квадрат с точностью не ниже 0.000001') end. Пример Здесь заданы координаты квадрата, сдвинутого относительно осей координат и повернутого на угол 30 градусов против часовой стрелки. Поэтому числа такие "некруглые". Введите координаты x и y точки A: -0.4641 -4.4641 Введите координаты x и y точки B: 3.5359 2.4641 Введите координаты x и y точки C: 10.4641 -1.5359 Введите координаты x и y точки D: 6.4641 -8.4641 Точки образуют квадрат с точностью не ниже 0.000001
Не нашли ответ?
Ответить на вопрос
Похожие вопросы