Найти две точки, расстояние между которыми самое большое - Turbo Pascal

Формулировка задачи:

N точек задано своими координатами на плоскости массив X содержит абсциссы точек, массив Y - ординаты (Ai (x [i], y [i])). Найти две точки, расстояние между которыми самое большое.

Код к задаче: «Найти две точки, расстояние между которыми самое большое - Turbo Pascal»

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.

15   голосов, оценка 4.133 из 5


СОХРАНИТЬ ССЫЛКУ