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

Ответы 3

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

      jamison
    • 4 года назад
    • 0
  • Функционал

    Ввести с клавиатуры координаты 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.

  • Добавить свой ответ

Войти через Google

или

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

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

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