Предмет: Информатика, автор: dasha2003andree

Помогите умоляю
Даны координаты точек А(х1,у1), В(х2,у2), С(х3,у3). Найти, ка- кие две точки расположены ближе друг к другу. Координаты ввести с клавиатуры.
(Паскаль через if)

Ответы

Автор ответа: Wani4kaa
2

Функционал

Ввести с клавиатуры координаты x, y точек A, B, C. Вывести две точки, расстояние между которыми минимально, а также само расстояние между ними.


Алгоритм решения

Формула расстояния между двумя точками на плоскости:

dst(A, B)=\sqrt{(x_A-x_B)^2+(y_A-y_B)^2}

Воспользуемся этой формулой. Предположим, что между точками A и B наименьшее расстояние. Проверим - если между точками B и C расстояние меньше, то обновим ответ. То же самое сделаем с точками A и C.


Код

В ansdst храним минимальное расстояние, в ans - названия двух ближайших друг к другу точек

var x1, y1, x2, y2, x3, y3, ansdst: real;

 ans: string;

begin

 read(x1, y1, x2, y2, x3, y3);

 ans:='A B';

 ansdst:=sqr(x2-x1)+sqr(y2-y1);

 if sqr(x2-x3)+sqr(y2-y3)>ansdst then

 begin

   ans:='B C';

   ansdst:=sqr(x2-x3)+sqr(y2-y3);

 end;

 if sqr(x1-x3)+sqr(y1-y3)>ansdst then

 begin

   ans:='A C';

   ansdst:=sqr(x1-x3)+sqr(y1-y3);

 end;

 writeln(ans);

 writeln(sqrt(ansdst));

End.


Аноним: Вообще-то достаточно сравнивать квадраты расстояний. Тогда не требуется достаточно сложная функция извлечения квадратного корня.
Wani4kaa: Так можно, вроде, избежать и ошибок с погрешностями. Исправлю, спасибо.
Похожие вопросы
Предмет: Математика, автор: apimenoff2012