aula 89

Estrutura de dado MATRIZ (array bidimensional) em Portugol

Agora que já conhecemos os vetores, vamos aprender uma segunda estrutura de dados homogênea, as matrizes.

As matrizes também são conhecidas como arrays bidimensionais. Bidimensional por possuir duas dimensões, ou seja, uma matriz possui LINHAS e COLUNAS.

representação de um matriz
Representação de um matriz e suas linhas e colunas.

Para criar uma matriz seguimos os mesmos passos da criação dos vetores: tipo, identificador e dimensões (tamanho), assim:

// Criando uma matriz de inteiros chamada mat com 7 linhas e 3 colunas
inteiro mat[7][3]

Como preencher uma matriz?

Para fornecer um conjunto de valores a uma matriz, basta fazer uma atribuição e inserir um conjunto de valores separados por vírgula e entre um par de chaves à direita do sinal de igual. O detalhe aqui é que, como uma matriz é uma estrutura bidimensional, possui linhas e colunas, cada linha precisa ficar dentro de outro par de chaves, assim:

/*
  Criando uma matriz de inteiros chamada mat com 7 linhas e 3 colunas e fornecendo um conjunto de valores.
  Primeira linha: {34,56}
  Segunda linha: {87,90}
  Terceira linha: {25,58}

  Primeira coluna: 34, 87, 25
  Segunda coluna: 56, 90, 58
*/
inteiro mat[3][2] = {{34,56},{87,90},{25,58}}

Como percorrer as posições de uma matriz?

Percorrer uma matriz é semelhante a percorrer um vetor. Contudo, devemos levar em conta as dimensões. Um vetor possui uma dimensão, por isso precisa de uma repetição. Uma matriz possui duas dimensões, então precisará de duas repetições, uma para os índices das linhas e outra para os índices das colunas, assim:

inteiro l, c, mat[3][2] = {{34,56},{87,90},{25,58}}

para(l = 0; l < 3; l++){ // índice das linhas
  para(c = 0; c < 2; c++){ // imprime a linha saltando as colunas
    escreva(mat[l][c], " ") // imprime os elementos da matriz na posição l c
  }
  escreva("\n") // para saltar uma linha
}

Código completo em Portugol

programa{
	/*   Aula 84: Matriz ou Array Bidimensional
	 *   
	 *   Vetor -> 13 45 67 82 91 53
	 *   Uma matriz 6 x 4
	 *   Matriz -  colunas--> 0  1  2  3
	 *   		linha 0  45 58 72 94
	 *   		linha 1  58 26 64 91
	 *   		linha 2  73 59 24 16
	 *   		linha 3  73 91 43 81
	 *   		linha 4  92 95 76 51
	 *   	        linha 5  29 54 85 67
	 */
	funcao inicio(){
		caracter sexo
		inteiro notas[10] = {1,2,3,4,5,6,7,8,9,10}
		inteiro l, c, mat[3][3] = {{45,86,95},{71,42,36},{49,16,35}}

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


Deixe um comentário

dezenove − 13 =

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.