Escolar Documentos
Profissional Documentos
Cultura Documentos
11 de maro de 2015
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Introduo
Algoritmo
Soluo para determinado tipo de problema
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Introduo
Algoritmo
Soluo para determinado tipo de problema
Programa
Formulaes concretas de algoritmos
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Representao de dados
Definio
Dados podem ser representados(estruturados) de diferentes
maneiras
A representao determinada pelas operaes realizadas
sobre os dados
Exemplo
Representao por palitos: ll + lll = lllll
Representao decimal: 1278 + 321 = 1599
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Representao de dados
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Estrutura de Dados
Definio
Conjunto de dados que representa uma situao real
Abstrao da realidade
Estrutura de dados e algoritmos esto intimamente ligadas
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Isolamento
Modificar a implementao do TAD sem modificar o cdigo que
usa o TAD e vice-versa.
Reuso
TAD pode ser reaproveitado em vrios programas ou mdulos.
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
i n t main ( ) {
Lista L;
int x ;
void i n s e r e ( i n t x , Lista L) {
for ( i ==0;...) { . . . }
L[ i ] = x ;
}
x = 20;
FazListaVazia (L) ;
I n s e r e (x , L) ;
...
}
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Implementao
Utilizando C
Vamos utilizar os conceitos para implementao dos TADs em C:
Typedef
Structs
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Estruturas (Structs) em C
Definio
Uma struct uma coleo de uma ou mais variveis, possivelmente
de tipos diferentes, colocadas juntas sob um nico nome para
manipulao conveniente
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Estruturas (Structs) em C
Definio
Uma struct uma coleo de uma ou mais variveis, possivelmente
de tipos diferentes, colocadas juntas sob um nico nome para
manipulao conveniente
Exemplo 1: Aluno
Para representao de um aluno so necessrios as informaes:
Nome
Matrcula
Coeficiente
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Estruturas (Structs) em C
Exemplo 2: Sensor
Para representao de um sensor so necessrios as informaes:
Coordenada X
Coordenada Y
ID
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Estruturas (Structs) em C
Exemplo 2: Sensor
Para representao de um sensor so necessrios as informaes:
Coordenada X
Coordenada Y
ID
Vantagens
Ao invs de criar trs ou mais variveis, possvel criar uma nica
varivel contendo todos os campos
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Estruturas (Structs) em C
Observao
Em C, usa-se a construo struct para representar esse tipo de
dado
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Estruturas (Structs) em C
#i n c l u d e < s t d i o . h>
#i n c l u d e < s t r i n g . h>
s t r u c t Aluno {
c h a r nome [ 5 0 ] ;
int matricula ;
char conceito ;
} ;
i n t main ( ) {
s t r u c t Aluno a l , aux ;
s t r c p y ( a l . nome , " P e d r o " ) ;
a l . m a t r i c u l a = 200712;
al . c o e f i c i e n t e = 5;
aux = a l ;
p r i n t f ( "%s " , a u x . nome ) ;
return
0;
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Estruturas (Structs) em C
nome
mat coefi
#i n c l u d e < s t d i o . h>
#i n c l u d e < s t r i n g . h>
s t r u c t Aluno {
c h a r nome [ 5 0 ] ;
int matricula ;
char conceito ;
} ;
i n t main ( ) {
s t r u c t Aluno a l , aux ;
s t r c p y ( a l . nome , " P e d r o " ) ;
a l . m a t r i c u l a = 200712;
al . c o e f i c i e n t e = 5;
aux = a l ;
p r i n t f ( "%s " , a u x . nome ) ;
return
0;
al :
aux :
Pedro
200712
Pedro
200712
Tutoria Aeds1 - EC / SI
coefi
coefi
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Declarao de Tipos
i n t main ( ) {
Tipo Aluno a l ;
Vetor v ;
...
}
typedef
int [10]
Vetor ;
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
TADs em C
Implementao
Para implementar um Tipo Abstrato de Dados em C, usa-se a
definio de tipos juntamente com a implementao de funes que
agem sobre aquele tipo
Boas Tcnicas
Evita-se acessar o dado diretamente, fazendo o acesso s
atravs das funes
Implementar os TADs em arquivos separados do programa
principal
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
TADs em C
Boas Tcnicas
So geralmente separados em dois arquivos:
NomeDoTAD.h : com a declarao
NomeDoTAD.c : com a implementao
Para o programa ou outros TADs que utilizam o seu TAD devem
dar um #include no arquivo.h
Tutoria Aeds1 - EC / SI
Introduo
Tipo Abstratos de Dados(TAD)
Implementao
Exerccio
Implemente um TAD ContaBancaria, com os campos nmero e
saldo onde os clientes podem fazer as seguintes operaes:
Iniciar uma conta com um nmero e saldo inicial
Depositar um valor
Sacar um valor
Imprimir o saldo
Faa um pequeno programa para testar o seu TAD
Tutoria Aeds1 - EC / SI