Отсортировать диагонали матрицы параллельные главной - Pascal ABC
Формулировка задачи:
Дана матрица размерностью nxn, содержащая целые числа.
Отсортировать диагонали матрицы параллельные главной по убыванию элементов методом пузырька.
Спасибо!
Решение задачи: «Отсортировать диагонали матрицы параллельные главной»
textual
Листинг программы
const nmax=20; var a:array[1..nmax,1..nmax] of integer; n,i,j,k,m,x:integer;//n-размер, k-номер диагонали от главной(вверх и вниз), m-длина диагонали //i,j-счетчики, x-буфер для обмена begin randomize; repeat write('Размер матрицы от 3 до ',nmax,' n='); readln(n); until n in [3..nmax]; writeln('Исходная матрица'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(100); write(a[i,j]:3); end; writeln; end; for k:=0 to n-2 do //если саму главную не нужно, то k:=1 begin m:=n-k; for i:=1 to m do for j:=m downto i+1 do begin if a[j-1,j+k-1]<a[j,j+k] then begin x:=a[j-1,j+k-1]; a[j-1,j+k-1]:=a[j,j+k]; a[j,j+k]:=x; end; if a[j-1+k,j-1]<a[j+k,j] then begin x:=a[j-1+k,j-1]; a[j-1+k,j-1]:=a[j+k,j]; a[j+k,j]:=x; end; end; end; writeln('Отсортированная матрица'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3); writeln; end; end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д