Задать вопрос
8 июля, 08:22

Дано массивы A (N1, N1), B (N2, N2), C (N3, N3). найти в каждой строке исходного массива наименьший элемент и переставить его с элементом стоящим на главной диагонали. нахождение в каждой строке массива наименьшего элемента и его перестановку с элементом стоящим на главной диагонали оформить в виде подпрограммы

+3
Ответы (1)
  1. 8 июля, 11:43
    0
    Type

    M = array[,] of integer;

    procedure Swap (var a: M; i: integer; j: integer) ;

    //обменивает местами элементы массива a[i, i] и a[i, j]

    var

    buff: integer;

    begin

    if i j then begin

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

    end

    end;

    function GetColMin (a: M; i: integer) : integer;

    / / возвращает номер столбца, в котором найден минимальный элемент

    / / по строке с номером i, т. е. a[i,?]=min

    var

    j, vmin, jm: integer;

    begin

    vmin : = 32766;

    for j : = 0 to Length (a, 1) - 1 do

    if vmin > a[i, j] then begin

    vmin : = a[i, j]; jm : = j

    end;

    Result : = jm

    end;

    procedure SwapMatrix (var a: M) ;

    / / меняет местами в массиве a[n, n] минимальный по строке элемент с

    / / элементом, лежащим на главной диагонали.

    / / Обращается к функции GetColMin и процедуре Swap

    var

    i: integer;

    begin

    for i : = 0 to Length (a, 0) - 1 do Swap (a, i, GetColMin (a, i))

    end;

    procedure WriteMas (a: M; title: string) ;

    / / выводит заголовок, а потом массив построчно

    var

    i, j, n: integer;

    begin

    n : = Length (a, 0) - 1;

    writeln (title) ;

    for i : = 0 to n do

    begin

    for j : = 0 to n do write (a[i, j]:5) ;

    writeln

    end

    end;

    procedure CreateMas (var a: M; n: integer; p: integer; q: integer) ;

    / / Создает массив a[0 ... n-1,0 ... n-1] и заполняет его

    / / данными используя датчик случайных чисел с мощностью "р"

    / / и минимальным значением q

    var

    i, j: integer;

    begin

    Randomize;

    SetLength (a, n, n) ;

    for i : = 0 to n - 1 do

    for j : = 0 to n - 1 do

    a[i, j] : = random (p) + q

    end;

    const

    n1 = 3;

    n2 = 5;

    n3 = 8;

    var

    a, b, c: M;

    begin

    CreateMas (a, n1, 100, - 50) ;

    WriteMas (a, 'Исходный массив а') ;

    SwapMatrix (a) ;

    WriteMas (a, 'Результирующий массив а') ;

    CreateMas (b, n2, 300, - 150) ;

    WriteMas (b, 'Исходный массив b') ;

    SwapMatrix (b) ;

    WriteMas (b, 'Результирующий массив b') ;

    CreateMas (c, n3, 500, - 250) ;

    WriteMas (c, 'Исходный массив c') ;

    SwapMatrix (c) ;

    WriteMas (c, 'Результирующий массив c') ;

    end.

    Тестовый прогон:

    Исходный массив а

    14 23 7

    -50 31 36

    -39 - 43 - 38

    Результирующий массив а

    7 23 14

    31 - 50 36

    -39 - 38 - 43

    Исходный массив b

    -91 6 - 21 - 139 - 141

    130 - 99 44 131 143

    93 5 97 - 111 43

    -113 15 125 88 31

    -115 - 39 27 124 144

    Результирующий массив b

    -141 6 - 21 - 139 - 91

    130 - 99 44 131 143

    93 5 - 111 97 43

    88 15 125 - 113 31

    144 - 39 27 124 - 115

    Исходный массив c

    -234 211 207 - 131 151 - 228 197 - 163

    147 5 180 - 135 - 181 217 - 178 - 3

    178 - 142 - 149 - 44 - 195 - 224 - 187 - 173

    -24 62 28 - 134 - 11 - 216 - 59 83

    62 - 86 48 152 - 44 - 49 - 218 92

    91 - 60 201 206 - 160 - 135 - 131 77

    161 - 184 - 204 113 - 181 199 223 240

    147 129 143 - 162 - 6 80 98 113

    Результирующий массив c

    -234 211 207 - 131 151 - 228 197 - 163

    147 - 181 180 - 135 5 217 - 178 - 3

    178 - 142 - 224 - 44 - 195 - 149 - 187 - 173

    -24 62 28 - 216 - 11 - 134 - 59 83

    62 - 86 48 152 - 218 - 49 - 44 92

    91 - 60 201 206 - 135 - 160 - 131 77

    161 - 184 223 113 - 181 199 - 204 240

    147 129 143 113 - 6 80 98 - 162
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Дано массивы A (N1, N1), B (N2, N2), C (N3, N3). найти в каждой строке исходного массива наименьший элемент и переставить его с элементом ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы