• Pascal
    На карте координаты начала и конца строящегося прямолинейного участка шоссе обозначены как (x1; у1 ) и (x2; у2 ). Карьер, откуда можно брать гравий для стройки, имеет координаты (х0; у0), причем х0 не равно х1 Определите минимальное расстояние от строящегося участка шоссе до карьера.

Ответы 1

  • type  Point=record    x,y:real    end;procedure GetPoint(c:char; var A:Point);  var    x,y:real;begin  Write('Введите координаты x и y точки ',c,': ');  Read(x,y);  A.x:=x; A.y:=yend;function DistPoint(A,B:Point):real;begin  DistPoint:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))end;var  A,B,M:Point;  d,p,ab,ma,mb:real;begin  GetPoint('A',A); GetPoint('B',B); GetPoint('M',M);  ab:=DistPoint(A,B); ma:=DistPoint(M,A); mb:=DistPoint(M,B);  if ma>=ab+mb then d:=mb  else    if mb>=ma+ab then d:=ma    else begin      p:=(ma+mb+ab)/2;      d:=2*sqrt(p*(p-ab)*(p-ma)*(p-mb))/ab    end;  Writeln('Минимальное расстояние составляет ',d)end.Тестовое решение:Введите координаты x и y точки A: -3 -5Введите координаты x и y точки B: 2 5Введите координаты x и y точки M: -3 4Минимальное расстояние составляет 4.02492235949962
    • Автор:

      lucifer31
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years