Upload
phungnga
View
214
Download
0
Embed Size (px)
Citation preview
Matrizes
• Matriz é uma coleção de variáveis do mesmo tipo
que é referenciada por um nome comum;
• Um elemento específico em uma matriz é
acessado por meio de um índice;
• Em C, todas as matrizes consistem em posições
contíguas da memória;
Matrizes
• Matrizes podem ter de uma a várias dimensões;
• Matrizes de uma dimensão geralmente são
chamados de vetores;
• Em C, os vetores são sempre indexados a partir
de zero.
• Portanto, o último elemento de um vetor de tamanho N
ocupa a posição N - 1 do vetor.
Matrizes
• Para criar um vetor, declaramos uma variável
com sufixo [n], onde n é uma constante que
indica o número de elementos a serem alocados
no vetor;
• Exemplo:
int v[5];
Matrizes
• A quantidade de armazenamento necessário
para guardar uma matriz está diretamente
relacionada com seu tamanho e seu tipo;
• Para um vetor, o total de bytes é calculado assim:
total em bytes = sizeof(tipo) * tamanho do vetor
Matrizes
• C não verifica o limite das matrizes;
• Cabe ao programador fazer a verificação dos
limites onde for necessário;
• Exemplo:
Inicialização de vetores
• Pode-se inicializar explicitamente no momento
em que for declarado;
• Os valores iniciais devem ser fornecidos entre
chaves e separados por vírgulas;
• Exemplo:
float moedas[5] = {1.00, 0.50, 0.25, 0.10, 0.05};
int numeros[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Inicialização de vetores
• Quando é inicializado, o tamanho do vetor pode
ser omitido.
• Exemplo:
char dias[ ] = {'D', 'S', 'T', 'Q', 'Q', 'S', 'S'}
Strings
• O uso mais comum de vetores é como string de
caracteres;
• Em C, uma string é definida como um vetor de
caracteres que terminada por um nulo;
• Um nulo é especificado como '\0'. É o primeiro
elemento da tabela ASCII e tem código igual a
zero;
Inicialização de strings
• Pode ser no momento da declaração;
• Pode-se fornecer os caracteres entre chaves
separados por vírgula ou fornecer os caracteres
entre aspas;
• Exemplo:
char x[ ] = "teste";
char y[ ] = {'d','o','i','s'} ;
Manipulação de strings
• Funções de manipulação de strings. Biblioteca
strings.h
• strcpy(s1,s2): copia s2 em S1
• strcat(s1,s2): concatena s2 ao final de s1
• strlen(s1): retorna o tamanho de s1
Manipulação de strings
• Funções de manipulação de strings. Biblioteca
strings.h
• strcmp(s1, s2): retorna 0 se s1 e s2 são iguais, menor
que 0 se s1 < s2 e maior que 0 se s1 > s2
• strchr(s1, ch): retorna um ponteiro para a primeira
ocorrência de ch em s1
• strstr(s1, s2): retorna um ponteiro para a primeira
ocorrência de s2 em s1
Matrizes bidimensionais
• Matriz é uma coleção homogênea bidimensional,
cujos elementos são distribuídos em linhas e
colunas;
• Uma matriz I X J possui 0 a I - 1 linhas e 0 a J - 1
colunas.
• Para acessar uma posição específica de uma
matriz M, deve-se escrever M[i][j], onde i é o
número da linha e j o número da coluna.
Matrizes bidimensionais
• Tecnicamente uma matriz é um vetor cujos
elementos são vetores;
• Exemplo da declaração de uma matriz 3X4 de
números inteiro:
int mat[3][4]
Matrizes bidimensionais
• A quantidade de armazenamento necessário
para guardar uma matriz está diretamente
relacionada com seu tamanho e seu tipo;
• Para uma matriz bidimensional, o total de bytes
para o seu armazenamento é calculado assim:
total em bytes = tamanho do 1º índice * tamanho do 2º índice * sizeof(tipo);
Inicialização de matrizes
• Como uma matriz é simplesmente um vetor cujos
elementos são vetores, a sintaxe não traz
novidades.
Inicialização de matrizes
• É permitido omitir a primeira dimensão de uma
matriz. Neste caso, a quantidade de linhas é
determinada a partir dos elementos fornecidos
inicialmente.
Matriz de strings
• Para criar uma matriz de strings, usa-se uma
matriz bidimensional de caracteres;
• O tamanho do 1º índice indica o número de
strings
• O tamanho do 2º índice especifica o
comprimento máximo de cada string;
Matriz de strings
• Exemplo de uma matriz de 5 strings, cada uma
com comprimento de 29 caracteres;
char palavras[5][30];
• Para acessar uma string individualmente, deve-
se especificar apenas o 1º índice.
Vejamos o exemplo!