Faça um programa que, dados dois vetores bidimensionais (matrizes A e B ) com dimensões de no máximo 5 times 5 elementos, retorne:
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 mtimes n e B tem dimensão ptimes q, só rola multiplicar se n = 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 mtimes q (linhas de A × colunas de B).
Teoria aplicada: o elemento cij de C é dado pela fórmula
cij = sumk=0^n-1 aik,bkj
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 C de dimensão mtimes q, cujos elementos são
cij = sumk=0^n-1 aik,bkj
sempre que o número de colunas de A for igual ao número de linhas de B.

Exercícios relacionados