Отсортировать диагонали матрицы параллельные главной - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Дана матрица размерностью nxn, содержащая целые числа. Отсортировать диагонали матрицы параллельные главной по убыванию элементов методом пузырька. Спасибо!

Решение задачи: «Отсортировать диагонали матрицы параллельные главной»

textual
Листинг программы
  1. const nmax=20;
  2. var a:array[1..nmax,1..nmax] of integer;
  3.     n,i,j,k,m,x:integer;//n-размер, k-номер диагонали от главной(вверх и вниз), m-длина диагонали
  4.                             //i,j-счетчики, x-буфер для обмена
  5. begin
  6. randomize;
  7. repeat
  8. write('Размер матрицы от 3 до ',nmax,' n=');
  9. readln(n);
  10. until n in [3..nmax];
  11. writeln('Исходная матрица');
  12. for i:=1 to n do
  13.  begin
  14.   for j:=1 to n do
  15.    begin
  16.     a[i,j]:=random(100);
  17.     write(a[i,j]:3);
  18.    end;
  19.   writeln;
  20.  end;
  21. for k:=0 to n-2 do //если саму главную не нужно, то k:=1
  22.  begin
  23.   m:=n-k;
  24.   for i:=1 to m do
  25.   for j:=m downto i+1 do
  26.    begin
  27.     if a[j-1,j+k-1]<a[j,j+k] then
  28.      begin
  29.       x:=a[j-1,j+k-1];
  30.       a[j-1,j+k-1]:=a[j,j+k];
  31.       a[j,j+k]:=x;
  32.      end;
  33.     if a[j-1+k,j-1]<a[j+k,j] then
  34.      begin
  35.       x:=a[j-1+k,j-1];
  36.       a[j-1+k,j-1]:=a[j+k,j];
  37.       a[j+k,j]:=x;
  38.      end;
  39.    end;
  40.  end;
  41. writeln('Отсортированная матрица');
  42. for i:=1 to n do
  43.  begin
  44.   for j:=1 to n do
  45.   write(a[i,j]:3);
  46.   writeln;
  47.  end;
  48. end.

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


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

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

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы