Отсортировать диагонали матрицы параллельные главной - 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы