Отсортировать каждый столбе матрицы с номером 2i по возрастанию элементов, а с номером 2i +1 по убыванию - Pascal ABC

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

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

Отсортировать каждый столбе матрицы с номером 2i по возрастанию элементов, а с номером 2i +1 по убыванию элементов методом вставки Все отсортировать по убыванию или возрастанию получается, а конкретно столбцы нет, думаю тут должен быть if then else Но куда его ставить и что должно быть условием мне не понятно

Решение задачи: «Отсортировать каждый столбе матрицы с номером 2i по возрастанию элементов, а с номером 2i +1 по убыванию»

textual
Листинг программы
type mas=array [1..10] of integer; //столбец
     matr=array [1..10] of mas;//массив столбцов
procedure VvodMatr(var h:text; var x:matr; var n,m: integer);
var k,j:integer;
begin
assign(h,'input.txt');
reset(h);
read(h,n,m);
for k:=1 to n do  //записываем матрицу по столбцам
for j:=1 to m do read (h,x[j][k]);
close(h);
end;
Procedure PrintMatr(var h:text;x: matr; n,m: integer);
var k,j: integer;
begin
assign(h,'output.txt');
rewrite(h);
writeln(h,n,' ',m);
for k:=1 to n do  //выводим по строкам
 begin
  for j:=1 to m do  write (h,x[j][k],'  ');
  writeln(h);
 end;
close(h);
end;
procedure SortVsVz(var a:mas; n: integer);
var i,j,temp : integer;
begin
for i:=2 to n do
 begin
  temp:=a[i];
  j:=i-1;
  while (j>=1) and (a[j]>temp) do
   begin
    a[j+1]:=a[j];
    j:=j-1;
   end;
  a[j+1]:=temp
 end;
end;
procedure SortVsUb(var a:mas; n: integer);
var i,j,temp : integer;
begin
for i:=2 to n do
 begin
  temp:=a[i];
  j:=i-1;
  while (j>=1) and (a[j]<temp) do
   begin
    a[j+1]:=a[j];
    j:=j-1;
   end;
  a[j+1]:=temp;
 end;
end;
{Основная программа:}
var f:text;
    a:matr;
    n,m,i,j:integer;
begin
VvodMatr(f,a,n,m);
i:=1;
for j:=2 to m do
 begin
  if j=2*i then SortVsVz(a[j],n)
  else if j=2*i+1 then
   begin
    SortVsUb(a[j],n);
    i:=i+1;
   end;
 end;
PrintMatr(f,a,n,m);
end.

Объяснение кода листинга программы

Этот код написан на языке Pascal ABC и выполняет следующие действия:

  1. Создает переменные для хранения номера файла ввода и вывода, а также для хранения матрицы и ее столбцов.
  2. Зачитывает матрицу из файла ввода.
  3. Выводит информацию о размерах матрицы на экран.
  4. Реализует процедуры сортировки по возрастанию и по убыванию для каждого столбца матрицы.
  5. Записывает отсортированную матрицу в файл вывода. Примечание: В этом коде используется несколько вложенных циклов, но они не являются вложенными списками.

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


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

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

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