Curso C – Aula 07

Por Guilherme Farias em 27 de dezembro de 2011

Nesta sétima aula vamos aprender:

Matriz

A matriz é bem parecida com o array, na verdade a matriz é um array bidimensional, enquanto o array permite armazenar os dados em apenas uma linha, a matriz permite armazenar em linhas e colunas, veja um exemplo de matriz preenchida com números inteiros:

Assim como no Array, para armazenar os valores, devemos informar a posição que ele vai ser inserido. Na nossa matriz exemplo o número 10 foi armazenado na segunda coluna da primeira linha, neste caso o valor foi atribuído desta forma:

matriz[0][1] = 10;

Note que os índices das matrizes também começam por 0, por isso a primeira linha tem o índice 0 e a segunda 1.

Declaração de Matriz

A matriz é declarada da seguinte maneira:

tipoDosDados nomeDaMatriz[tamanhoDaLinha][tamanhoDaColuna];

No nosso exemplo usamos uma matriz 5×5 que é declarada desta maneira:

int matriz[5][5];

Adicionando dados na matriz

A matriz pode receber dados de diversas maneiras, eles podem já ser inicializados junto com a matriz:

int matriz[2][5] = {{1, 2, 3, 4, 5},{6, 7, 8, 9, 10}};

Se preferir, também pode ser adicionados diretamente na posição desejada:

matriz[0][1]= 2;
mat1[0][2]= 3;
mat1[1][3]= 9;

ou pode adicionar, percorrendo a matriz, utilizando estruturas de repetição e váriaveis de controle, que vamos ver a seguir.

Percorrendo a Matriz

Para percorrer uma matriz, temos que utilizar dois “FOR” e duas variáveis de controle, no nosso exemplo, vamos chama-las de “linha” e “coluna”, mas você pode utilizar qualquer nome, fica a seu critério.

for(linha=0;linha<"tamanho";linha++){
    for(coluna=0;coluna<"tamanho";coluna++){
        //acessando a posição referente a esta linha e coluna
    }
}

Note que ao executar esse código, o programa vai ler todas as colunas da primeira linha e só depois vai pular para a próxima linha, desta maneira, o programa percorrerá todas as posições da matriz.

Utilizando a Matriz

Agora vamos começar a fazer operações com matrizes, imagine que em uma sala há 10 alunos e que você tem que armazenar as 4 notas de todos os alunos, seria um pouco trabalhoso criar uma variável para cada dado né? pois com a matriz isso fica mais simples, podemos ordenar por linha e colunas como se fosse uma tabela, veja o nosso exemplo:

int aluno[10][4];
int linha, coluna;

//recebendo as notas
for(linha=0;linha<10;linha++){
    for(coluna=0;coluna<4;coluna++){
        printf("Digite a nota %i do Aluno %in", coluna+1,linha+1);
        scanf("%i", &aluno[linha][coluna]);
    }
}

//exibindo as notas
for(linha=0;linha<10;linha++){
    printf("Notas do Aluno %i: %i, %i, %i, %in", linha+1, aluno[linha][0], aluno[linha][1], aluno[linha][2], aluno[linha][3]);
}

Matriz tri e multidimencional

Uma matriz é um array bidimencional certo? Em C, é possível ter arrays tridimensionais e multidimensionais, a maneira de declarar é a mesma, tudo vai depender da quantidade de dimensões, veja um exemplo de declaração de uma matriz tridimensional:

int numeros[5][5][5];

Neste casso o array terá 3 índices, podendo conter mais dados, porém, não é aconselhável utilizar essas estruturas, para que não haja confusão é recomendado utilizar apenas matrizes e arrays, ou seja, apenas uma e duas dimensões.


Exercicio:

1) Crie uma matriz 20x20 que vai receber números inteiros, em seguida imprima na tela o resultado da soma de todos os números da matriz.

Veja também:
Aula 01
Aula 02
Aula 03
Aula 04
Aula 05
Aula 06
Aula 07
Aula 08

Comente!

Deixe uma resposta

O seu endereço de email não será publicado

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>