Elabore um código em uma tecnologia (
ou Python) que dada duas matrizes A e B quadradas de ordem
, calcule as seguintes propriedades:
Passo 1
O enunciado pede a multiplicação das duas matrizes quadradas
e
de ordem
, mas na ordem
. O conteúdo da matéria é multiplicação de matrizes: cada elemento da matriz resultado
é dado pela soma dos produtos da linha correspondente de
pelos elementos da coluna correspondente de
. Para resolver, vamos usar três laços aninhados que percorrem índices
de
a
.
Passo 2
Representamos cada matriz como uma lista de três listas em Python, ou seja, e coluna
. Faremos o mesmo para números em cada matriz, separados por espaço ou nova linha.
A[i][j]
é o elemento da linha
B
. Lemos as matrizes linha a linha. Por simplicidade, assumimos que o usuário fornece
Passo 3
Inicializamos a matriz resultado
C
com zeros e depois preenchemos cada entrada comPasso 4
Por fim, exibimos
C
formatando linha a linha de forma legível.Resposta
# multiplicacao_ba.py
def le_matriz_3x3(nome):
print(f"Digite os \(9\) elementos de {nome}, linha a linha:")
M = []
for i in range(\(3\)):
linha = list(map(float, input().split()))
if len(linha) != \(3\):
raise ValueError("Cada linha deve ter \(3\) elementos.")
M.append(linha)
return M
def multiplica_3x3(B, A):
# inicializa C com zeros
C = [[0.0 for _ in range(\(3\))] for _ in range(\(3\))]
# C = B * A
for i in range(\(3\)):
for j in range(\(3\)):
soma = 0.0
for k in range(\(3\)):
soma += B[i][k] * A[k][j]
C[i][j] = soma
return C
def imprime_matriz(M):
for linha in M:
print(" ".join(f"{x:.\(2\)f}" for x in linha))
def main():
A = le_matriz_3x3("A")
B = le_matriz_3x3("B")
C = multiplica_3x3(B, A)
print("Matriz C = B * A:")
imprime_matriz\text{(C)}
if __name__ == "__main__":
main()