Upload
leandro-dos-santos
View
216
Download
3
Embed Size (px)
DESCRIPTION
Entender o conceito de Tipos Abstratos de Dados, e o modo de utilizá-lo no desenvolvimento de programas
Citation preview
Estruturas de Dados com
Jogos
Captulo 1
Tipos Abstratos de Dados
Seus Objetivos neste
Captulo
Entender o conceito de Tipos Abstratos de
Dados, e o modo de utiliz-lo no desenvolvimento de programas;
Perceber que o uso de Tipos Abstratos de Dados d ao software maior portabilidade, maior potencial para reutilizao, reduz custos de desenvolvimento e de manuteno;
Conscientizar-se quanto a importncia de adotar uma estratgia que agregue portabilidade e reusabilidade aos jogos que voc desenvolver.
Fases do Desenvolvimento de
Software
Manuteno
Anlise
Implementao
Teste
Projeto
Tipo Abstrato de Dados
Definio - Tipo Abstrato de Dados - TAD:
Um Tipo Abstrato de Dados TAD - constitudo por um conjunto de Dados a serem armazenados, e por um grupo
de Operadores que podem ser aplicados para
manipulao desses Dados.
Manipulao dos Dados Armazenados:
O armazenamento e a recuperao dos Dados devem ser
realizados exclusivamente atravs dos Operadores do
TAD.
Em Que Momento Identificar e Projetar um TAD:
Na fase de Projeto do software.
Exemplo: FreeCell
TAD Pilha Intermediria do FreeCell Coleo de
Dados a Serem Armazenados
Operadores Para Manipulao
Para cada uma das
Pilhas Intermedirias:
As cartas que
esto na pilha -
valor e naipe de
cada carta;
A sequncia das
cartas na pilha.
Retira a carta que
est no topo da pilha;
Coloca uma carta
no topo da pilha,
se o valor estiver
na sequncia correta.
Operaes do TAD Pilha
Intermediria
Desempilha (Pilha, Carta, DeuCerto)
EmpilhaNaSequncia (Pilha, Carta, DeuCerto)
EmpilhaSempre (Pilha, Carta)
Exerccio 1.1 Transfere Carta
TransfereCarta (parmetros por referncia PilhaOrigem, PilhaDestino do tipo PilhaIntermediria, parmetro por referncia
DeuCerto do tipo Boolean)
/* Transfere uma carta da Pilha Origem para a PilhaDestino, caso a
carta estiver na sequencia correta na PilhaDestino. O parmetro
DeuCerto retornar o valor Verdadeiro se uma carta for efetivamente
transferida, e o valor Falso caso contrrio */
TransfereCarta (parmetros por referncia PilhaOrigem, PilhaDestino do tipo
PilhaIntermediria, parmetro por referncia DeuCerto do tipo Boolean) {
Varivel Carta do tipo Carta-do-Baralho;
Varivel ConseguiuRetirar do tipo Boolean;
Varivel ConseguiuEmpilhar do tipo Boolean;
/* Tenta retirar Carta do topo da PilhaOrigem */
Desempilha(PilhaOrigem, Carta, ConseguiuRetirar);
Se (ConseguiuRetirar =- Verdadeiro)
Ento { /* empilha na Pilha Destino, se estiver na sequncia correta */
EmpilhaNaSequncia(PilhaDestino, Carta, ConseguiuEmpilhar);
Se (ConseguiuEmpilhar == Verdadeiro)
Ento DeuCerto = Verdadeiro;
Seno { /* carta no est na sequncia correta e deve retornar
PilhaOrigem */
EmpilhaSempre(PilhaOrigem, Carta);
DeuCerto = Falso;
};
};
Seno DeuCerto = Falso;
}
Qual a Melhor Maneira de
Aumentar o Volume da TV?
Qual a Melhor Maneira de
Aumentar o Volume da TV? Operadores do TAD ou Botes da TV
Pilha de Cartas:
Retira a carta que est no topo da
pilha;
Coloca uma carta no topo da pilha, se o valor estiver na sequncia
correta.
TV:
1. Aumenta o volume;
2. Diminui o volume;
3. Muda de canal (1 canal acima);
4. Muda de canal (1 canal abaixo).
O Que um Bom Programa?
struct Node {
char Info;
struct Node *Next; };
typedef struct Node *NodePtr;
NodePtr P;
P = new Node;
O Que um Bom Programa?
Portabilidade de Software: capacidade de
executar em diferentes plataformas de
hardware e software.
Reusabilidade de Software: capacidade de
aproveitar (reutilizar) um software j
desenvolvido, para satisfazer uma segunda
necessidade.
Vantagens da Utilizao de Tipos
Abstratos de Dados
mais fcil programar, sem se preocupar com detalhes de implantao;
mais fcil preservar a integridade dos dados;
Maior independncia e portabilidade de cdigo;
Maior potencial de reutilizao de cdigo.
O uso do conceito de Tipos Abstratos de Dados aumenta
a Portabilidade e o potencial de Reutilizao do
software. Em consequncia disso, o custo de
desenvolvimento e manuteno reduzido.
Software Bom, Bonito e Barato
Estruturas de Dados com Jogos Aprender a programar pode ser divertido!