t ipos e struturados de d ados professora: fabíola gonçalves. universidade federal de uberlÂndia...

25
TIPOS ESTRUTURADOS DE DADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

Upload: internet

Post on 18-Apr-2015

111 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

TIPOS ESTRUTURADOS DE DADOS

Professora: Fabíola Gonçalves.

UNIVERSIDADE FEDERAL DE UBERLÂNDIA

ENGENHARIA CIVIL

Page 2: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

AGENDA

Estrutura de Dados Heterogênea Sintaxe Acesso as variáveis Atribuição de Valores Array de Estruturas Atribuição entre Estruturas

2

Page 3: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEA

As variáveis vistas até agora eram: Simples: definidas por tipo int, real e char; Compostas homogêneas: definidas por array;

É possível que se criem novas estruturas a partir dos tipos básicos.

3

Page 4: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEA

Estrutura: Estrutura suporta K variáveis, cada qual com um

tipo de dado próprio; Sintaxe:

estrutura nomestruct{tipo1 campo1;tipo2 campo2;...tipon campon;

};

4

Page 5: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEA

Estrutura

Ex.: estrutura cadastro {

char nome[100];int idade;char rua[50];int numero;

} ; cadastro

5

char nome[100];

int idade;

char rua[50];

int numero;

Page 6: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA - DECLARAÇÃO

Uma vez definida a estrutura, uma variável pode ser declarada de modo similar aos tipos já existente: estrutura cadastro c;

Obs: por ser um tipo definido pelo programador, usa-se a palavra estrutura antes do tipo da nova variável.

6

Palavrareservada

EstruturaJá definida

Nome variável

Page 7: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA

O uso de estruturas facilita na manipulação dos dados do programa;

Imagine ter que declarar 4 cadastros, para 4 diferentes pessoas:

char nome1[100], nome2[100], nome3[100], nome4[100];

int idade1, idade2, idade3, idade4;char rua1[50], rua2[50], rua3[50], rua4[50];int numero1, numero2, numero3, numero4;

7

Page 8: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA

Utilizando uma estrutura, o mesmo pode ser feito da seguinte maneira:

estrutura cadastro p1, p2, p3, p4, p5;

8

Page 9: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA

Exercício:

Declare uma estrutura capaz de armazenar o número de um aluno e 3 notas para um dado aluno.

9

Page 10: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA

Exercício:

Declare uma estrutura capaz de armazenar o número e 3 notas para um dado aluno.

estrutura aluno {int num_aluno;int nota1, nota2, nota3;

};

10

Page 11: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA – ACESSO ÀS VARIÁVEIS

Como é feito o acesso às variáveis da estrutura?

Cada variável da estrutura pode ser acessada com o operador “.”. Sintaxe: nomeEstrutura.nomeVariavel Ex.:

copiar(c.nome,"João");c.idade = 18;copiar(c.rua,"Avenida Brasil");c.numero = 1082;

11

Page 12: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA – ACESSO ÀS VARIÁVEIS

Como nos arrays, uma estrutura pode ser previamente inicializada:estrutura ponto {

int x;int y;

};estrutura ponto p1 = { 220, 110 };

Permite inicializar as variáveis

da estrutura.

12

Page 13: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA – ACESSO ÀS VARIÁVEIS

E se quiséssemos ler os valores das variáveis da estrutura do teclado? Resposta: basta ler cada variável

independentemente, respeitando seus tipos.

EX:leia(c.nome);escreva(c.idade);leia(c.rua);escreva(c.numero);

13

Page 14: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA – ACESSO ÀS VARIÁVEIS

Note que cada variável dentro da estrutura pode ser acessada como se apenas ela existisse, não sofrendo nenhuma interferência das outras.

Assim: Uma estrutura pode ser vista como um

simples agrupamento de dados.

14

Page 15: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA

Voltando ao exemplo anterior, se, ao invés de 5 cadastros, quisermos fazer n cadastros?

15

Page 16: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEA

ARRAY DE ESTRUTURA

SOLUÇÃO: criar um array de estruturas; Sua declaração é similar a declaração de uma

array de um tipo básico: estrutura cadastro c[100]; Desse modo, declara-se um array de 100

cadastros.

16

Page 17: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAARRAY DE ESTRUTURA

Lembrando:

estrutura: define um “conjunto” de variáveis que podem ser de tipos diferentes;

array: é uma “lista” de elementos de mesmo tipo.

Como assim?

17

Page 18: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEA

ARRAY DE ESTRUTURA

Exercício:

Utilizando a estrutura do exercício anterior, faça um programa para ler o número e as 3 notas de 10 alunos.

18

Page 19: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAARRAY DE ESTRUTURA Exercício:

Utilizando a estrutura do exercício anterior, faça um programa para ler o número e as 3 notas de 10 alunos.

estrutura aluno {int num_aluno;int nota1, nota2, nota3;

};

estrutura aluno a[10];int i;para i de 1 até 10 faça

leia(a[i].num_aluno);leia(a[i].nota1);leia(a[i].nota2);leia(a[i].nota3);

fim para

19

Page 20: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAATRIBUIÇÃO ENTRE ESTRUTURAS

Atribuições entre estruturas só podem ser feitas quando os campos são IGUAIS!

Ex.: estrutura cadastro c1,c2; c1 = c2; //CORRETO

Ex: estrutura cadastro c1; estrutura ficha c2; c1 = c2; //ERRADO!! TIPOS DIFERENTES

20

Page 21: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAATRIBUIÇÃO ENTRE ESTRUTURAS

No caso de estarmos trabalhando com arrays, a atribuição entre diferentes elementos do array também é válida;

Ex: estrutura cadastro c[10]; c[1] = c[2]; //CORRETO

Note que nesse caso, os tipos dos diferentes elementos do array são sempre IGUAIS.

21

Page 22: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA DE ESTRUTURAS

Sendo uma estrutura um tipo de dado, podemos declarar uma estrutura que utilize outra estrutura previamente definida:

estrutura endereco{char rua[50]int numero;};

estrutura cadastro{char nome[50];int idade;estrutura endereco ender;};

22

Page 23: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA DE ESTRUTURAS

Nesse caso, o acesso aos dados do endereço do cadastro é feito utilizando novamente o operador “.”;estrutura cadastro c;copia(c.nome,"João");c.idade = 18;copia(c.ender.rua,"Avenida Brasil");c.ender.numero = 1082;

23

Page 24: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

ESTRUTURA DE DADOS HETEROGÊNEAESTRUTURA DE ESTRUTURAS

Inicialização de uma estrutura de estruturas:

estrutura ponto {int x, y;};

estrutura reta { estrutura ponto inicio, fim;};

estrutura reta r = {{10,20},{30,40}};

24

Page 25: T IPOS E STRUTURADOS DE D ADOS Professora: Fabíola Gonçalves. UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL

REFERÊNCIAS

Adaptada da apresentação de André Backes;

Martins, L. G. A., Silva, A. J. Introdução à Algoritmos. Apostila da FACOM-UFU.

25