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

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

code: #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.      
Поделиться:

Похожие статьи: