TIPOS ABSTRATOS DE DADOS

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Curso de aprofundamento na linguagem C
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Denise Guliato Faculdade de Computação – UFU
Introdução à Ciência da Computação Linguagens de Programação.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Algoritmos de manipulação de estruturas elementares de dados
Programação para Engenharia I
TADS – Tipos Abstratos de Dados
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
Algoritmos e Estrutura de Dados I
David Menotti Estruturas de Dados I DECOM – UFOP
PROGRAMAÇÃO MODULAR (com uso de subprogramas)
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Funções em C Universidade do Estado de Santa Catarina
Noções de Estrutura de Dados Logica de Programação
Programação Orientada para Objectos
Revisão da Linguagem C.
Classes e objetos P. O. O. Prof. Grace.
Linguagem técnica de programação I Java – REVISÃO
Paradigmas de programação
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Introdução a Computação e Cálculo Numérico
PROGRAMAÇÃO ESTRUTURADA II
Conceitos e implementação em C
Modularização de um programa em C
Prof. Ricardo Santos PONTEIROS
Tipos de Dados Paradigmas de Programação
Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Prof. Mateus Raeder Professor.unisinos.br/mraeder
PROGRAMAÇÃO - INTRODUÇÃO George Gomes Cabral. DECOMPOSIÇÃO Dividir para conquistar: Paradigma básico para tratamento de grandes problemas. Nossa meta.
Programação orientada a objectos em C++
Programação Orientada à Objetos
SISTEMAS DISTRIBUIDOS Aula 4
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Banco de Dados Aplicado ao Desenvolvimento de Software
Estruturas de Dados Aula 17: Estruturas Genéricas
Introdução à Linguagem C
Programação de PIC em C Exposição das funções básicas para
Estruturas de Dados Aula 6: Cadeias de Caracteres
Linguagens de Programação
Conceitos Básicos e Manipulação de Objetos
Fundamentos de linguagens de programação
Recursividade Profs. De Prog2 e Lab2.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 2 Variáveis e Atribuições.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Programação Computacional Aula 9: Meu primeiro programa em C
Profa. Maria Augusta Constante Puget
Estruturas de Dados Murilo Salgado Razoli.
Professora: Kelly de Paula Cunha
Algoritmo e Estrutura de Dados I Aulas 15 – Linguagem C Alocação Dinâmica de Memória Márcia Marra
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Influencias sobre o Projeto da Linguagem
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
Linguagem de Programação
Tipos Compostos Heterogêneos e Tipos Abstratos de Dados
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
Estrutura de Dados Prof. André Cypriano M. Costa
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Alocação Dinâmica de Memória e Tipo Abstrato de Dados Cristiano Arbex Valle Vinicius Fernandes dos Santos
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Transcrição da apresentação:

TIPOS ABSTRATOS DE DADOS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello

Tipos de Dados Conjunto de valores que podem ser assumidos por uma variável ou expressão, atribuídos a uma constante, retornados por uma chamada, etc, em uma dada linguagem de programação

Tipos de Dados Tipos primitivos Tipos compostos Também denominados simples ou básicos, representam valores indivisíveis, como int, float, char, ... em C Tipos compostos São coleções ou agregados de tipos (simples ou compostos) possivelmente diferentes, como arranjos, strings e dados estruturados: Por exemplo: struct em C, record em Pascal, object em C++

Tipos de Dados: Pontos de vista Do computador Tipos de dados são vistos como métodos para interpretar o conteúdo da memória do computador como interpretar os bits/bytes Dos programadores: O que desejam fazer p. ex., somar dois inteiros O programador se importa mais com o conceito matemático de inteiro do que com a representação no hardware Um tipo inteiro ´suporta´certas operações...

Tipos Abstratos de Dados (TAD) Um TAD: Descrição de alto nível que especifica quais operações são suportadas por uma estrutura de dados Mas que não fornece detalhes de como são realizadas (estruturas de dados e algoritmos) Exemplo: TAD: Conjunto Simples Tipos de Dados: Inteiros Operações: Interseção, União e Diferença Implementação em diferentes linguagens: Arquivos de Cabeçalho“.h”de C, Interfaces Java ...

Estruturas de Dados Coleções de unidades (células) capazes de suportar diferentes tipos de dados e que podem se conectar e inter-relacionar de diferentes formas Arranjos e registros são exemplos de estruturas de dados elementares EDs são realizações de TADs, diferindo entre si pelas regras ou esquemas de disposição e manipulação dos dados: Um mesmo TAD pode ser realizado com estruturas de dados diferentes: fila com arranjo ou lista encadeada, grafo com lista de arestas ou matriz de adjacências, etc.

Estruturas de Dados Descrevem de forma sistemática maneiras de organizar, acessar e manipular dados É um nível intermediário de descrição entre o TAD e a implementação concreta do código em alguma linguagem TAD Estrutura de Dados Programa

Tipos Abstratos de Dados (TAD) estabelece o conceito de tipo de dado divorciado da sua representação Pode ser formalmente definido como um modelo matemático, por meio de um par (v,o) em que V é um conjunto de valores O é um conjunto de operações sobre esses valores x.: Número real v= ℜ o= {+, -, *, /, =, <, >, <=, >=}

Tipos Abstratos de Dados (TAD) Ocultamento de informação (information hiding) Um TAD requer que operações sejam definidas sobre os dados sem uma representação específica Um programador que usa um tipo de dado float, int, etc não precisa saber como tais valores são representados internamente: Mesmo princípio pode ser aplicado a listas, pilhas, filas, ... Programador pode utilizar como uma “caixa preta” apenas por meio das operações que ela suporta

Programando com TAD Programador descreve o TAD em dois módulos separados: Interface de acesso (TAD conceitual): apresenta as operações e valores possíveis Implementação contém a representação da estrutura de dados e a implementação de cada operação

Programando com TAD Outros programadores: Usam a TAD por meio da interface de acesso Sem conhecer os detalhes de representação Não acessam o módulo de implementação Idealmente, a implementação é “invisível”: Programador usa TAD e cria uma lista de clientes e aplica operações sobre ela, Sem saber como ela é representada internamente

Vantagens dos TAD Clareza: Estrutura interna do TAD é abstraída Corretidão: TAD foi testado e funciona corretamente Reuso: TAD pode ser usado por diferentes programas Manutenção: Mudanças na implementação do TAD não afetam o código fonte dos programas que o utilizam se a interface de acesso não mudar decorrência do ocultamento de informação

Implementação de TAD em C Usando modularização: Interface: Arquivo de cabeçalhos, associado a cada módulo, com: cabeçalhos das funções oferecidas pelo módulo e, os tipos de dados que ele exporte typedef’s, struct’s, etc. Tem o mesmo nome do porém com a extensão .h Implementação arquivo .c com os programas

Implementação de TAD em C /* Racionais.h: Interface de TAD Números Racionais */ /* Tipo Exportado */ Typedef struct{ intNum, Den; } Racional; /* Funções Exportadas */ Racional Define(intN, intD); /* Gera um número racional a partir de dois inteiros, sendo o segundo não nulo */ Racional Soma(Racional R1, Racional R2); /* Soma dois números racionais R1 e R2 e retorna o resultado */ Racional Multiplica(Racional R1, Racional R2); /* Multiplica dois números racionais R1 e R2 e retorna o resultado */ Int TestaIgualdade(Racional R1, Racional R2); /* Verifica se 2 números racionais R1 e R2 sao iguais */

Implementação de TAD em C #include <stdio.h> #include"Racionais.h" Void main(void){ /* Teste do TAD: Exercício... */ } /* Soma dois números racionais R1 e R2 e retorna o resultado */ Racional Soma(Racional R1, Racional R2) { …

Impementação do TAD em C++ TADs podem ser implementados como classes em C++ Os conceitos de programação orientada a objetos estendem os conceitos de TAD

Checando Escrever um programa C que executa operações sobre números racionais, utilizando o TAD definido em aula

Perguntas?