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

Slides:



Advertisements
Apresentações semelhantes
Linguagem de Programação VI Tipos de Dados Compostos - structs
Advertisements

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Listas encadeadas Prof. Rosana Palazon.
Programação II Estruturas de Dados
Programação II Estruturas de Dados
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Alocação Dinâmica de Memória
Programação II Estruturas, uniões e enumerações
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
LPG - I: Alocação Dinâmica de Memória - Ponteiros
Linguagem de Programação 1
Ponteiros em C.
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
LPG-I: Tipos Complexos - Estruturas
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo Programação II Estruturas Professora: Norminda Luiza.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
Universidade de Brasília
Vetores, Matrizes e Funções
Ponteiros em Linguagem C
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Linguagem C.
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Matrizes e Funções - Continuação
Fundamentos de Programação 1
Ponteiros.
Escola Secundária c/ 3º CEB da Batalha
Escola Secundária c/ 3º CEB da Batalha
Revisão da Linguagem C.
Vamos agora aprender a utilizar estruturas.
Vetor de Ponteiros Exemplo de Alocação. Escrever Vetor de Vetores de floats int main() { int i, k, n; float **vetor; // vetor de vetores int *tamanho;
Curso de Nivelamento LCG
1 Ponteiros Ponteiros são variáveis que guardam localizações em memória. A declaração de uma variável ponteiro x para um dado tipo type é type *x; Essa.
Definição de Tipos Estruturas e Ponteiros
CADEIA DE CARACTERES (Strings)
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
PROGRAMAÇÃO I PONTEIROS.
Estrutura de Dados Avançada
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Estruturas de Dados Aula 5: Matrizes
Introdução à Programação Orientada a Objetos com Java Paulo Borba Centro de Informática Universidade Federal de Pernambuco Programação Imperativa (e Ponteiros.
Linguagem de Programação
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Estruturas de Dados Aula 17: Estruturas Genéricas
1 Alocação Dinâmica Quando se declara arrays o tamanho deve ser fixo e definido primeiramente –Alocação estática Pode-se alocar dinamicamente o espaço.
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
Estruturas de Dados Aula 6: Cadeias de Caracteres
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Prof. Alessandro Gonçalves
Programação de Computadores I – Arquivos
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Programação de Computadores I – Ponteiros Profa. Mercedes Gonzales Márquez.
Profa. Maria Augusta Constante Puget
Ponteiros em C Prof. Kariston Pereira
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Linguagem de Programação
ponteiros Estrutura de Dados Prof. André Cypriano M. Costa
Programação de Computadores I – Arquivos Profa. Mercedes Gonzales Márquez.
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C”
Fundamentos de Programação 1
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Fundamentos de Programação 1
Transcrição da apresentação:

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

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!

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;

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;

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)

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.

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;

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.

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

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);

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.

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:

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

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.