Нахождение максимального растояния - PascalABC.NET
Формулировка задачи:
Подскажите, почему программа то работает, то нет? Что не так? И если 0 вводить, то всё завершается.
Решение задачи: «Нахождение максимального растояния»
textual
Листинг программы
program z3; uses GraphABC; function Dl(x1, x2, y1, y2: integer): real; begin Dl :=Sqrt(sqr(x2 - x1) + sqr(y2 - y1));//зачем модуль? end; const n = 4; var i,j,imx,jmx: integer; t: array[1..2, 1..n] of integer; max: real; begin setwindowsize(400,400); centerwindow; writeln('vvedite koordinaty ', n, ' tochek ot 2 do 398'); for i := 1 to n do repeat readln(t[1, i],t[2,i]); until(t[1,i]>1)and(t[1,i]<399)and(t[2,i]>1)and(t[2,i]<399); writeln('danbI koordin.:'); write('X'); for j := 1 to n do write(t[1, j]:4); writeln; write('Y'); for j := 1 to n do write(t[2, j]:4); writeln; max:=Dl(t[1, 1], t[2, 1], t[1, 2], t[2, 2]); imx := 1; jmx := 2; for i := 1 to n - 1 do for j := i + 1 to n do if Dl(t[1, i], t[2, i], t[1, j], t[2, j])>max then begin max := Dl(t[1, i], t[2, i], t[1, j], t[2, j]); imx := i; jmx := j; end; writeln('max.dlina=', max:0:2); writeln(imx, '(', t[1, imx], ';', t[2, imx], ')'); writeln(jmx, '(', t[1, jmx], ';', t[2, jmx], ')'); write('Press Enter'); readln; clearwindow; for i := 1 to n do begin Circle(t[1, i], t[2, i], 2); textout(t[1, i]+10, t[2, i],inttostr(i)); end; for i:=1 to n-1 do for j:=i+1 to n do begin if(i=imx)and(j=jmx) then setpencolor(clRed) else setpencolor(clBlack); line(t[1,i], t[2,i], t[1,j], t[2,j]); end; end.
Объяснение кода листинга программы
В этом коде используется язык программирования PascalABC.Net. Он предназначен для решения задачи нахождения максимального расстояния между четырьмя точками, введенными пользователем. Список действий, которые выполняет код:
- Задает функцию Dl, которая вычисляет расстояние между двумя точками на основе их координат.
- Задает константу n, которая определяет количество точек.
- Создает массив t, который будет использоваться для хранения координат точек.
- Запрашивает у пользователя ввод координат четырех точек.
- Выводит введенные координаты.
- Вычисляет максимальное расстояние между точками и сохраняет его в переменной max.
- Находит индексы точек, для которых было вычислено максимальное расстояние, и сохраняет их в переменных imx и jmx.
- Используя функцию Dl, проверяет все возможные пары точек, чтобы найти точки с наибольшим расстоянием от max.
- Выводит максимальное расстояние, индексы точек и рисует окружности и линии на графике.
- Запрашивает у пользователя ввод, чтобы подтвердить, что он хочет продолжить работу с графиком.
- Если пользователь нажимает Enter, программа продолжает работу с графиком, иначе она завершается.
- Программа повторяет шаги 8-11 для всех точек, кроме последней, чтобы нарисовать линии и окружности.
- Если точка с индексом imx совпадает с точкой с индексом jmx, программа рисует красную линию, в противном случае - черную.
- Программа завершается после того, как все линии и окружности были нарисованы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д