
Найти минимальное значение главной диагонали и максимальное значение вспомогательной диагонали в
квадратной матрице размером 5х5. Найденные значения поменять местами. Если эти значения принадлежат одному элементу, то это значение присвоить всем элементам главной и вспомогательной диагоналей.

Ответы на вопрос

PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018
Внимание! Если программа не работает, обновите версию!
begin
var n := 5;
Writeln('*** Исходная матрица ***');
var a := MatrRandom(n, n, -99, 99);
a.Println(4);
Writeln(4 * a.ColCount * '-');
Writeln('*** Полученная матрица ***');
var (i1, i2) := (0, 0);
for var i := 1 to n - 1 do
begin
if a[i, i] < a[i1, i1] then i1 := i;
if a[i, n - i - 1] > a[i2, n - i2 - 1] then i2 := i
end;
if i1 = i2 then
for var i := 0 to n - 1 do
(a[i, i], a[i, n - i - 1]) := (a[i1, i1], a[i1, i1])
else Swap(a[i1, i1], a[i2, n - i2 - 1]);
a.Println(4)
end.




javascript:var матрица = [];
for (let сч1 = 0; сч1 < 5; сч1++) { матрица.push([]); for (let сч2 = 0; сч2 < 5; сч2++) матрица[сч1].push(Math.random() * 100 | 0); }
var мин = матрица[0][0], н_мин = 0, макс = мин, н_макс = 0;
for (let сч = 1; сч < 5; сч++) if ( let зн_г = матрица[сч][сч], зн_в = матрица[сч][4 - сч]; if (зн_г < мин) { мин = зн_г; н_мин = сч; } else if (зн_в > макс) { макс = зн_в; н_макс = сч; } )
if (н_мин == 2 && н_макс == 2) for (let сч = 0; сч < 5; сч++) { матрица[сч][сч] = макс; матрица[сч][4 - сч] = макс; }
else { матрица[н_мин][н_мин] ^= матрица[н_макс][н_макс]; матрица[н_макс][н_макс] ^= матрица[н_мин][н_мин]; матрица[н_мин][н_мин] ^= матрица[н_макс][н_макс]; }



Для выполнения данной задачи, нам понадобится следующий алгоритм:
- Создать квадратную матрицу размером 5x5.
- Заполнить матрицу случайными значениями.
- Найти минимальное значение на главной диагонали и максимальное значение на вспомогательной диагонали.
- Если эти значения принадлежат одному элементу, то присвоить это значение всем элементам главной и вспомогательной диагоналей.
- Если значения различны, поменять местами минимальное значение с максимальным на соответствующих диагоналях.
Давайте реализуем это в коде на Python:
pythonimport random
# Создаем квадратную матрицу 5x5 и заполняем случайными значениями
matrix = [[random.randint(1, 100) for _ in range(5)] for _ in range(5)]
# Выводим исходную матрицу для наглядности
print("Исходная матрица:")
for row in matrix:
print(row)
# Находим минимальное значение на главной диагонали и максимальное значение на вспомогательной диагонали
main_diag_min = matrix[0][0]
aux_diag_max = matrix[0][-1]
for i in range(1, 5):
if matrix[i][i] < main_diag_min:
main_diag_min = matrix[i][i]
if matrix[i][4 - i] > aux_diag_max:
aux_diag_max = matrix[i][4 - i]
# Проверяем, если минимальное и максимальное значения принадлежат одному элементу
if main_diag_min == aux_diag_max:
# Присваиваем это значение всем элементам главной и вспомогательной диагоналей
for i in range(5):
matrix[i][i] = matrix[i][4 - i] = main_diag_min
else:
# Иначе меняем местами минимальное значение с максимальным на диагоналях
for i in range(5):
if matrix[i][i] == main_diag_min:
matrix[i][i] = aux_diag_max
if matrix[i][4 - i] == aux_diag_max:
matrix[i][4 - i] = main_diag_min
# Выводим измененную матрицу
print("\nМатрица после замены значений на диагоналях:")
for row in matrix:
print(row)
Примечание: Поскольку мы заполняем матрицу случайными значениями, результат выполнения кода может отличаться при каждом запуске. Однако, если минимальное и максимальное значения будут совпадать, то всем элементам главной и вспомогательной диагоналей будет присвоено это значение. В противном случае, минимальное и максимальное значения будут поменяны местами на соответствующих диагоналях.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili