ОЧЕНЬ СРОЧНО!!! Как это задание записать в турбо паскаль, напишите пожалуйста...

0 голосов
38 просмотров

ОЧЕНЬ СРОЧНО!!! Как это задание записать в турбо паскаль, напишите пожалуйста код...."Даны четыре точки A1(x1, y1), A2(x2, y2), A3(x3, y3), A4(x4, y4). Определить будут ли они вершинами параллелограмма."


Информатика (2.1k баллов) | 38 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Type
  Point = record
    x: integer;
    y: integer;
  end;
  Line = record
    P: Point;
    Q: Point;
    Len: double;
  end;

procedure LineLength(var pL: Line);
  // Вычисляет и сохраняет значение длины отрезка
begin
  pL.Len := sqrt(sqr(pL.Q.x - pL.P.x) + sqr(pL.Q.y - pL.P.y))
end;

var
  A, B, C, D: Point;
  AB, AC, AD, BC, BD, CD: Line;

begin
  writeln('Введите попарно координаты четырех точек');
  readln(A.x, A.y, B.x, B.y, C.x, C.y, D.x, D.y);
  with AB do
  begin
    P.x := A.x; P.y := A.y; Q.x := B.x; Q.y := B.y; LineLength(AB);
  end;
  with AC do
  begin
    P.x := A.x; P.y := A.y; Q.x := C.x; Q.y := C.y; LineLength(AC);
  end;
  with AD do
  begin
    P.x := A.x; P.y := A.y; Q.x := D.x; Q.y := D.y; LineLength(AD);
  end;
  with BC do
  begin
    P.x := B.x; P.y := B.y; Q.x := C.x; Q.y := C.y; LineLength(BC);
  end;
  with BD do
  begin
    P.x := B.x; P.y := B.y; Q.x := D.x; Q.y := D.y; LineLength(BD);
  end;
  with CD do
  begin
    P.x := C.x; P.y := C.y; Q.x := D.x; Q.y := D.y; LineLength(CD);
  end;
  writeln(AB.Len, ' ', AC.Len, ' ', AD.Len, ' ', BC.Len, ' ', BD.Len, ' ', CD.Len);
  if AB.Len = CD.Len then begin
    // AB и CD - претенденты
    if AC.Len = BD.Len then // Нашли ABDC
      writeln('Параллелограмм ABDC')
    else
    if AD.Len = BC.Len then // Нашли ABCD
      writeln('Параллелограмм ABCD')
  end
  else
  if AC.Len = BD.Len then begin
      // AC и BD - претенденты
    if AD.Len = BC.Len then // Нашли ACBD
      writeln('Параллелограмм ACBD')
      else
    if AB.Len = CD.Len then // Нашли ABCD
      writeln('Параллелограмм ACDB')
  end
    else
  if AD.Len = BC.Len then begin
        // AD и ВС - претенденты
    if AC.Len = BD.Len then // Нашли ADBC
      writeln('Параллелограмм ADBC')
        else
    if AB.Len = CD.Len then // Нашли ADCB
      writeln('Параллелограмм ADCB')
  end
  else
    writeln('Параллелограмм построить невозможно');
end.

Контрольный прогон:

Введите попарно координаты четырех точек
5 1 10 3 8 9 3 6
5.3851648071345 8.54400374531753 5.3851648071345 6.32455532033676 7.61577310586391 5.8309518948453
Параллелограмм построить невозможно

Введите попарно координаты четырех точек
5 1 10 4 8 9 3 6
5.8309518948453 8.54400374531753 5.3851648071345 5.3851648071345 7.28010988928052 5.8309518948453
Параллелограмм ABCD

Введите попарно координаты четырех точек
5 1 8 9 10 4 3 6
8.54400374531753 5.8309518948453 5.3851648071345 5.3851648071345 5.8309518948453 7.28010988928052
Параллелограмм ACBD




(142k баллов)
0

Большое спасибо)))

0

Спасибо, я сдала)) сказали правильно))