Задание 11 Параграф 1.5 ГДЗ Босова 9 класс Углубленный уровень (Информатика)

Изображение Задание 11 Параграф 1.5 ГДЗ Босова 9 класс Углубленный уровень
Дополнительное изображение
Рассмотрим вариант решения задания из учебника Босова, Аквилянов 9 класс, Просвещение:
Напишите на языке Python программу, проверяющую, является ли заданная целочисленная матрица A размером N×N «магическим квадратом» — матрицей, у которой суммы чисел во всех её строках, всех столбцах и двух диагоналях одинаковы. Протестируйте программу на следующих данных.
Для проверки удобно использовать «эталонную сумму». Можно за нее взять сумму элементов первой строки, затем проверять остальные суммы по этой «эталонной сумме». Сумма по строкам вычисляем с помощью встроенной функции sum.
Команда magic_sum = sum(A[0]) присваивает сумму элементов первой строки переменной magic_sum.
Суммы по столбцам и диагоналям вычисляется суммированием элементов в цикле.
Программа:
N = int(input('Введи размер матрицы N > > '))
print('Введите матрицу по строкам > > ')
A = [[int(x) for x in input().split()[:N]] for i in range(N)]
magic_sum = sum(A[0]) # эталонная сумма
flag = True
# Проверяем строки
for i in range(N):
if sum(A[i]) != magic_sum:
flag = False
break # Прерываем цикл если найдено несоответствие
# Проверяем столбцы если flag = True
if flag:
for j in range(N):
col_sum = 0
for i in range(N):
col_sum += A[i][j]
if col_sum != magic_sum:
flag = False
break # Прерываем цикл
# Проверяем диагонали если flag = True
if flag:
diag1_sum = 0
diag2_sum = 0
for i in range(N):
diag1_sum += A[i][i]
diag2_sum += A[i][N-1-i]
if diag1_sum != magic_sum or diag2_sum != magic_sum:
flag = False
print(f"{'Да' if flag else 'Нет'}")
Окно вывода:
Введи размер матрицы N > > 3
Введите матрицу по строкам > >
1 2 3
4 2 0
1 2 3
Да
Введите матрицу по строкам > >
2 1
1 2
Нет
Введи размер матрицы N > > 4
Введите матрицу по строкам > >
4 14 15 1
9 7 6 12
5 11 10 8
16 2 3 13
Да
*Текст задания приводится исключительно в образовательных целях для более полного понимания решения.