Расположить столбцы матрицы в соответственности с ростом характеристик - Turbo Pascal

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

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

Характеристикой столбца целочисленной матрицы назовем суму модулей его отрицательных непарных элементов. Перемещая столбцы данной матрицы, расположить их в соответственности с ростом характеристик.

Решение задачи: «Расположить столбцы матрицы в соответственности с ростом характеристик»

textual
Листинг программы
var
    a: Array[Byte, Byte] Of ShortInt;
    b: Array[Byte] Of Word;
    i, j, l, n, m: Byte;
    tempW: Word;
    tempS: ShortInt;
begin
    Randomize();
    repeat
        Write('Input n=');
        ReadLn(n);
    until (n > 0);
    repeat
        Write('Input m=');
        ReadLn(m);
    until (m > 0);
    for j := 0 to m - 1 do
        b[j] := 0;
    WriteLn('Original array:');
    for i := 0 to n - 1 do
    begin
        for j := 0 to m - 1 do
        begin
            a[i, j] := Random(199) - 99;
            Write(a[i, j]:4);
            if ((a[i, j] < 0) And Odd(a[i, j]))
            then
                Inc(b[j], Abs(a[i, j]));
        end;
        WriteLn;
    end;
    for l := 0 to m - 2 do
        for j := l + 1 to m - 1 do
            if (b[j] < b[l])
            then
            begin
                tempW := b[j];
                b[j] := b[l];
                b[l] := tempW;
                for i := 0 to n - 1 do
                begin
                    tempS := a[i, j];
                    a[i, j] := a[i, l];
                    a[i, l] := tempS;
                end;
            end;
    WriteLn;
    for i := 0 to n - 1 do
    begin
        for j := 0 to m - 1 do
            Write(a[i, j]:4);
        WriteLn;
    end;
end.

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

  1. Создается двумерный массив a типа Array[Byte, Byte] Of ShortInt, который будет использоваться для хранения значений матрицы.
  2. Создается одномерный массив b типа Array[Byte] Of Word, который будет использоваться для хранения суммарных значений каждого столбца.
  3. Создаются три переменные i, j и l типа Byte, которые будут использоваться для итерации по массивам.
  4. Создается две переменные tempW и tempS типа Word и ShortInt соответственно, которые будут использоваться для временного хранения значений.
  5. В цикле repeat считываются значения n и m с помощью функции ReadLn().
  6. В цикле for происходит заполнение массива b нулями.
  7. Выводится сообщение с исходными значениями матрицы.
  8. В цикле for происходит заполнение массива a случайными числами от 0 до 198.
  9. В цикле for происходит сравнение текущей строки с предыдущей и перестановка строк при необходимости.
  10. В цикле for происходит запись значений массива a в файл.
  11. Выводится сообщение с окончательными значениями матрицы.
  12. В цикле for происходит запись значений массива a в файл.

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


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

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

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