Escolar Documentos
Profissional Documentos
Cultura Documentos
3.2 b[0]
a C A R R O
5.4 b[1]
a[0] a[1] a[2] a[3] a[4] b
9.3 b[2]
8.0 b[3]
● Possui apenas 1 índice
7.4 b[4]
Imagem: http://articles.mql4.com/417
int teatro[3][3][2];
Matriz com 3 linhas, 3 colunas e 2
faces. Pense nela como um teatro
com dois andares, onde em cada
andar existem 3 fileiras, cada uma
com 3 poltronas.
Ex. de uso:
teatro[fileira][poltrona][andar]
Imagem adaptada de http://articles.mql4.com/417
Versão 19/11/12 Slide 14
Arrays: Matrizes
● Percorrendo uma matriz bidimensional (exibindo)
int i, j;
int matriz_a[2][4] = {{1,2,3,4}, {5,6,7,8}};
for (i = 0; i < 2; i++) {
for (j = 0; j < 4; j++) {
printf("%d\t", matriz_a[i][j]);
}
printf("\n");
}
Versão 19/11/12 Slide 15
Arrays: Matrizes
● Percorrendo uma matriz bidimensional (preenchendo)
int i, j;
int matriz_a[2][4] = {{1,2,3,4}, {5,6,7,8}};
for (i = 0; i < 2; i++) {
for (j = 0; j < 4; j++) {
printf("Digite um valor pra ln %d e cl %d: ", i, j);
scanf(“%d”, &matriz_a[i][j]);
}
printf("\n");
}
Versão 19/11/12 Slide 16
Arrays: Matrizes
● Uma matriz também é denominada como vetor
de vetores:
int mat[2][4] = {{1,2,3,4}, {5,6,7,8}};
//ou int mat[2][4] = {1,2,3,4,5,6,7,8};
● A matriz mat é um vetor de 2 elementos, onde
cada posição armazena outro vetor de 4
elementos, como pode ser visto na atribuição, a
matriz mat possui os elementos {1,2,3,4} e
{5,6,7,8}, sendo cada um deles, um vetor de 4
elementos.
Versão 19/11/12 Slide 17
Arrays: Matrizes
● Matriz de char:
//Vetor de 2 posições, onde cada posição
//armazena uma string de até 10 caracteres.
//Também denominada vetor de strings
char nomes[2][10];
int i;
for(i=0; i < 2; i++) {
printf("Digite um nome: ");
scanf("%s", nomes[i]);
}
for(i=0; i < 2; i++)
printf("Nome %d: %s\n", i+1, nomes[i]);
Versão 19/11/12 Slide 18
Arrays: Armazenamento
● Os elementos de um array são armazenados
em endereços de memória RAM sequenciais,
assim, matrizes não são armazenadas em
quadriláteros como imaginamos.
Matriz 1
Matriz 2
Vetor 1
Imagem adaptada de http://www.fcleaner.com/ramrush.htm
Versão 19/11/12 Slide 19
Arrays: Armazenamento
● Exemplo de fórmula (a ser utilizada
internamente pelo programa) para descoberta
da posição de um elemento da matriz na
memória RAM, a partir dos valores de seus
índices
//fórmula considerando-se uma matriz bidimensional
posicao = (num_ln*total_cls)+num_cl
10 20 30 40 50 60 70 80 90
[0] [1] [2] [3] [4] [5] [6] [7] [8]
int array[9];
printf(“Endereço do array[0]: %p”, &array[0]);
printf(“Endereço do array[0]: %p”, &array[1]);
O programa deve cadastrar uma pessoa por vez, cada vez que o usuário escolher a
opção 1 do menu. Considerando que o vetor tem apenas 10 posições, antes de
cadastrar uma pessoa, deve-se verificar se ainda há posições vazias no vetor. Para
isto, deve-se utilizar uma variável para armazenar o total de pessoas cadastradas.
Na opção 2, deve-se solicitar o CPF da pessoa cujo cadastro deve ser alterado, após
isto, deve-se localizar a posição em que a pessoa está cadastrada. Ver função
strcmp da biblioteca string.h
A opção 4 deve apenas decrementar a variável que indica o total de pessoas
cadastradas.