Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tipos Abstratos de Dados ESTRUTURA DE DADOS Objetivos de Aprendizagem Identificar os princípios teóricos referentes ao desenvolvimento cognitivo postulados por Piaget. Descrever a lógica das estruturas mentais do estágio pré-operatório. Aplicar os princípios básicos da teoria piagetiana em uma proposta pedagógica. Objetivos de Aprendizagem Identificar os principais métodos de programação de TAD; Aplicar os conceitos de geração e manipulação de TAD em uma linguagem de programação; Avaliar as principais estratégias de criação e manipulação de TAD em uma linguagem de programação. Tipos Abstratos de Dados Os tipos e estruturas de dados existem para serem usados pelo programa para acessar informações neles armazenadas, por meio de operações apropriadas. Do ponto de vista do programador, muitas vezes é conveniente pensar nas estruturas de dados em termos das operações que elas suportam, e não da maneira como elas são implementadas. Uma estrutura de dados definida dessa forma é chamada de um Tipo Abstrato de Dados (TAD). Tipos Abstratos de Dados Abstração: visão ou representação de uma entidade que incluí apenas os atributos mais significativos ou mais importantes para um problema. Um tipo abstrato de dado é um tipo de dado que satisfaz duas condições: A representação dos objetos do tipo é escondida da unidade de programa que usa o tipo (encapsulamento / ocultação de informação); A declaração do tipo e dos protocolos das operações sobre objetos do tipo (interface do tipo) estão contidas em uma única unidade sintática. Tipos Abstratos de Dados (TADs) Agrupa a estrutura de dados juntamente com as operações que podem ser feitas sobre esses dados. O TAD encapsula a estrutura de dados. Os usuários do TAD só tem acesso a algumas operações disponibilizadas sobre esses dados. ● Usuário do TAD x Programador do TAD Tipos Abstratos de Dados (TADs) Dessa forma, o usuário pode abstrair da implementação específica. Qualquer modificação nessa implementação fica restrita ao TAD. A escolha de uma representação específica é fortemente influenciada pelas operações a serem executadas. Tipos Abstratos de Dados (TADs) Vantagens: ● Reuso: uma vez definido, implementado e testado, o TAD pode ser acessado por diferentes programas; ● Manutenção: mudanças na implementação do TAD não afetam o código fonte dos programas que o utilizam (decorrência do ocultamento de informação); ● Correção: TAD foi testado e funciona corretamente. Tipos Abstratos de Dados (TADs) Exemplos: Tipo float Tipo Pilha (Criar, Inserir, Remover, Top...) Tipos Abstratos de Dados (TADs) Em C/C++ os mecanismos de encapsulamento são as classes e estruturas: ● Os dados são chamados de dados membros ● As funções são chamadas de funções membros ● Os membros podem ser da classe ou ou da instância ● Todas as instâncias de uma classe compartilham um cópia das funções membros ● Cada instância da classe tem sua cópia dos dados membros ● As instâncias podem ser estáticas, dinâmica na pilha ou dinâmicas no heap (new e delete) Tipos Abstratos de Dados (TADs) Tipos Abstratos de Dados em C... Tipos Abstratos de Dados em C Módulos e Compilação em Separado: ● Arquivos fontes (arquivos com extensão .c) ● Implementações das funções. ● Arquivos de cabeçalhos (arquivos com extensão .h) ● contém apenas os cabeçalhos das funções e, eventualmente, os tipos de dados que ele exporte (typedef’s, struct’s, etc). Tipos Abstratos de Dados em C TAD Ponto Tipos Abstratos de Dados em C O que é um Ponto? Características? Operaçôes? Tipos Abstratos de Dados em C Coordenadas x e y Criar Liberar Acessar Atribuir Distância Tipos Abstratos de Dados em C Arquivo .h? Ponto.h /* TAD: Ponto (x,y) */ typedef struct ponto Ponto; Ponto* criar (float x, float y); void liberar (Ponto* p); void acessar (Ponto* p, float* x, float* y); void atribuir (Ponto* p, float x, float y); float distancia (Ponto* p1, Ponto* p2); Tipos Abstratos de Dados em C Arquivo .c? Ponto.c #include <stdlib.h> #include <stdio.h> #include <math.h> #include "ponto.h" Ponto.c struct ponto { float x; float y; }; TAD Ponto ● Acrescente novas operações ao TAD ponto, tais como soma e subtração de pontos. ● TAD LINHA.... ● TAD CUADRADO.... ● TAD MATRIZ.... ● TAD PESSOA.... ● TAD ALUNO.... Tipos Abstratos de Dados ESTRUTURA DE DADOS
Compartilhar