Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста, нужно реализовать программу, перемножающую две матрицы, введенные через консоль

Елисей Буланов Ученик (96), открыт 2 дня назад
Уже всю голову поломал, ничего не получается

Пробовал делать так:

h = []
q = []
o = int(input("Введите первую матрицу: "))
h.append(o)
s = int(input("Введите вторую матрицу: "))
q.append(s)
for i in range(len(h)):
for j in range(len(h[0])):
print(h[i][j] * q[i][j], end=' ')
print()

Не судите строго, я новичок
2 ответа
Лев Сигма Мастер (1021) 2 дня назад
 # Ввод первой матрицы 
print("Введите первую матрицу (по строкам, разделяйте числа пробелами):")
rows1 = int(input("Количество строк: "))
cols1 = int(input("Количество столбцов: "))
matrix1 = []
for i in range(rows1):
while True:
row = input(f"Строка {i + 1}: ").split()
if len(row) == cols1:
try:
row = [float(num) for num in row] # Можно заменить на int, если нужны целые числа
matrix1.append(row)
break
except ValueError:
print("Ошибка: введите числа!")
else:
print(f"Ошибка: нужно ввести {cols1} чисел!")

# Ввод второй матрицы
print("\nВведите вторую матрицу (по строкам, разделяйте числа пробелами):")
rows2 = int(input("Количество строк: "))
cols2 = int(input("Количество столбцов: "))
matrix2 = []
for i in range(rows2):
while True:
row = input(f"Строка {i + 1}: ").split()
if len(row) == cols2:
try:
row = [float(num) for num in row] # Можно заменить на int, если нужны целые числа
matrix2.append(row)
break
except ValueError:
print("Ошибка: введите числа!")
else:
print(f"Ошибка: нужно ввести {cols2} чисел!")

# Проверка возможности умножения
if cols1 != rows2:
print("\nОшибка: число столбцов первой матрицы должно быть равно числу строк второй матрицы!")
else:
# Умножение матриц
result = [[0 for _ in range(cols2)] for _ in range(rows1)]
for i in range(rows1):
for j in range(cols2):
for k in range(cols1): # или rows2, так как cols1 == rows2
result[i][j] += matrix1[i][k] * matrix2[k][j]

# Вывод результата
print("\nРезультат умножения матриц:")
for row in result:
print(' '.join(map(str, row)))
Елисей БулановУченик (96) 2 дня назад
Спасибо!
Celtic Hammer Мудрец (17614) 2 дня назад
Если безо всяких там ботов, а своим мозгом...
Похожие вопросы