Вквадратной матрице а(7,7) поменять местами минимальные элементы первой и третьей строк, максимальные элементы главной и побочной диагоналей.

1981katerina 1981katerina    1   27.09.2019 07:40    0

Ответы
пипканегра пипканегра  08.10.2020 22:15

Изящно и непонятно.

// PascalABC.NET 3.4, сборка 1767 от 27.08.2018


begin

  var matr := MatrRandom(7, 7, 0, 100); matr.Println;  // // объявление матрицы со случайными значениями в диапазоне(0, 100) и её печать

  Swap(matr[0, matr.Row(0).IndexMin], matr[2, matr.Row(2).IndexMin]);   // меняем местами мин. элементы первой и третьей строк.

  var m := matr.ElementsWithIndexes.Where(t -> t[1] = t[2]).MaxBy(t -> t[0]);  // получение максимального элемента с его позицией в матрице главной диагонали.

  var s := matr.ElementsWithIndexes.Where(t -> (t[1], t[2]) in Range(0, 6).Select((t, i)-> (t, abs(i - 6)))).MaxBy(t -> t[0]);  // и побочной

  Println;  // отступ

  Swap(matr[m[1], m[2]], matr[s[1], s[2]]);  // меняем местами макс. элементы диагоналей

  matr.Println;  // печать результата

end.


Пример вывода в приложении:


Вквадратной матрице а(7,7) поменять местами минимальные элементы первой и третьей строк, максимальны
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика