21
Programação I Matrizes e Strings Prof. Carlos Alberto [email protected] [email protected]

Programação I · 2017-10-03 · •Matriz é uma coleção de variáveis do mesmo tipo ... •Matriz é uma coleção homogênea bidimensional, cujos elementos são distribuídos

Embed Size (px)

Citation preview

Programação I Matrizes e Strings

Prof. Carlos Alberto

[email protected]

[email protected]

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'}

Inicialização de vetores

• Exemplo

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!

Obrigado!!!