A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)

Apresentações semelhantes


Apresentação em tema: "Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)"— Transcrição da apresentação:

1 Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)

2 UDESC – Prof. Kariston Pereira2 Índice Seção 1 – Definições Seção 2 – Arrays Unidimensionais Seção 3 – Arrays Multidimensionais

3 UDESC – Prof. Kariston Pereira3 Definições Seção 1 Conceito

4 UDESC – Prof. Kariston Pereira4 Conceito Um array é uma coleção de elementos do mesmo tipo que é referenciada por um nome comum. Um elemento de um array é acessado por meio de um índice. Em C, todo array consistem em posições contíguas na memória.

5 UDESC – Prof. Kariston Pereira5 Arrays Unidimensionais Seção 2 Introdução Indexação Vetores Argumentos para Funções Parâmetros de Funções Strings Funções de Manipulação de Strings

6 UDESC – Prof. Kariston Pereira6 Introdução Arrays unidimensionais, mais conhecidas como VETORES, são amplamente utilizadas em programação. A declaração geral de vetores em C é: tipo_de_dado nome[tamanho]; int numeros[30]; Os colchetes determinam que a variável é um vetor, e o número entre os mesmo determina seu tamanho. Observação: Em C, todo vetor tem 0 (zero) como o índice do seu primeiro elemento.

7 UDESC – Prof. Kariston Pereira7 Indexação Vetores

8 UDESC – Prof. Kariston Pereira8 Inicialização de Vetores C permite a inicialização de vetores no momento de sua definição, da mesma forma que variáveis simples. Exemplo: int numeros[5] = {0,1,2,3,4}; char nome[8] = “EXEMPLO”; float reais[2][2] = {0,0,0,0};

9 UDESC – Prof. Kariston Pereira9 Inicialização de Vetores

10 UDESC – Prof. Kariston Pereira10 Dualidade Vetor - Ponteiro Uma variável do tipo vetor pode ser visto como um ponteiro para a primeira entrada do vetor. Consequentemente, o acesso a um elemento do vetor pode ser feito através do operador *. Dado um vetor A de tamanho N: *A ≡ A[0]; A ≡ &A[0]; A+i ≡ &A[i], com 0 ≤ i < N; *(A+i) ≡ A[i], com 0 ≤ i < N.

11 UDESC – Prof. Kariston Pereira11 Dualidade Vetor - Ponteiro

12 UDESC – Prof. Kariston Pereira12 Argumentos (parâmetros) para Funções Arrays não suportam passagem por valor; apenas passagem por referência. Na passagem do vetor para uma função utiliza-se apenas seu nome, sem índices: int vet[10];... func(vet);

13 UDESC – Prof. Kariston Pereira13 Parâmetros de Funções Quando uma função recebe um vetor como parâmetro formal, a mesma pode ser definida de três formas: Como ponteiro: void funcao(int *vet) { Como vetor dimensionado: void funcao(int vet[10]) { Como vetor não dimensionado: void funcao(int vet[]) {

14 UDESC – Prof. Kariston Pereira14 Strings Strings são conjuntos de caracteres. É o uso mais comum de vetores em C. Cria o efeito de um novo tipo de dado, destinado a armazenar palavras ou frases. Observação: Strings são terminadas por um caractere nulo (\0). Por isso, é necessário declará-las sempre com uma posição a mais do que se necessita: char palavra[31]; // armazenas palavras de até 30 caracteres.

15 UDESC – Prof. Kariston Pereira15 Strings Uma vez que strings são vetores de caracteres e não um tipo de dado primitivo, existem algumas restrições a operadores relacionais. char palavra[21];... palavra = “teste”; // incorreto! if(palavra == “teste”) { // incorreto! Observação: Utiliza-se aspas duplas no tratamento de strings, e não aspas simples como em char.

16 UDESC – Prof. Kariston Pereira16 Funções de Manipulação de Strings Para superar estas limitações, existem funções padrões para manipulação de strings, pertencentes a biblioteca string.h As mais utilizadas são: strcpy() strlen() strcmp() strcat()

17 UDESC – Prof. Kariston Pereira17 strcpy() / strlen() strcpy(s1,s2); Copia a string s2 em s1. Substitui o operador =, utilizado pelos outros tipos de dados. strlen(s1); Retorna o tamanho de s1.

18 UDESC – Prof. Kariston Pereira18 strcmp() / strcat() strcmp(s1,s2); Compara s1 e s2 retornando: 0 se s1 e s2 são iguais; Menor que 0, se s1 < s2; Maior que 0, se s1 > s2. Substitui o operador ==, utilizado pelos outros tipos de dados. strcat(s1,s2); Concatena s2 ao final de s1.

19 UDESC – Prof. Kariston Pereira19 Arrays Multidimensionais Seção 3 Introdução Indexação Matrizes Parâmetros para Funções Matrizes de strings Inicialização de Matrizes

20 UDESC – Prof. Kariston Pereira20 Introdução C suporta matrizes multidimensionais. A exemplo dos vetores, são utilizados colchetes para indicar as dimensões: int matriz[5][5] // matriz 5x5 float dados[3][3][3] // matriz 3x3x3 Não é comum a utilização de matrizes de três ou mais dimensões devido à quantidade de memória de que elas necessitam.

21 UDESC – Prof. Kariston Pereira21 Indexação Matrizes Bidimensionais

22 UDESC – Prof. Kariston Pereira22 Parâmetros de Funções Quando uma matriz multidimensional é usada como parâmetro de função, não é necessário definir sua primeira dimensão. Desta forma, ambas as definições abaixo são válidas: void func(int mat[10][10]) { void func(int mat[][10]) {

23 UDESC – Prof. Kariston Pereira23 Matrizes de Strings É muito comum, em programação, a utilização de vetores de strings. Em C, para se criar um vetor de strings, usa-se um array bidimensional de char. O tamanho do índice esquerdo indica o número de strings e o tamanho do índice direito o comprimento de cada string. Ex.: char nomes[10][41];

24 UDESC – Prof. Kariston Pereira24 Leitura de Matrizes de Strings #include #define SIZE 10 int main(){ char lista_nomes[SIZE][31]; int cont; for(cont=0; cont<SIZE; cont++) { printf("INFORME O %i NOME: ", cont+1); gets(lista_nomes[cont]); // mais comun //scanf("%s", &lista_nomes[cont]); ou scanf("%s", &lista_nomes[cont][0]); } puts(“\n** NOMES INFORMADOS **"); for(cont=0; cont<SIZE; cont++) printf("\n%s ", lista_nomes[cont]); getch(); }


Carregar ppt "Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)"

Apresentações semelhantes


Anúncios Google