Дана квадратная матрица. Расположить отрицательные элементы побочной диагонали в порядке убывания — Pascal(Паскаль)

Для откладки чисел элементы массива сформировать с помощью генератора случайных чисел.

program PascalGuru;

var
  A: array [1 .. 100, 1 .. 100] of integer; { объявление матрицы }
  vector: array [1 .. 100] of integer; { объявление вектора }
  n, nn, i, j: integer;
  swop: boolean;

procedure exchange(var A, b: integer); { процедура обмена }
var
  c: integer;
begin
  c := A;
  A := b;
  b := c;
end; { *** конец процедуры обмена }

{ ************************************************ }

begin
  randomize;
  write('N= ');
  readln(n); { ввод размера матрицы }

  for i := 1 to n do
    for j := 1 to n do
      A[i, j] := (-90) + random(88); { заполнение элементов матрицы }

  for i := 1 to n do
  begin
    writeln;
    for j := 1 to n do
      write(A[i, j]:8);
  end; { вывод матрицы на экран }

  writeln;
  writeln;

  nn := n; { в дополнительную переменную записываем первоначальный размер матрицы }
  repeat { начало цикла сортировки }
    swop := false;
    for i := 1 to nn - 1 do
      if A[i, n - i + 1] > A[i + 1, n - i] then
      begin { сортируем только побоч. диагональ }
        exchange(A[i, n - i + 1], A[i + 1, n - i]);
        swop := true;
      end; { сортируем только побоч. диагональ }
    nn := nn - 1;
  until not swop; { ---конец цикла сортировки }

  writeln('Otsortirovannaya:');
  for i := 1 to n do
  begin
    writeln;
    for j := 1 to n do
      write(A[i, j]:8);
  end; { вывод отсортированой матрицы на экран }

  readln;

end.

Leave a Comment

13 + = 23