Переставить столбцы матрицы в соответствии с ростом заданной характеристики - Turbo Pascal
Формулировка задачи:
Помогите дописать в задаче сортировку пузырьком и если можно с пояснением как она будет применяться.
Условие задачи: Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы матрицы, расположить их в соответствии с ростом характеристик.
Вот какой кусок кода получился у меня (Программу я стал писать через процедуры и функции), что бы легче было понять мою идею, я оставлю сбоку к элементам когда свои комментарии:
Не могу написать сортировку, как я понял там нужно сделать по строчную проверку элементов в столбце, если находится элемент условия, то его добавляем в счетчик, потом суммируем элементы, которые удовлетворяют условию и меняем столбцы смотря на эти характеристики. Кто сможет помочь, тому большое спасибо!
Решение задачи: «Переставить столбцы матрицы в соответствии с ростом заданной характеристики»
textual
Листинг программы
procedure BubbleSort(var c: Matr; var v: Vector); var i, j, k, p, t: Integer; begin p:=High(v); repeat i:=p; p:=Low(v); for j:=Low(v) to i-1 do if v[j+1]<v[j] then begin p:=j; t:=v[j]; v[j]:=v[j+1]; v[j+1]:=t; for k:=High(c) downto Low(c) do begin t:=c[k,j]; c[k,j]:=c[k,j+1]; c[k,j+1]:=t; end; end; until p=Low(v); end;
Объяснение кода листинга программы
Данный код представляет собой реализацию алгоритма сортировки пузырьком для матрицы и вектора.
В начале кода определяется переменная p
, которая будет использоваться для отслеживания последнего элемента в векторе. Затем в цикле повторяется следующая последовательность действий:
- Переменная
i
устанавливается равной значению переменнойp
. Переменнаяp
сбрасывается до значения первого элемента вектора. - Цикл
for
проходит по всем элементам вектора отLow(v)
доi-1
. Если текущий элемент в векторе меньше следующего, то происходит перестановка элементов. - Значение переменной
p
устанавливается равным индексу текущего элемента в векторе. Значение текущего элемента считывается и сохраняется в переменнойt
. Затем значение текущего элемента в векторе меняется местами с предыдущим элементом. - Для каждого элемента в матрице, начиная с верхнего левого угла и двигаясь вниз и влево, происходит перестановка элементов, если текущий элемент в векторе меньше следующего.
- После завершения цикла
for
переменнаяp
сбрасывается до значения первого элемента вектора. - Цикл повторяется до тех пор, пока значение переменной
p
не станет равным значению первого элемента вектора. Таким образом, данный код реализует алгоритм сортировки пузырьком для матрицы и вектора.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д