aula 93

Por que precisamos de duas repetições para percorrer uma matriz?

Se ficou alguma duvida a respeito do porque precisamos de duas repetições para percorrer uma matriz, essa aula é para você.

Uma matriz é uma estrutura de dados homogênea bidimensional. Assim, tendo linhas e colunas, precisamos de dois índices para acessar qualquer elemento da matriz, um índice para indicar a linha e outro para indicar a coluna.

Com apenas uma repetição, podemos por exemplo fixar o índice da linha e percorrer as colunas, imprimindo assim uma linha da matriz:

int l, c, mat[4][5] = {{10,11,12,13,14},{20,21,22,23,24},{30,31,32,33,34},{40,41,42,43,43}}

para(c = 0; c < 5; c++)
  escreva(mat[0][c], " ") // perceba que fiixamos a linha zero

Isso irá imprimir a linha zero da matriz. Para imprimir todas as quatro linhas da matriz precisamos repetir o trecho acima trocando a linha fixada, assim:

para(c = 0; c < 5; c++) // imprime a linha um
  escreva(mat[1][c], " ")

para(c = 0; c < 5; c++) // imprime a linha dois
  escreva(mat[2][c], " ")

para(c = 0; c < 5; c++) // imprime a linha três
  escreva(mat[3][c], " ")

Perceba que, assim como os índices das colunas, os índices das linhas também são sequenciais. Assim, ao invés de repetir trechos de código para imprimir uma linha da matriz, podemos envolver esse trecho com outra repetição, gerando os índices das linhas a serem impressas, assim:

para(l = 0; l < 4; l++){
  para(c = 0; c < 5; c++)
    escreva(mat[l][c], " ")
  escreva("\n")
}

A seguir deixo o código completo em Portugol para imprimir uma matriz 4 x 5

programa{
	 
	funcao inicio(){
		
		inteiro l, c, mat[4][5] = {{10,11,12,13,14},{20,21,22,23,24},{30,31,32,33,34},{40,41,42,43,43}}

		para(l = 0; l < 4; l++){ // índices das linhas de 0 a 4
			para(c = 0; c < 5; c++) // índices das colunas de 0 a 5
				escreva(mat[l][c], " ")
			escreva("\n")
		}
	}
}


Deixe um comentário

um × 2 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.