22
E STRUTURA DE D ADOS Prof. Dr. Daniel Caetano 2014 - 2 E STRUTURAS

ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

ESTRUTURA DE DADOS

Prof. Dr. Daniel Caetano

2014 - 2

ESTRUTURAS

Page 2: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Objetivos

• Compreender o que são estruturas

• Compreender sua aplicação

• Capacitar para implementar programas com estruturas

• Atividade Estruturada!

Page 3: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Material de Estudo

Material Acesso ao Material

Apresentação http://www.caetano.eng.br/ (Aula 10)

Material Didático Estruturas de Dados (Parte 1) – Páginas 36 a 41

Page 4: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

RECORDANDO...

Page 5: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Recordando...

• Vimos...

– Listas Ordenadas / Não Ordenadas

– Pilhas

– Filas

• Só armazenar dados desagregados?

• E se quiser armazenar um aluno?

– Matricula - int

– Nota - float

• Usar dois vetores?

Page 6: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

TIPOS ABSTRATOS DE DADOS

Page 7: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Tipos Abstratos de Dados

• Linguagem traz alguns tipos de dados

– int, float, char etc.

• E se precisarmos de um diferente?

– Data: dia, mês, ano

– Cliente: cpf, nome, cartão de crédito

– Aluno: matrícula e nota

• Como fazer?

– Criar um tipo abstrato de dado

Page 8: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Tipos Abstratos de Dados

• Struct struct aluno {

int matricula;

float nota;

};

• Como usar isso? struct aluno umAluno;

umAluno.matricula = 103567;

umAluno.nota = 7.5;

Page 9: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Tipos Abstratos de Dados

• Acompanhe o exemplo:

– Implementanto um tipo de dado “aluno”.

Page 10: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Tipos Abstratos de Dados

• Acompanhe outro exemplo:

– Passando um “aluno” como parâmetro de função.

Page 11: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Tipos Abstratos de Dados

• Acompanhe outro exemplo:

– Vetores de “alunos”.

Page 12: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Tipos Abstratos de Dados

• Acompanhe outro exemplo:

– Passando vetores de “alunos” como parâmetro.

Page 13: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Tipos Abstratos de Dados

• Acompanhe outro exemplo:

– Usando “alunos” em estruturas de dados...

– Observe que podemos “copiar” o conteúdo de um aluno para outro simplesmente assim:

struct aluno umAluno, outroAluno;

umAluno.matricula = 103567;

umAluno.nota = 7.5;

outroAluno = umAluno;

Isso não ocorre na

linguagem C!!

Page 14: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

IMPLEMENTAÇÕES PRÁTICAS

Page 15: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Exemplo de Implementação

• Vamos criar uma lista de contatos?

– Nome: no máximo 50 caracteres

– Telefone: no máximo 20 caracteres

Page 16: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Exemplo de Implementação

• Vamos implementar pilha usando estrutura?

Page 17: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

PERGUNTAS?

Page 18: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

CONCLUSÕES

Page 19: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Resumo • Tipos Abstratos de Dados (structs) tornam as

estruturas de dados muito mais poderosas

• Além do uso normal das variáveis, podemos verificar e usar seus endereços...

• Que serão importantes para criar estruturas de dados de tamanho indeterminado!

• Como lidar com listas de tamanhos variáveis?

Page 20: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

EXERCÍCIOS DE FIXAÇÃO

Page 21: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Exercício 1 • Baixe a “base” da aula de hoje e, com base no

arquivo exercicio1, modifique o programa para que apenas alunos com nota igual ou superior a 6.0 tenham sua matrícula impressa.

Page 22: ESTRUTURA DE ADOS - Caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · Tipos Abstratos de Dados •Linguagem traz alguns tipos de dados –int, float, char etc. •E

Exercício 2 • Baixe a “base” da aula de hoje e, com base no

arquivo exercicio2, modifique o programa para que ele empilhe as cartas do baralho e depois desempilhe-as.