Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação I
Prof. George Candeia
Ciência da Computação / 2013.1
Matrizes
dimensão2
4 5 7 6 8
0 1 2 3 4
dimensão1
1 5 6 7 9
7 6 5 4 3
Matrizes
Introdução
Uma matriz, em C, nada mais é que um conjunto de vetores. Na
realidade, um vetor é uma matriz unidimensional.
4 5 7 6 8
0 1 2 3 4
1 5 6 7 9
7 6 5 4 3
3
Matrizes
Introdução
Uma matriz, é uma estrutura de dados composta e homogênea,
pois armazena mais de um valor e todos são do mesmo tipo.
4
Matrizes
Introdução
Cada parte da matriz ocupa uma posição consecutiva na
memória do computador.
4 5 7 6 8 2 3 4
0 1 2 3 4 7 6 5
1 5 6 7 9 12 13 3
7 6 5 4 3 41 44 65
0 1 6 2 19 12 4 6
3 4 0 0 1 2 6 77
2 7 1 14 15 17 18 25
8 8 0 0 33 57 82 61
5
Matrizes
Exemplo
Imaginemos que em um programa, precisamos armazenar o
número de inscrição e a idade de 10 pessoas. Poderíamos criar
20 variáveis do tipo int ou criar uma matriz bidimensional de
tipos inteiros. Com a matriz, apenas uma variável é declarada.
101 802 234 198 001 125 500 200 345 547
18 17 25 32 28 22 19 23 27 42
6
Matrizes
Sintaxe
A sintaxe para a declaração de uma matriz em C é:
tipo nome_da_variável[dim1] [dim2]...[dimN];
Onde,
tipo: tipo dos dados que serão armazenados nas posições da
matriz;
nome_da_variavel: nome da matriz que será compartilhado por
cada parte;
dim1: quantidade de posições na dimensão 1;
dim2: quantidade de posições na dimensão 2;
dimN: quantidade de posições na dimensão N;
7
Matrizes
Exemplo
Voltando ao primeiro exemplo onde desejávamos utilizar uma
matriz bidimensional de inteiros para armazenar números de
inscrição e idades para 10 pessoas. Como ficaria essa declaração
em C?
9
Matrizes
Inicialização
Após a declaração e inicialização da matriz, sua estrutura de
dados ficaria da seguinte forma:
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
10
Matrizes
Inicialização
O que aconteceria se a inicialização fosse feita da seguinte
forma?
1 2 3 4 5 6 ? ? ? ?
1 2 3 4 5 6 7 8 9 ?
11
Matrizes
Inicialização
Uma matriz pode ainda ser declarada sem especificar a
quantidade de posições da primeira dimensão, porém, se for
inicializada, o compilador irá reservar a quantidade de posições
utilizadas durante a inicialização.
Exemplo:
12
Matrizes
Inicialização
Após a declaração e inicialização da matriz, quantas posições ela
teria? Como ficaria sua estrutura de dados?
1 2 3 4 5 6 7 8 ? ?
1 2 3 4 5 ? ? ? ? ?
13
Matrizes
Inicialização
Para inicializar matrizes não-dimensionadas, somente a
dimensão mais a esquerda que pode ficar sem o valor
especificado. No exemplo a seguir, o compilador exibirá um erro!
14
Matrizes
Acesso
Após uma matriz ter sido declarada e devidamente inicializada,
como fazemos para acessar cada elemento da matriz?
Os elementos podem ser acessados através de seu índice!
Exemplo:
15
Matrizes
Acesso
As posições (0,4) e (1,9) podem ser exibidas com o auxílio da
função printf();
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
16
Matrizes
Acesso
Uma outra forma de acesso para matrizes seria a utilização de
estruturas de repetição encadeadas.
Exemplo:
18
Matrizes
Acesso
Para exibir todos os valores armazenados na matriz
bidimensional a seguir, podemos utilizar dois for encadeados:
19
Matrizes
Acesso
Após a execução do código, a função printf() exibirá o seguinte
conteúdo na tela:
20
Matrizes
Atribuição ou preenchimento
Para atribuir um valor a uma determinada posição da matriz,
utilizamos o índice da posição desejada.
Exemplo: Para atribuir o valor 50 à posição (1,3), o valor 30 à
posição (0,0) e o valor 25 à posição (1,7) de uma matriz
bidimensional [2][10], podemos utilizar o seguinte código:
21
Matrizes
Atribuição ou preenchimento
Após a atribuição, como ficaria a estrutura de dados da matriz?
30 ? ? ? ? ? ? ? ? ?
? ? ? 50 ? ? ? 25 ? ?
22
Matrizes
Atribuição ou preenchimento
Outra forma de atribuição seria utilizando a função scanf():
23
Matrizes
Exemplo
Como ficaria o código para preencher uma matriz bidimensional
[3][3]?
24
Matrizes e Strings
Introdução
Podemos armazenar strings em uma matriz bidimensional.
Exemplo: Para armazenar as strings “Cantor” e “Comediante”,
podemos utilizar a seguinte matriz bidimensional:
25
Matrizes e Strings
Inicialização
Para inicializar a matriz com as strings “Cantor” e “Comediante”,
poderíamos utilizar os seguintes códigos:
26
Matrizes e Strings
Captura e Exibição
Para capturar e/ou exibir uma string, podemos utilizar as funções
básicas de entrada e saída de dados. Vejamos como elas se
comportam com strings e matrizes:
Funções de entrada:
scanf();
gets();
27
Matrizes e Strings
Captura e Exibição
Funções de entrada: scanf() e gets()
28
Matrizes e Strings
Captura e Exibição
Para exibir uma string contida em uma matriz, podemos utilizar
as funções de saída padrão. Vejamos como utiliza-las da melhor
forma:
Funções de saída:
printf();
puts();
29
Matrizes e Strings
Captura e Exibição
Função de saída: printf()
30
Matrizes e Strings
Captura e Exibição
Função de saída: puts()
31
Matrizes e Strings
Captura e Exibição
Função de saída: printf()
32