estruturas de dados · objetivos das estruturas de dados objetivo prático: implementar tdas,...
TRANSCRIPT
![Page 1: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/1.jpg)
Estruturas de Dados
Slide 0116/03/2017
@Cleziel
/Cleziel
Prof. Cleziel Franzoni da Costa
1
![Page 2: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/2.jpg)
42
![Page 3: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/3.jpg)
EMENTA
Listas lineares e suas variações. Filas e pilhas. Árvores binárias
e suas variações. Utilização de uma linguagem de
programação.
3
![Page 4: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/4.jpg)
Conteúdo Programático / Cronograma
Aula 01 16/03/2017 Introdução às Estruturas de Dados
Aula 02 17/03/2017 Listas
Aula 03 18/03/2017 Pilhas
Aula 04 23/03/2017 Filas
Aula 05 24/03/2017 Listas Encadeadas
Aula 06 25/03/2017 Listas Ordenadas
Aula 07 30/03/2017 Recursividade
Aula 08 31/03/2017 Aplicações de Estruturas da Dados
Aula 09 01/04/2017 Avaliação parcial de aprendizagem
Aula 10 06/04/2017 Algoritmos de Ordenação - part 1
Aula 11 07/04/2017 Algoritmos de Ordenação - part 2
Aula 12 08/04/2017 Algoritmos de Busca
Aula 13 27/04/2017 Árvores
Aula 14 28/04/2017 Árvores Binárias de Busca
Aula 15 29/04/2017 Avaliação parcial de aprendizagem
4
![Page 5: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/5.jpg)
Avaliação de Aprendizagem
Prova Teórica (80%)
Seminário sobre Estruturas de Dados (20%)
5
![Page 6: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/6.jpg)
Introdução
6
![Page 7: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/7.jpg)
Abstração de Dados
A abstração de dados é necessária sempre que resolvemos problemas
usando um computador;
Dados são manipulados a partir de um determinado conhecimento,
visando produzir novas informações:
Dados + Conhecimento = Informação
Dado e informação são conceitos relativos. Dado é o que entra no
processo, enquanto informação é o que dele sai.
7
![Page 8: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/8.jpg)
Abstração de Dados
Enquanto programadores, devemos voltar nossa atenção à duas questões
básicas:
Como representar a abstração da realidade no computador?
Como representar o conhecimento necessário para manipular essa abstração?
8
![Page 9: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/9.jpg)
Tipo de Dados Abstratos (TDA)
Um TDA é um modelo matemático definido por um conjunto de valores e
por um conjunto de operadores que atuam sobre esses valores;
As TDAs servem tanto para especificar características relevantes das
entidades envolvidas nos problemas, quanto para definir de que forma
elas se relacionam entre si e como podem ser manipuladas.
9
![Page 10: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/10.jpg)
Tipo de Dados Abstratos (TDA)
Sendo o TDA apenas um modelo matemático, sua definição não leva em
conta como os valores são armazenados na memória do computador ne
se preocupa com o tempo gasto para efetuar operações com esses
valores;
Para utilizar um TDA na solução de problemas por computados,
precisamos antes transforma-lo em um tipo de dado concreto. Esta
operação recebe o nome de implementação
10
![Page 11: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/11.jpg)
Tipo de Dados Abstratos (TDA)11
implementaçãoTipo de dados
concreto
Tipo de dados
abstrato
![Page 12: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/12.jpg)
Estruturas Primitivas (Tipos de Dados)
São os tipos de dados ou elementos primitivos que os quais são construídas
outras mais complexas;
São tipos básicos implementados na maioria das linguagens de
programação:
Inteiro ou integer (ou int);
Real (float, double);
Lógico (boolean, bool);
Caracter (char).
12
![Page 13: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/13.jpg)
Objetivos das Estruturas de Dados
Objetivo teórico: especificar TDAs e determinar que classe de problemas
podem ser resolvidas com eles;
Do ponto de vista teórico, consideramos o TDA um recurso a ser usado na
solução de problemas;
13
![Page 14: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/14.jpg)
Objetivos das Estruturas de Dados
Objetivo prático: implementar TDAs, criando representações concretas de
seus valores e projetar algoritmos para efetuar operações com elas.
Do ponto de vista prático, consideramos a implementação de um TDA como
um problema em si, que pode ser solucionado empregando outros TDAs mais
simples já implementados.
14
![Page 15: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/15.jpg)
Tipos primitivos na linguagem C
char
int
float
long int
double
15
![Page 16: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/16.jpg)
Função printf
Possibilita a saída de valores, segundo um determinado formato
previamente descrito;
Para cada valor que se deseja imprimir, deve existir um especificador de
formato correspondente na cadeia de caracteres, seguem alguns deles:
%c – char
%d (ou %i) – int
%f – double (ou float)
%s – cadeia de caracteres (strings).
16
![Page 17: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/17.jpg)
Exemplo na linguagem C17
![Page 18: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/18.jpg)
Utilizando o scanf18
![Page 19: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/19.jpg)
Utilizando Strings em C19
![Page 20: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/20.jpg)
Exercício
Crie um algoritmo, em C, para ler um valor em real e converte-lo, ao
mesmo tempo, para Euro (€) e para Dólar (US$):
Valor do dólar: R$ 3,118
Valor do Euro: R$ 3,358
20
![Page 21: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/21.jpg)
Funções e Procedimento
Função
int produto(int x, int y) {
return (x * y);
}
Procedimento
void soma(int k, int z) {
printf(“%d”, x+y);
}
21
![Page 22: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/22.jpg)
Exercício
Crie um algoritmo que utilize a função Resto, cujo objeto é imprimir na tela
o resto de uma divisão inteira;
22
![Page 23: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/23.jpg)
Exercício
Implemente um algoritmo que seja capaz de utilizar uma dentre as quatro
funções abaixo, de acordo com a escolha do usuário, em uma operação
entre dois números.
Soma(int n1, int n2);
Subtracao(int n1, int n2);
Multiplicacao(int n1, int n2);
Divisao(int n1, int n2);
23
![Page 24: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/24.jpg)
Ponteiros
Para cada tipo de dado existente, há um tipo de ponteiro que pode
armazenar endereços de memória onde existem valores do tipo
correspondente armazenados;
Ponteiros armazenam endereços de memória;
24
![Page 25: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/25.jpg)
Utilizando Ponteiros25
![Page 26: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/26.jpg)
Referências
PEREIRA, Silvio do Lago. Estruturas de dados fundamentais: conceitos e
aplicações . 12. ed.,. São Paulo: Érica, 2012. 264 p. ISBN 9788571943704;
SILVA, Osmar Quirino da. Estrutura de dados e algoritmos usando C:
fundamentos e aplicações . Rio de Janeiro, RJ: Ciência Moderna, 2007. 460
p. ISBN 9788573936117.
26
![Page 27: Estruturas de Dados · Objetivos das Estruturas de Dados Objetivo prático: implementar TDAs, criando representações concretas de seus valores e projetar algoritmos para efetuar](https://reader031.vdocuments.mx/reader031/viewer/2022021909/5be5d23d09d3f2c44d8ca2f0/html5/thumbnails/27.jpg)
Estruturas de Dados
Slide 0116/03/2017
@Cleziel
/Cleziel
Prof. Cleziel Franzoni da Costa
27