Найти две точки, расстояние между которыми самое большое - Turbo Pascal
Формулировка задачи:
N точек задано своими координатами на плоскости массив X содержит абсциссы точек, массив Y - ординаты (Ai (x [i], y [i])). Найти две точки, расстояние между которыми самое большое.
Решение задачи: «Найти две точки, расстояние между которыми самое большое»
textual
Листинг программы
uses crt; const nmax=15; var x,y:array[1..nmax] of real; n,i,j,imx,jmx:byte; mx:real; begin clrscr; randomize; repeat write('Количество точек от 2 до ',nmax,' n='); readln(n); until n in [2..nmax]; for i:=1 to n do begin x[i]:=-10+random(21); y[i]:=-10+random(21); end; writeln('Исходные координаты:'); write('#'); for i:=1 to n do write(i:5); writeln; write('X'); for i:=1 to n do write(x[i]:5:1); writeln; write('Y'); for i:=1 to n do write(y[i]:5:1); writeln; mx:=sqrt(sqr(x[1]-x[2])+sqr(y[1]-y[2])); imx:=1; jmx:=2; for i:=2 to n-1 do for j:=i+1 to n do if sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]))>mx then begin mx:=sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j])); imx:=i; jmx:=j end; writeln('Максимальное расстояние=',mx:0:1); write('Между точками ',imx,'(',x[imx]:0:1,';',y[imx]:0:1,') и ', jmx,'(',x[jmx]:0:1,';',y[jmx]:0:1,')'); readln end.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая обеспечивает функции для работы с потоками ввода-вывода.
- Затем определяется константа nmax, которая ограничивает количество точек до 15.
- Создаются переменные x и y типа array[1..nmax] of real, которые будут хранить координаты точек.
- Также определяются байтовые переменные n, i, j, imx и jmx, которые будут использоваться для циклов и индексации массивов.
- Функция randomize вызывается для инициализации генератора случайных чисел.
- В цикле repeat-until происходит запрос количества точек от пользователя (переменная n).
- Для каждой точки (от 2 до nmax) выполняются следующие действия:
- x[i] и y[i] инициализируются случайными числами в диапазоне от -10 до 20.
- Выводится сообщение с номером текущей точки.
- Выводится сообщение с координатами текущей точки.
- Сохраняется максимальное расстояние (mx) и индексы точек с максимальным расстоянием (imx, jmx).
- В конце выводится сообщение с максимальным расстоянием и координатами точек с максимальным расстоянием.
- Вызывается функция readln для завершения ввода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д