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

Pascal На карте координаты начала и конца строящегося прямолинейного участка шоссе обозначены как (x1; у1 ) и (x2; у2 ). Карьер, откуда можно брать гравий для стройки, имеет координаты (х0; у0), причем х0 не равно х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:=y end; 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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы