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

Ответы 1

  • 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
    • Автор:

      myliesjra
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years