Напишите программу на Python, которая принимает входные данные в виде прямоугольных матриц, представленных

  • 69
Напишите программу на Python, которая принимает входные данные в виде прямоугольных матриц, представленных последовательностью строк. После каждой матрицы следует строка, содержащая только слово "end" (без кавычек). Программа должна вывести результат произведения указанных матриц или строку "Error", если произведение не существует. Пример ввода 1: 3 2 1 4 end 2 2 end Пример вывода 1: 10 10 Пример ввода 2: 1 2 3 end 3 3 end Пример вывода 2: Error
Фонтан_9116
35
Хорошо, вот полное решение задачи:

python
def multiply_matrices(matrices):
result = matrices[0]
for matrix in matrices[1:]:
if len(result[0]) != len(matrix):
return "Error"

temp_result = []
for i in range(len(result)):
row = []
for j in range(len(matrix[0])):
element = 0
for k in range(len(matrix)):
element += result[i][k] * matrix[k][j]
row.append(element)
temp_result.append(row)

result = temp_result

return result


def read_matrices():
matrices = []

while True:
rows = []
line = input().strip()
if line == "end":
break

rows.append(list(map(int, line.split())))

while True:
line = input().strip()
if line == "end":
break
rows.append(list(map(int, line.split())))

matrices.append(rows)

return matrices


def main():
matrices = read_matrices()
result = multiply_matrices(matrices)
if result == "Error":
print("Error")
else:
for row in result:
print(" ".join(map(str, row)))


main()


Эта программа решает задачу перемножения матриц. Сначала она считывает матрицы из ввода и сохраняет их в список. Затем она перемножает эти матрицы, выполняя необходимые проверки для обеспечения согласованности размерностей матриц. Если результат перемножения возможен, программа выводит его. Если произведение матриц невозможно, программа выводит "Error".

Вы можете протестировать программу, вводя матрицы и слово "end" после каждой матрицы, как в примерах ввода, и программа распечатает результат на экране, соответствующий примерам вывода.