На оси абцисс найти такую точку, сумма расстояний, которой до точек А и В-наименьшая для всех точек - PascalABC.NET
Формулировка задачи:
Даны действительные числа х1,у1,х2,у2(х1 не равен х2),которые определяют 2 точки А(х1,у1) и В(х2,у2).На оси абцисс найти такую точку,сумма расстояний,которой до точек А и В-наименьшая для всех точек этой оси.
Аналитическая геометрия 9-10 класс,нашёл формулу по нахождению расстояния и получению сумму но результаты совсем не те.
Сначала решил решить при помощи уравнения прямой через 2 точки с нахождением коэффициента и приравниваю к нулю,и последующего нахождения х.
Но выяснилось что такой код неверен и неверно считает коэффициенты.
Немного подправил и в просторах интернета нашёл другую формулу для нахождения точки с суммой расстояний.
И вот здесь интересно ваше мнение,правильно ли я двигаюсь.
или же в 1-ом варианте нужна доработка.
Решение задачи: «На оси абцисс найти такую точку, сумма расстояний, которой до точек А и В-наименьшая для всех точек»
textual
Листинг программы
program labwork1; var x, x1, y1, x2, y2: real; k, b: real; begin writeln('Введите координаты точки А'); readln(x1, y1); writeln('Введите координаты точки В'); readln(x2, y2); if (y1 = 0) and (y2 = 0) then begin if x1<x2 then writeln('x любое значение от ',x1:0:1,' до ',x2:0:1) else writeln('x любое значение от ',x2:0:1,' до ',x1:0:1); end else if y1=0 then x:=x1 else if y2=0 then x:=x2 else begin if (y1 * y2 > 0) then y1 := -y1; k := (y2 - y1) / (x2 - x1); b := (x2 * y1 - y2 * x1) / (x2 - x1); x := -b / k; end ; writeln('Точка, удовлетворяющая условию, на оси x = ', x:0:1) end.
Объяснение кода листинга программы
- Задаются координаты точек А и В
- Проверяется условие задачи: если координаты точек А и В на одной прямой, проходящей через начало координат, то находится точка, удовлетворяющая условию, и выводится её координата x
- Если условие не выполняется, то программа выводит сообщение о том, что прямая, проходящая через точки А и В, пересекает ось x в произвольном месте
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д