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

Вопрос школьника по предмету Информатика

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

Ответ учителя по предмету Информатика

// 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей