В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
Alina17031
Alina17031
03.12.2021 14:37 •  Информатика

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

Ответ:
Yerkosyaorynbekova
Yerkosyaorynbekova
04.10.2020 21:03
// 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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?