uses crt;
const nmax=20; {максимальный размер массива}
type Tpoint=record {чтобы не делать 2 массива кординат, будем записывать точки как записи}
x,y:integer;{поля - координаты}
end;
function Dlina(p,q:Tpoint):real;{функция определения растояния между точками}
begin
Dlina:=sqrt(sqr(p.x-q.x)+sqr(p.y-q.y));
end;
var a:array[1..nmax]of TPoint; {массив точек}
b:array[1..nmax,1..nmax]of real;{матрица длин отрезков}
n,i,j,k:byte;
begin
clrscr;
randomize;
repeat {вводим количество точек с проверкой}
write('Vvedite kolichestvo tochek n=');
readln(n);
until (n>1)and(n<=nmax);
for i:=1 to n do
for j:=1 to n do
begin
a[i].x:=random(50)-25;{заносим в массив данные}
a[i].y:=random(50)-25;
end;
write('X '); {}
for i:=1 to n do
write(a[i].x:4);
writeln;
write('Y ');
for i:=1 to n do
write(a[i].y:4);
writeln;
for i:=1 to n do
begin
k:=0;
for j:=1 to n do
if j<>i then {если точка другая}
begin
inc(k);{считаем}
b[i,k]:=Dlina(a[i],a[j]);{заносим расстояние в матрицу}
end;
end;
Writeln('Rezultat:');
for i:=1 to n do
begin
for j:=1 to k do
write(b[i,j]:6:2);
writeln;
end;
readln
end.