Отсортировать каждый столбе матрицы с номером 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 и выполняет следующие действия:
- Создает переменные для хранения номера файла ввода и вывода, а также для хранения матрицы и ее столбцов.
- Зачитывает матрицу из файла ввода.
- Выводит информацию о размерах матрицы на экран.
- Реализует процедуры сортировки по возрастанию и по убыванию для каждого столбца матрицы.
- Записывает отсортированную матрицу в файл вывода. Примечание: В этом коде используется несколько вложенных циклов, но они не являются вложенными списками.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д