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

  1. Переменная i устанавливается равной значению переменной p. Переменная p сбрасывается до значения первого элемента вектора.
  2. Цикл for проходит по всем элементам вектора от Low(v) до i-1. Если текущий элемент в векторе меньше следующего, то происходит перестановка элементов.
  3. Значение переменной p устанавливается равным индексу текущего элемента в векторе. Значение текущего элемента считывается и сохраняется в переменной t. Затем значение текущего элемента в векторе меняется местами с предыдущим элементом.
  4. Для каждого элемента в матрице, начиная с верхнего левого угла и двигаясь вниз и влево, происходит перестановка элементов, если текущий элемент в векторе меньше следующего.
  5. После завершения цикла for переменная p сбрасывается до значения первого элемента вектора.
  6. Цикл повторяется до тех пор, пока значение переменной p не станет равным значению первого элемента вектора. Таким образом, данный код реализует алгоритм сортировки пузырьком для матрицы и вектора.

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


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

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

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