Estruturas de Dados Heterogêneas (struct)

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Um programa em C Bibliotecas Variáveis globais
Linguagem de Programação VI Tipos de Dados Compostos - structs
Nivelamento de C: Tipos Estruturados de Dados
Programação II Estruturas de Dados
Introdução à Programação
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.
Algoritmos Escher.
AULA – Linguagem C – Vetores, Ponteiros e Estruturas
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.
Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Programação II Estruturas Professora: Norminda Luiza.
Universidade de Brasília
Linguagem C Strings.
Linguagem C Funções.
Estruturas de Dados Heterogêneas (struct)
Vetores, Matrizes e Funções
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Slides: Prof. João Fabro UTFPR - Curitiba
Linguagem C Strings.
Armazenamento de Dados em Arquivos
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Matrizes e Funções - Continuação
Slides: Prof. SIMÃO Revisão: Prof. João Fabro
Slides: Prof. João Fabro UTFPR - Curitiba
Fundamentos de Programação 1
Ponteiros.
Escola Secundária c/ 3º CEB da Batalha
Classes e objetos Arrays e Sobrecarga
Vamos agora aprender a utilizar estruturas.
O Portal do Estudante de Computação
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
exercícios listas encadeadas
Introdução a Computação e Cálculo Numérico
PROGRAMAÇÃO ESTRUTURADA II
Linguagem de Programação II Parte VII
Tipos Abstratos de Dados
1 Tipos Abstratos de Dados Pilhas e Filas TPA – 2008 –1 Prof. Mateus Costa.
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.
Estrutura de Dados Avançada
Tipos Estruturados de Dados
Seminário 1: Revisão de C
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Aula 10 - Armazenamento de Dados em Registros
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Introdução à Linguagem C
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Comando de Seleção switch
Programação de Computadores I – Arquivos
Aula Prática 3 Funções Monitoria Introdução à Programação.
PCI- Registros Profa. Mercedes Gonzales Márquez. Conceito Variáveis compostas heterogêneas (não homogêneas) Estruturas: variáveis que podem conter uma.
Linguagem de Programação
1 Introdução à Linguagem C Strings Deise Saccol Adaptado de slides das Profas. Patrícia Jaques e Mônica Py.
1 Introdução à Linguagem C Strings Deise Saccol Adaptado de slides das Profas. Patrícia Jaques e Mônica Py.
Linguagem de Programação II
Estruturas Homogêneas – Vetores e Matrizes
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 Slides 11 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “ Struct, Union, Enum, Typedef ”
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Estruturas Homogêneas - Vetores
Transcrição da apresentação:

Estruturas de Dados Heterogêneas (struct) Linguagem C Estruturas de Dados Heterogêneas (struct)

Estruturas (struct) “structs” são Estruturas de Dados Heterogêneas Uma estrutura agrupa várias variáveis numa só. Funciona como uma espécie de “ficha”. A ficha armazena diversos dados relacionados, porém de tipos diferente. A estrutura, então, serve para agrupar um conjunto de dados não similares, formando um novo tipo de dados.

Estruturas (struct) Declaração: struct nome_do_tipo_da_estrutura Onde: { tipo_campo1 nome_campo1; tipo_campo2 nome_campo2; ... } variáveis_que_armazenam_a_estrutura; Onde: tipo_campo1, tipo_campo2: tipos de dados em C (char, int, float, double, char[])

Estruturas (struct) Exemplo: struct tipo_ficha_cadastral { char nome[50]; long int RA; int idade; } aluno1, aluno2; strcpy(aluno1.nome , “Joao da Silva”); aluno1.RA = 992042; aluno1.idade = 21; strcpy(aluno2.nome , “Jose dos Santos”); aluno2.RA = 899932; aluno2.idade = 19;

Estruturas (struct) Exemplo 1: { char nome[50]; long int RA; struct tipo_ficha_cadastral { char nome[50]; long int RA; int idade; } aluno1, aluno2; strcpy(aluno1.nome , “Joao da Silva”); aluno1.RA = 992042; aluno1.idade = 21; strcpy(aluno2.nome , “Jose dos Santos”); aluno2.RA = 899932; aluno2.idade = 19;

Estruturas (struct) Exemplo 2: struct data { int dia, mes, ano; } data1, data2; data1.dia = 23; data1.mes = 11; data1.ano = 1971; data2.dia = 15; data2.mes = 9; data2.ano = 2008;

Estruturas (struct) Exemplo 2: É possível calcular quantos anos tem uma pessoa que nasceu na “data1”, se hoje é “data2”?

Estruturas (struct) Exemplo 2: É possível calcular quantos anos tem uma pessoa que nasceu na “data1”, se hoje é “data2”? int idade; idade = data2.ano – data1.ano; if ( data1.mes > data2.mes ) idade = idade - 1; else if (p.mes == mes) if (p.dia > dia)

Estruturas (struct) Exemplo 2: É possível calcular quantos anos tem uma pessoa que nasceu na “data1”, se hoje é “data2”? Será que conseguimos fazer uma função que calcule isto?

Estruturas (struct) Exemplo 2: É possível calcular quantos anos tem uma pessoa que nasceu na “data1”, se hoje é “data2”? Será que conseguimos fazer uma função que calcule isto? Que tal “int calc_idade(struct data d1, struct data d2)”?

Estruturas (struct) int calc_idade(struct data d1, struct data d2 ) { int idade; idade = d2.ano – d1.ano; if ( d1.mes > d2.mes ) idade = idade - 1; else if (d1.mes == d2.mes) if (d1.dia > d2.dia) return(idade); }

Estruturas (struct) struct data { int dia, mes, ano; } data1, data2; int calc_idade(struct data d1, struct data d2); int main(){ int idade_calculada; data1.dia = 23;data1.mes = 11; data1.ano = 1971; data2.dia = 15;data2.mes = 9;data2.ano = 2008; idade_calculada = calc_idade(data1, data2); printf(“A idade do prof. eh %d anos!\n”, idade_calculada); }

Estruturas (struct) Exercício: Criar um programa que permita ao usuário digitar um número N(N<52), e em seguida os nomes e datas de nascimento de N alunos. Em seguida, pedir ao usuário para digitar uma idade, e o programa deve imprimir os nomes e idades dos alunos com idade menor que a digitada;

Estruturas Compostas(struct) Declaração Estruturas Compostas: struct nome_do_tipo_da_estrutura { struct nome_de_outra_estrutura nome_campo1; tipo_campo2 nome_campo2; ... } variáveis_que_armazenam_a_estrutura; Desta forma, uma estrutura pode ser parte de outra estrutura!

Estruturas Compostas(struct) Exemplo: struct tipo_data { int dia, mes, ano; } struct tipo_ficha_cadastral char nome[50]; struct tipo_data nascimento; int idade; } aluno1; strcpy(aluno1.nome , “Joao da Silva”); aluno1.nascimento.dia = 11; aluno1.nascimento.mes = 2; aluno1.nascimento.ano=1990;

Estruturas (struct) Exercício: Criar um programa em C que leia 4 pontos num plano cartesiano, e o armazene na estrutura “retângulo” definida abaixo, verificando se os 4 pontos formam realmente um retângulo. struct ponto { int x; int y; }; struct retangulo { struct ponto p1; struct ponto p2; struct ponto p3; struct ponto p4; } ret1;