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 endend;function GetColMin(a: M; i: integer): integer;// возвращает номер столбца, в котором найден минимальный элемент// по строке с номером i, т.е. a[i,?]=minvar 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 := jmend;procedure SwapMatrix(var a: M);// меняет местами в массиве a[n,n] минимальный по строке элемент с// элементом, лежащим на главной диагонали.// Обращается к функции GetColMin и процедуре Swapvar 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 endend;procedure CreateMas(var a: M; n: integer; p: integer; q: integer);// Создает массив a[0..n-1,0..n-1] и заполняет его// данными используя датчик случайных чисел с мощностью "р"// и минимальным значением qvar 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) + qend;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