Faça um programa que, dados dois vetores bidimensionais (matrizes
e
) com dimensões de no máximo
elementos, retorne:
a multiplicação das duas matrizes
a multiplicação das duas matrizes
Passo 1
Beleza, então o enunciado pede um programa que receba duas matrizes A e B (até 5×5) e retorne a matriz produto delas. O conteúdo aqui é “multiplicação de matrizes” e o que vamos precisar é:
- Entender quando dá pra multiplicar duas matrizes (compatibilidade de dimensões).
- Saber calcular cada elemento da matriz resultado como uma soma de produtos.
- Usar três loops aninhados pra varrer linhas, colunas e somar produtos.
Passo 2
Primeiro temos de checar a compatibilidade de dimensões. Se A tem dimensão
e B tem dimensão
, só rola multiplicar se
.
Explicando a teoria: cada elemento da matriz A está em uma linha (0…m−1) e coluna (0…n−1); pra multiplicar, o número de colunas de A (que é n) tem de ser igual ao número de linhas de B (que é p).
Explicando a teoria: cada elemento da matriz A está em uma linha (0…m−1) e coluna (0…n−1); pra multiplicar, o número de colunas de A (que é n) tem de ser igual ao número de linhas de B (que é p).
Passo 3
Agora vamos construir a matriz resultado C. Ela terá dimensão
(linhas de A × colunas de B).
Teoria aplicada: o elemento de C é dado pela fórmula
Teoria aplicada: o elemento
Ou seja, pra cada posição (i,j) em C, a gente soma, para k de 0 até n−1, o produto de A[i][k] por B[k][j].
Passo 4
Bora escrever em pseudocódigo passo a passo:
função multiplicarMatrizes(A, m, n, B, p, q):
se n ≠ p então
retornar erro "dimensões incompatíveis"
fim-se
criar C de tamanho m × q e inicializar todo elemento a 0
para i de 0 até m−1 faça
para j de 0 até q−1 faça
soma ← 0
para k de 0 até n−1 faça
soma ← soma + A[i][k] * B[k][j]
fim-para
C[i][j] ← soma
fim-para
fim-para
retornar C
fim-função
Resposta
A função acima retorna a matriz
de dimensão
, cujos elementos são
sempre que o número de colunas de A for igual ao número de linhas de B.