Ler duas matrizes
e
de elementos inteiros e gerar a matriz produto
. Imprimir
.
Passo 1
O enunciado pede para ler duas matrizes de inteiros A de tamanho M×N e B de tamanho N×P, e gerar a matriz produto P de tamanho M×P. O conteúdo aqui é multiplicação de matrizes, onde cada elemento de P é a soma dos produtos dos elementos correspondentes de uma linha de A e de uma coluna de B.
Passo 2
Começamos lendo as dimensões M, N e P, depois alocamos as matrizes A(M×N), B(N×P) e P(M×P). Em seguida, lemos os elementos de A e de B.
Passo 3
Para preparar o cálculo, inicializamos todos os elementos de P com zero. Assim evitamos lixo de memória e podemos acumular corretamente as somas.
Passo 4
Aplicamos a definição de multiplicação de matrizes: cada elemento
é dado por
Passo 5
Em pseudocódigo, usamos três laços aninhados: o externo percorre linhas
até
, o do meio percorre colunas
até
, e o interno acumula o somatório sobre
até
.
Passo 6
Por fim, imprimimos a matriz P linha a linha, exibindo cada elemento separado por espaço ou tabulação.
Resposta
Pseudocódigo:
Ler M, N, P
Alocar matriz A[M][N], B[N][P], P[M][P]
Alocar matriz A[M][N], B[N][P], P[M][P]
// Leitura de A
enquanto i de 1 até M faça
enquanto j de 1 até N faça
ler A[i][j]
enquanto i de 1 até M faça
enquanto j de 1 até N faça
ler A[i][j]
// Leitura de B
enquanto i de 1 até N faça
enquanto j de 1 até P faça
ler B[i][j]
enquanto i de 1 até N faça
enquanto j de 1 até P faça
ler B[i][j]
// Inicialização de P
enquanto i de 1 até M faça
enquanto j de 1 até P faça
P[i][j] ← 0
enquanto i de 1 até M faça
enquanto j de 1 até P faça
P[i][j] ← 0
// Cálculo do produto
enquanto i de 1 até M faça
enquanto j de 1 até P faça
para k de 1 até N faça
P[i][j] ← P[i][j] + A[i][k] * B[k][j]
enquanto i de 1 até M faça
enquanto j de 1 até P faça
para k de 1 até N faça
P[i][j] ← P[i][j] + A[i][k] * B[k][j]
// Impressão de P
enquanto i de 1 até M faça
enquanto j de 1 até P faça
imprimir P[i][j] com espaço
imprimir nova linha
enquanto i de 1 até M faça
enquanto j de 1 até P faça
imprimir P[i][j] com espaço
imprimir nova linha