Найти меньшую диагональ параллелограмма

sigmanata

Найти наименьшую из диагоналей параллелограмма АВСД, если известны координаты его вершин. Проверить, является ли данный четырехугольник параллелограммомпожалуста решите только полностю
3 ответа

sigmanata

type
  tPoint=record
    x,y:integer;
    end;
var
  a,b,c,d:tPoint;
  lA,lB,lC,lD,lE,lF:real;
{процедура ввода координат}
procedure ReadPoint(var a:tPoint;b:char);
  begin
    write('Enter ',b,'.x:=');
    readln(a.x);
    write('Enter ',b,'.y:=');
    readln(a.y);
  end;
{процедура вычисления растояний между точками}
function Range(a,b:tPoint):real;
  begin
    Range:=sqr(abs(a.x-b.x))+sqr(abs(a.y-b.y));
  end;
begin
{вводим координаты}
  ReadPoint(a,'A');
  ReadPoint(b,'B');
  ReadPoint(c,'C');
  ReadPoint(d,'D');
{считаем растояния между точками}
  lA:=Range(a,b);
  lB:=Range(b,c);
  lC:=Range(c,d);
  lD:=Range(a,d);
  lE:=Range(a,c);
  lF:=Range(b,d);
{проверяем достаточные условия параллелограмма}
  if((lE+lF)=(lA+lB+lC+lD))and(lA=lC)and(lB=lD)
    then if lE>lF then writeln('Result BD:=',sqrt(lF))
                  else writeln('Result AC:=',sqrt(lE))
    else writeln('wrong parallelogram');
end.


sigmanata

Range:=sqr(abs(a.x-b.x))+sqr(abs(a.y-b.y));
А зачем до возведения в квадрат еще модуль разности искать?


sigmanata

thyrex
А зачем до возведения в квадрат еще модуль разности искать
Так для подстраховки, один из компиляторов, которые есть у меня, на sqr(-х) ругался. Я же не знаю какая IDE стоит у спрашивающего.