На плоскости заданы своими координатами n точек.Создать массив размером n(n-1) элементами которого являются расстояния от каждой из точек до n-1 других- Pascal(Паскаль)

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.

Leave a Comment

61 + = 71