capítulo - 1 tipos abstratos de dados
DESCRIPTION
Entender o conceito de Tipos Abstratos de Dados, e o modo de utilizá-lo no desenvolvimento de programasTRANSCRIPT
-
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!