Переставить строки матрицы так, чтобы элементы среднего столбца оказались упорядоченными по убыванию - PascalABC.NET
Формулировка задачи:
Помогите пожалуйста
Дан двумерный массив размера N×M. Переставьте в нем строки или столбцы с учётом определенного условия.
Условие:Количество столбцов в матрице нечетно. Переставьте строки так, чтобы элементы среднего столбца оказались упорядоченными по убыванию.
Решение задачи: «Переставить строки матрицы так, чтобы элементы среднего столбца оказались упорядоченными по убыванию»
textual
Листинг программы
const R = 6; // чтобы не путаться, что такое N, а что M - называем R - число строк и C - число столбцов C = 7; type V = array[1 .. C] of integer; TA = array[1 .. R] of V; procedure Print(a : TA); begin for var i := 1 to R do begin for var j := 1 to C do write(a[i, j]:4); writeln; end; end; var a : TA; t : V; begin for var i := 1 to R do for var j := 1 to C do a[i, j] := Random(0, 99); writeln('До:'); Print(a); for var i := 1 to R do for var j := R downto i + 1 do if a[j - 1, C div 2 + 1] < a[j, C div 2 + 1] then begin t := a[j]; a[j] := a[j - 1]; a[j - 1] := t end; // writeln('После:'); Print(a); end.
Объяснение кода листинга программы
В этом коде используется язык программирования PascalABC.Net.
- В первой строке объявляются константы R и C, которые задают количество строк и столбцов в матрице соответственно.
- Далее определяются типы данных для матрицы и её элементов. V — это массив, который может содержать целочисленные значения от 0 до 99. TA — это массив, который может содержать массивы типа V.
- Затем определена процедура Print, которая выводит элементы матрицы на экран.
- Создаются переменные a и t типа TA и V соответственно.
- В цикле заполняются все элементы матрицы случайными числами от 0 до 99.
- Выводится сообщение
До:
и выводится матрица на экран. - Затем в цикле происходит перестановка строк матрицы таким образом, чтобы элементы среднего столбца оказались упорядоченными по убыванию.
- Выводится сообщение
После:
и выводится измененная матрица на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д