Опубликовано 03.01.2018 по предмету Информатика от Гость

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

Ответ оставил Гость

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




Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы
Самые новые вопросы