Найти две точки, расстояние между которыми самое большое - 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.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека crt, которая обеспечивает функции для работы с потоками ввода-вывода.
  2. Затем определяется константа nmax, которая ограничивает количество точек до 15.
  3. Создаются переменные x и y типа array[1..nmax] of real, которые будут хранить координаты точек.
  4. Также определяются байтовые переменные n, i, j, imx и jmx, которые будут использоваться для циклов и индексации массивов.
  5. Функция randomize вызывается для инициализации генератора случайных чисел.
  6. В цикле repeat-until происходит запрос количества точек от пользователя (переменная n).
  7. Для каждой точки (от 2 до nmax) выполняются следующие действия:
    • x[i] и y[i] инициализируются случайными числами в диапазоне от -10 до 20.
    • Выводится сообщение с номером текущей точки.
    • Выводится сообщение с координатами текущей точки.
    • Сохраняется максимальное расстояние (mx) и индексы точек с максимальным расстоянием (imx, jmx).
  8. В конце выводится сообщение с максимальным расстоянием и координатами точек с максимальным расстоянием.
  9. Вызывается функция readln для завершения ввода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы