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.
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") } } }