estrutura de ados - caetano › aulas › 2014b › getfile.php?fn=ed_aula10.pdf · tipos abstratos...
TRANSCRIPT
![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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060503/5f1c8f9f41973641f550cb3f/html5/thumbnails/22.jpg)
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.