Задана действительная квадратная матрица порядка n. Найти наибольший по модулю элемент...

0 голосов
151 просмотров

Задана действительная квадратная матрица порядка n. Найти наибольший по модулю элемент матрицы. Не используя вспомогательного массива, получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы строки и столбца, на пересечении которых расположен элемент с найденным значением. Размерность матрицы и значения ее элементов ввести с клавиатуры.


Информатика (15 баллов) | 151 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк/столбцов в матрице:');
  var a:=MatrRandom(n,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var ijv:=a.ElementsWithIndexes.Select(x->(x[0],x[1],abs(x[2])))
      .MaxBy(x->x[2]);
  for var i:=ijv[0] to n-2 do a.SwapRows(i,i+1);
  for var j:=ijv[1] to n-2 do a.SwapCols(j,j+1);
  SetLength(a,n-1,n-1); a.Println(4)    
end.

Пример
Количество строк/столбцов в матрице: 5
  87  -5 -38  -9  57
  31  66  57 -25  40
  11  66  99 -79  91
  12  95  93  27 -97
  33 -94  14  19  39
--------------------
  87  -5  -9  57
  31  66 -25  40
  12  95  27 -97
  33 -94  19  39
(150k баллов)
0 голосов


for(i
for(j
if(fabs(m[i][j])>fmax)
{
for(i for(j m[i][j]=m[i+1][j+1]
return
}

может быть....
(192 баллов)