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

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

APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C - 2010 AULA 08: Tipos Estruturados.

Apresentações semelhantes


Apresentação em tema: "APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C - 2010 AULA 08: Tipos Estruturados."— Transcrição da apresentação:

1 APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C - 2010 AULA 08: Tipos Estruturados

2 1. Tipo estrutura Tipos básicos: char; int; float; double; Nome: Cadeia com até 80 caracteres Matrícula: Número inteiro Endereço: Cadeia com até 120 caracteres Telefone: Cadeia com até 20 caracteres Para estruturar dados mais complexos é necessário agrupar tipos distintos. Exemplo: Criação de uma tabela com as informações dos alunos. char nome int matricula; char endereco int telefone; Novo Tipo!

3 1. Tipo estrutura Exemplo: Manipulação de pontos de um sistema cartesiano X (x,y) Y Como seria a representação desses pontos no programa? float x; float y;

4 1. Tipo estrutura Uma forma alternativa para representar esses pontos é através da criação de uma estrutura. struct ponto{ float x; float y; }; A estrutura ponto passa a ser um novo tipo! Essa linha não declara nenhuma variável. Declaração de uma variável do tipo ponto. struct ponto p; Acesso aos elementos de uma estrutura. p.x = 10.0; p.y = 5.0;

5 1. Tipo estrutura Exemplo: #include struct ponto { float x; float y; }; int main (void) { struct ponto p; printf("Digite as coordenadas do ponto(x y): "); scanf("%f %f", &p.x, &p.y); printf("O ponto fornecido foi: (%.2f,%.2f)\n", p.x, p.y); return 0; } p é variável local. Ou ainda &(p.x)

6 1. Tipo estrutura Exemplo: #include struct ponto { float x; float y; }; int main (void) { struct ponto p; printf("Digite as coordenadas do ponto(x y): "); scanf("%f %f", &p.x, &p.y); printf("O ponto fornecido foi: (%.2f,%.2f)\n", p.x, p.y); return 0; } Espaço na memória para declaração de p será 8 bytes: 4 bytes da variável x + 4bytes da variável y.

7 2. Ponteiro para estruturas Exemplo: struct ponto p; Variável do tipo ponto. Variável do tipo ponteiro para ponto.Armazena o endereço de uma estrutura. struct ponto *pp; Para acessar os campos de uma estrutura através de seu ponteiro: (*pp).x = 12; Ou pp->x = 12;

8 3. Passagem de estruturas para funções Exemplo: Imprimir os valores em outra função #include struct ponto { float x; float y; }; void imprime (struct ponto p) { printf("O ponto fornecido foi: (%.2f,%.2f)\n", p.x, p.y); } int main (void) { struct ponto p; printf("Digite as coordenadas do ponto(x y): "); scanf("%f %f", &p.x, &p.y); imprime(p); return 0; } 1 – Eficiência 2 – Necessidade de alterar o valor dentro da função.

9 3. Passagem de estruturas para funções Exemplo: Imprimir os valores em outra função #include struct ponto { float x; float y; }; void imprime (struct ponto *p) { printf("O ponto fornecido foi: (%.2f,%.2f)\n", p->x, p->y); } int main (void) { struct ponto p; printf("Digite as coordenadas do ponto(x y): "); scanf("%f %f", &p.x, &p.y); imprime(&p); return 0; }

10 3. Passagem de estruturas para funções Exemplo: Capturar os valores em outra função #include struct ponto { float x; float y; }; void captura (struct ponto *p) { printf("Digite as coordenadas do ponto(x y): "); scanf("%f %f", &p->x, &p->y); } int main (void) { struct ponto p; captura(&p); printf("O ponto fornecido foi: (%.2f,%.2f)\n", p.x, p.y); return 0; } Ou... &(*p).x, &(*p).y);

11 4. Definição de novos tipos A linguagem C permite criar nomes de tipos: typedef float Real; Criação de um novo nome. Declaração de variável. Real a = 2; Aplicação: struct ponto { float x; float y; }; struct ponto p; struct ponto { float x; float y; }; typedef struct ponto Ponto; Ponto p; Declaração de variável.

12 5. Vetores de estrutura Vetores estáticos: struct ponto p[10]; ou Ponto p[10]; p[0].x = 10 p[0].y = 9; p[1].x = 5;. Para acessar. struct ponto *p; p = (struct ponto*) malloc (n*sizeof(struct ponto)); ou Ponto *p; p = (Ponto*) malloc (n*sizeof(Ponto)); Vetores alocados dinamicamente:

13 6. Tipo união Tipo união: É utilizado quando queremos armazenar valores heterogêneos num mesmo espaço de memória. É uma forma prática de economizar memória. union exemplo { int i; char c; } i e c compartilham o mesmo espaço de memória. Declaração de variável. union exemplo v; Acesso aos elementos. v.i = 10; v.c = 'x';

14 7. Tipo enumeração Tipo união: Os tipos de enumeração são representados internamente por inteiros. enum dias { segunda,terca,quarta,quinta,sexta,sabado,domingo } Declaração de variável. enum dias dia1,dia2; Acesso aos elementos. dia1= segunda; dia2= terca; O compilador associa o valor 0 a segunda, 1 a terca, 2 a quarta e assim por diante.


Carregar ppt "APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C - 2010 AULA 08: Tipos Estruturados."

Apresentações semelhantes


Anúncios Google