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

Дано массивы A(N1,N1),B(N2,N2),C(N3,N3). найти в каждой строке исходного массива наименьший элемент и переставить его с элементом стоящим на главной диагонали. нахождение в каждой строке массива наименьшего элемента и его перестановку с элементом стоящим на главной диагонали оформить в виде подпрограммы
Гость
Ответ(ы) на вопрос:
Гость
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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы