Exercício de Lógica de Programação: Soma de Matrizes

Soma de Matrizes

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 4x4. Em seguida, o algoritmo deve solicitar ao usuário que entre com mais 16 números, e os armazene em uma segunda matriz 4x4. 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: Soma de Matrizes - Lógica de Programação 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), 4x4, 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.
Sobre Fábio dos Reis (1148 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Astronomia, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*