capítulo - 1 tipos abstratos de dados

14
Estruturas de Dados com Jogos Capítulo 1 Tipos Abstratos de Dados

Upload: leandro-dos-santos

Post on 18-Dec-2015

216 views

Category:

Documents


3 download

DESCRIPTION

Entender o conceito de Tipos Abstratos de Dados, e o modo de utilizá-lo no desenvolvimento de programas

TRANSCRIPT

  • 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!