Дан массив М координат точек на плоскости. найти наименьшее расстояние между этими точками- Pascal(Паскаль)

const
  nmax = 15;

var
  m: array [1 .. 2, 1 .. nmax] of real;
  n, i, j, imn, jmn: byte;
  mn: real;

begin
  clrscr;
  randomize;
  repeat
    write('Количество точек от 2 до ', nmax, ' n=');
    readln(n);
  until n in [2 .. nmax];
  for i := 1 to n do
  begin
    m[1, i] := 10 * random - 4;
    m[2, i] := 10 * random - 4;
  end;
  writeln('Координаты:');
  write('N');
  for i := 1 to n do
    write(i:5);
  writeln;
  write('X');
  for i := 1 to n do
    write(m[1, i]:5:1);
  writeln;
  write('Y');
  for i := 1 to n do
    write(m[2, i]:5:1);
  writeln;
  writeln;
  mn := sqrt(sqr(m[1, 1] - m[1, 2]) + sqr(m[2, 1] - m[2, 2]));
  imn := 1;
  jmn := 2;
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if sqrt(sqr(m[1, i] - m[1, j]) + sqr(m[2, i] - m[2, j])) < mn then
      begin
        mn := sqrt(sqr(m[1, i] - m[1, j]) + sqr(m[2, i] - m[2, j]));
        imn := i;
        jmn := j;
      end;
  writeln('Минимальное расстояние между точками ', imn, '-', jmn,
    ' = ', mn:0:2);
  readln

end.

Leave a Comment

65 − = 63