Você está na página 1de 14

23/09/2012

SIN 110 Programao I


Prof Marcelo Zorzan, Prof Moacir Ponti Jr, Prof Murilo Naldi Profa Rachel Reis
UFV Campus Rio Paranaba

Estrutura de Dados
Muitas vezes precisamos compor os dados para formar estruturas de dados complexas Variveis compostas homogneas (Arrays)
Conjunto de variveis de mesmo tipo

Variveis compostas heterogneas


Conjunto de variveis de tipos diferentes

Chamadas de:
Estruturas (Struct) Registros (Record)

23/09/2012

Aplicao de Estruturas (1)


Estruturas podem ser usadas para armazenar informaes relacionadas Exemplo 1: Produto

Aplicao de Estruturas (2)


Exemplo 2: Ficha de cliente (cadastro)

23/09/2012

Aplicao de Estruturas (3)


Exemplo 3- Estruturas de dados complexas (Listas)

Definio de uma estrutura (registro) em C


struct identificacao_da_estrutura { tipo1 nome1; tipo2 nome2; ... tipoN nomeN; };

Uma estrutura um tipo de dado cujo formato definido pelo programador

23/09/2012

Exerccio 1
a) Crie uma estrutura Hora com os seguintes campos: Hora Minuto Segundo b) Defina uma varivel do tipo da estrutura Hora c) Atribua valores para cada um dos campos da estrutura Hora d) Imprima os valores dos campos

Exerccio 2
a) Crie uma estrutura Livro com os seguintes campos: Titulo Autor Nmero de Pginas Preo Ano de publicao b) Defina uma varivel do tipo da Estrutura Livro c) Atribua valores para cada um dos campos da estrutura Livro d) Imprima os valores dos campos

23/09/2012

Estruturas
Variveis compostas heterogneas (estruturas) so um conjunto de variveis de tipos diferentes que so logicamente relacionadas. Essas variveis compartilham o mesmo identificador e ocupam posies consecutivas de memria.

Para as variveis de uma estrutura:


Elas so denominadas membros; So identificadas por nomes.

Exemplo - Declarao
Vamos criar uma estrutura de endereo, que possa ser usada como se fosse um tipo de dado posteriormente Este cdigo deve vir no incio do programa, aps os includes
struct sEndereco { char rua[40]; int numero; char cidade[30]; char estado[2]; long int CEP; };

23/09/2012

Declarao de uma varivel do tipo identificacao_da_estrutura


struct identificacao_da_estrutura nome_da_variavel;

Exemplo - Programa
Vamos criar uma programa que use a estrutura sEndereco e atribua valores a todas as variveis da estrutura

23/09/2012

Declarando, atribuindo, imprimindo

Estruturas Rotuladas
Estruturas rotuladas criam um rtulo que pode ser referenciado posteriormente no cdigo. Criao de rtulos.

23/09/2012

Estruturas Rotuladas

Estruturas Rotuladas e Nomeadas


Uma estrutura rotulada e nomeada pode ser definida da seguinte forma:

23/09/2012

Estruturas Rotuladas e Nomeadas

Exerccio 3
3) Escreva um programa que possua uma varivel de tipo estrutura rotulada e nomeada, capaz de armazenar o nome, a idade, o sexo e o peso de uma pessoa. Teste a varivel atribuindo e lendo os valores dela.

23/09/2012

Estruturas Aninhadas
Estruturas em que um ou mais de seus membros tambm sejam estruturas.

Estruturas Aninhadas
Exemplo:

10

23/09/2012

Estruturas Aninhadas

H;

Exerccio 4

Defina um tipo de estrutura para armazenar os dados de um vo:


nomes das cidades de origem e destino, datas e horrios de partida e chegada.

Utilize a estrutura hora do exemplo anterior. Crie um programa para testar as funcionalidades criadas.

11

23/09/2012

Arrays e Estruturas
possvel combinar arrays e estruturas para criao de diferentes estruturas de dados. Podemos ter uma estrutura contendo um membro do tipo array, ou; Criar um array cujo os elementos sejam estruturas

Declarando Arrays de Estruturas


Dada a estrutura lista abaixo: struct lista { char titulo[30]; char autor[30]; int regnum; double preco; };

Membros do tipo array

a) Declare um vetor com 50 elementos do tipo lista

12

23/09/2012

Declarando arrays de Estruturas


struct lista livro[50];
livro um vetor de 50 elementos. Cada elemento do vetor uma estrutura do tipo struct lista O que significa livro[0], livro[1], livro[2], etc? ** Atravs dessa instruo o compilador providencia espao de memria para 50 estruturas do tipo struct lista.

Arrays e Estruturas Trecho de exemplo

13

23/09/2012

Arrays e Estruturas Trecho de exemplo

Arrays e Estruturas - Exemplo

14