Soma de Matrizes em Lógica de Programação
Olá pessoal! Nesta lição nós vamos mostrar mais um algoritmo resolvido para nosso curso de Lógica de Programação. O problema que vamos resolver é o seguinte:
Elabore um programa que peça ao usuário para informar 16 números, e os armazene em uma matriz 4×4.
Em seguida, o algoritmo deve solicitar ao usuário que entre com mais 16 números, e os armazene em uma segunda matriz 4×4.
O algoritmo, finalmente, deve realizar a soma das duas matrizes e mostrar na tela o resultado, na forma de uma tabela (matriz).
O resultado a ser obtido deve ser semelhante ao seguinte:
Para efetuar a soma de matrizes, basta efetuar a soma de cada posição correspondente em cada uma delas.
Vamos ao código que resolve nosso problema:
Código (português estruturado para VisualG):
Algoritmo "Soma de Matrizes" // Autor : Fábio dos Reis Var // Criando três matrizes 4x4 A: vetor[0..3,0..3] de inteiro B: vetor[0..3,0..3] de inteiro S: vetor[0..3,0..3] de inteiro linha, coluna: inteiro Inicio escreval("Algoritmo para soma de matrizes 4x4") // preenchendo as duas matrizes escreval("") escreval("Preenchendo a matriz A:") para linha de 0 ate 3 faca para coluna de 0 ate 3 faca escreval ("Digite um número para inserir na matriz A") leia (A[linha,coluna]) fimpara fimpara escreval("") escreval("Preenchendo a matriz B:") para linha de 0 ate 3 faca para coluna de 0 ate 3 faca escreval ("Digite um número para inserir na matriz B") leia (B[linha,coluna]) fimpara fimpara // Efetuando a soma das duas matrizes e armazenando o resultado na matriz S: para linha de 0 ate 3 faca para coluna de 0 ate 3 faca S[linha,coluna] <- A[linha,coluna] + B[linha,coluna] fimpara fimpara escreval("") // Exibindo os resultados na tela: escreval("Conteúdo da matriz A:") para linha de 0 ate 3 faca para coluna de 0 ate 3 faca se coluna < 3 entao escreva (A[linha,coluna]) senao escreval (A[linha,coluna]) fimse fimpara fimpara escreval("Conteúdo da matriz B:") para linha de 0 ate 3 faca para coluna de 0 ate 3 faca se coluna < 3 entao escreva (B[linha,coluna]) senao escreval (B[linha,coluna]) fimse fimpara fimpara escreval("A soma das matrizes A e B é:") para linha de 0 ate 3 faca para coluna de 0 ate 3 faca se coluna < 3 entao escreva (S[linha,coluna]) senao escreval (S[linha,coluna]) fimse fimpara fimpara Fimalgoritmo |
Para resolver nosso problema, começamos criando três arrays bidimensionais (matrizes), 4×4, de nomes A, B (que serão somados) e S (que armazenará o resultado da soma).
Logo após a declaração dos arrays, devemos preenchê-los usando dois laços de repetição for (para) aninhados. Você pode também adaptar o código para usar preenchimento automático, usando números aleatórios, de modo a facilitar o teste do algoritmo posteriormente (para não precisar digitar todos os 32 valores das matrizes, 16 em cada uma!).
A soma das duas matrizes é efetuada com o seguinte trecho de código:
para linha de 0 ate 3 faca para coluna de 0 ate 3 faca S[linha,coluna] <- A[linha,coluna] + B[linha,coluna] fimpara fimpara escreval("")
Simplesmente atribuímos a cada posição na matriz S a soma das posições correspondentes nas matrizes A e B.
Logo em seguida, exibimos na tela os conteúdos das três matrizes. Assim, o problema estará resolvido.