Задать вопрос

Дана матрица целых чисел размером 5 х6. переставить столбцы так, чтобы сумма их элементов убывала

+2
Ответы (1)
  1. 8 ноября, 08:58
    0
    Const

    m = 6;

    n = 9;

    type

    R = record

    sum: integer;

    nom: integer

    end;

    vR = array[1 ... n] of R;

    tm = array[1 ... m, 1 ... n] of integer;

    function SumCol (a: tm; k: integer) : integer;

    { Сумма элементов в k-м столбце (колонке) матрицы а }

    var

    i, s: integer;

    begin

    s : = 0;

    for i : = 1 to m do

    s : = s + a[i, k];

    SumCol : = s

    end;

    procedure Swp (var a, b: R);

    { Меняет местами элементы a и b }

    var

    t: R;

    begin

    t : = a; a : = b; b : = t

    end;

    procedure Shell (var a: vR);

    { сортировка методом Шелла по убыванию }

    var

    i, j, step: integer;

    begin

    step : = n div 2;

    while step > 0 do

    begin

    for j : = n - step downto 1 do

    begin

    i : = j;

    while i < = n - step do

    begin

    if a[i]. sum < a[i + step]. sum then Swp (a[i], a[i + step]);

    i : = i + step

    end

    end;

    step : = step div 2

    end

    end;

    var

    a, c: tm;

    b: vR;

    i, j: integer;

    begin

    Randomize;

    Writeln ('** * Исходные элементы массива * **');

    for i : = 1 to m do

    begin

    for j : = 1 to n do

    begin a[i, j] : = Random (101) - 50; Write (a[i, j]:4) end;

    Writeln

    end;

    { формируем вектор сумм по столбцам }

    for j : = 1 to n do

    begin

    b[j]. sum : = SumCol (a, j);

    b[j]. nom : = j;

    end;

    { сортируем полученный вектор по убыванию сумм }

    Shell (b);

    { осуществляем перестановку во вспомогательный массив с}

    for j : = 1 to n do

    for i : = 1 to m do c[i, j] : = a[i, b[j]. nom];

    { копируем содержимое вспомогательного массива с в массив а }

    Writeln ('** * Результирующие элементы массива * **');

    for i : = 1 to m do

    begin

    for j : = 1 to n do

    begin

    a[i, j] : = c[i, j];

    Write (a[i, j]:4)

    end;

    Writeln

    end

    end.
Знаешь ответ на этот вопрос?
Сомневаешься в правильности ответа?
Получи верный ответ на вопрос 🏆 «Дана матрица целых чисел размером 5 х6. переставить столбцы так, чтобы сумма их элементов убывала ...» по предмету 📕 Информатика, используя встроенную систему поиска. Наша обширная база готовых ответов поможет тебе получить необходимые сведения!
Найти готовые ответы
Похожие вопросы информатике
1) Дана матрица размером M * N. В каждой строке матрицы найти минимальный элемент и максимальный из найденного. 2) дана матрица размерами N * N. Поменять местами столбец с максимальным и столбец содержащий минимальное количество нулевых элементов.
Ответы (1)
Дана квадратная матрица а размером n*n состоящая из действительных элементов. Найти среднее арифметическое из всех отрицательных элементов этой матрицы
Ответы (1)
C+ + Дана матрица N * M. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол. Определить можно ли таким же образом поместить минимальный элемент в нижний правый угол.
Ответы (1)
1. В одномерном массиве из 10 целых чисел вычислить количество отрицательных элементов в каждой десятке элементов. 2. Определить сумму минимального и максимального элементов массива из 20 действительных чисел. 3. Дан массив из 20 целых чисел.
Ответы (1)
Дана вещественная квадратная матрица А порядка n. Найти среднее арифметическое среди положительных элементов матрицы, находящихся на главной и побочной диагоналях. Выдать сообщение, если таких элементов нет.
Ответы (1)