Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

Documentos relacionados
Tipos Abstratos de Dados TADs

Motivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software

TAD: Tipo Abstrato de Dados (parte 1)

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

INE5384 Estruturas de Dados. Sumário

Exemplo Tipos Abstratos de Dados TADs Disciplina: Semestre: Turma: Professor: Renata de Matos Galante matricula nome

Algoritmos de Busca. Profº Carlos Alberto T. Batista

Paradigmas de Linguagens de Programação. Tipos de Dados Abstratos

TAD: Tipo Abstrato de Dados (parte 1)

SCC-202 Algoritmos e Estruturas de Dados I. Profa. Graça Nunes 2º. Semestre 2010

Tipos Abstratos de Dados

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

Prova 2 - Computação

Sistemas da Informação. Banco de Dados I. Edson Thizon

O que é a modularização

Exercícios: Vetores e Matrizes

Encapsulamento e Modularização

Encapsulamento e Modularização

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Estrutura de Dados (DPADF 0056)

Aula 1 Conceitos Básicos

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.

Programação de Computadores II. Cap. 9 Tipos Abstratos de Dados (TAD)

4ª Lista de Exercícios de Programação I

ara entender os Sistemas Gerenciadores de Banco de Dados é importante conhecer

Lógica de Programação e Algoritmos. Prof. André Y. Kusumoto

4ª Lista de Exercícios de Programação I

Televisao tamanho tela emitirsom. conectarperifericos

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

INTRODUÇÃO AOS SISTEMAS LÓGICOS

Professor Jefferson Chaves Jefferson de Oliveira Chaves - IFC Araquari

Programação I A Linguagem C. Prof. Carlos Alberto

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

BCC202 - Estrutura de Dados I

Programação C# + ASP.NET

Programação de Computadores

Dicas para implementação do Trabalho 6

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória

MC-102 Aula 21 Registros

Aula 12 Tipo Abstrato de Dados. Prof. Me. Sérgio Carlos Portari Jr UEMG Campus de Frutal

Algoritmos e Programação

Variação de implementação. Variação de implementação (2) Variação de implementação (3)

Parte SISTEMAS DE GERÊNCIA DE BANCO DE DADOS 2.1 CARACTERÍSTICAS DE UM BANCO DE DADOS

GEQ Prof. Paulo R. Coelho. Lista para prova

Variáveis Indexadas Unidimensionais (Vetores)

Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/03/2011

O PARADIGMA ORIENTADO POR OBJETOS

Estrutura de Dados. Plano de Ensino. Vilson Heck Junior. Campus Lages. Instituto Federal de Santa Catarina

Exercícios: Recursão

Programação de Computadores

LISTA DE EXERCÍCIOS - ro. 04

Algoritmos e Estruturas de Dados II IEC013

Aula 11: Modularização

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Visibilidade e Encapsulamento

Dados Gerais. Conteúdo. Tipos de Dados. Profa. Renata de Matos Galante

TAD: Tipo Abstrato de Dados (parte 2)

Requisitos de Software

Faculdades Integradas Rui Barbosa Programação II Prof. Marcos Antonio Estremote. Exercícios com Vetores e Matrizes

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto

Introdução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila

Desenvolvimento de Aplicações Desktop

Introdução à Programação Orientada a Objetos. Prof. Leonardo Barreto Campos 1

Questão 1 Exemplo de execução 1 (com N=6): Exemplo de execução 2 (com N=4):

Introdução à Programação de Computadores Fabricação Mecânica

BANCO DE DADOS - MODELAGEM DE DADOS

Aula 20: Matrizes (Parte 2)

Introdução aos sistemas de informação

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados Apresentação

6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014

Engenharia de Software

CCO 016 Fundamentos de Programação

Aula 6: Entrada e Saída

Orientação a Objetos e UML

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: tipos de dados definidos pelo programador: struct union enum typedef

Agenda. Conjunto de variáveis. O tipo de dados Vetor INTRODUÇÃO. Vetores.

TAD: Tipo Abstrato de Dados (parte 2)

Exercícios: Arquivos

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 12 Estruturas

5ª Lista de Exercícios de Programação I

Tipos Abstratos de Dados

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

Universidade Estadual de Feira de Santana Departamento de Ciências Exatas. Clone do MatLab. João Carlos Nunes Bittencourt. Feira de Santana, 2008

Working 05 : Modularização

Ponto 1) Representação do Ponto

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Vetores. Material Didático Unificado. BCC701 Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência da Computação

Programação: Vetores

SCC 202 Prova 1. 28/9/2010 Resolução e Comentários

Programação Procedimental GBC /1 Prof. Renan Cattelan Prática 10. Estruturas e alocação dinâmica

Introdução a Programação de Jogos

INF1007 Programação II

Tipos Abstratos de Dados

Semana 10: Vetores. Material Didático Unificado.

Modularidade - Funções e Procedimentos

Programação I Funções. Prof. Carlos Alberto

MCG126 Programação de Computadores II

Transcrição:

Estruturas de Dados Profº Carlos Alberto Teixeira Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br

[...] A abstração é nossa mais importante ferramenta mental para lidar com a complexidade. Portanto, um problema complexo não poderia ser visto imediatamente em termos de instruções de computador [...] mas, antes, em termos de entidades naturais ao próprio problema, abstraído de maneira adequada. Niklaus Wirth (1989)

Significados do termo abstrair Segundo o Dicionário Aurélio Considerar isoladamente um ou mais elementos de um todo. Em programação Imaginar um problema maior dividido em problemas menores, para resolvê-los isoladamente e, posteriormente, uni-los, produzindo a solução do problema.

Um Tipo Abstrato de Dados (TAD) consiste em um módulo que define um novo tipo de dado e um conjunto de operações para manipular dados desse tipo. É também conhecido como Tipo de Dado Abstrato (TDA) ou tipo de dados definido pelo usuário. Os TAD s encapsulam um tipo de dados e seus valores e definem ou exportam uma interface externa de procedimentos que acessam e manipulam os dados.

Separação entre conceito (definição do tipo) e implementação das operações Visibilidade da estrutura interna do tipo fica limitada às operações Aplicações que usam o TAD são denominadas clientes do tipo de dado Cliente tem acesso somente à forma abstrata do TAD

Um TAD é um tipo de dado que satisfaz as condições: A representação ou a definição do tipo e as operações sobre variáveis desse tipo estão contidas numa única unidade sintática: MÓDULO A representação interna do tipo (a implementação) não é visível de outras unidades sintáticas, de modo que só as operações oferecidas na definição do tipo podem ser usadas com as variáveis desse tipo.

Acesso e mudanças nos dados podem somente ser feitos através dos procedimentos de interface. Um Tipo Abstrato de Dados apresenta as seguintes características: Uma definição de tipo que permite que as unidades de programa declarem suas variáveis, mas oculta a sua representação; Um conjunto de operações para manipular objetos do tipo.

Vantagens: Programas organizados em unidades lógicas que podem ser compiladas separadamente; Modificações nas representações ou operações do tipo são feitas em uma única área do programa; Clientes não veem os detalhes da representação, portanto seu código não depende dessa representação;

Vantagens: Confiabilidade. Clientes não podem mudar as representações intencionalmente ou acidentalmente. Reutilização. Possibilidade de utilização do mesmo TAD em diversas aplicações diferentes

Projeto de um TAD Envolve a escolha de operações adequadas para uma determinada estrutura de dados, definindo seu comportamento Dicas para definir um TAD Definir pequeno número de operações; O conjunto de operações deve ser suficiente para realizar as computações necessárias às aplicações que utilizarem o TAD; cada operação deve ter um propósito bem definido, com comportamento constante e coerente;

Exemplo 1: array como tipo abstrato de dados Nome do tipo: vetor Componentes: número de elementos e espaço de armazenamento. Operações: produto_por_escalar (x, k) y soma_dos_elementos (x) a num_elementos (x) n leitura() x imprime (x) Consideremos: x,y do tipo vetor k, n do tipo inteiro a do tipo real

Exemplo 1: array como tipo abstrato de dados PROBLEMA Ler um conjunto de notas de alunos, calcular a média da turma, imprimir as notas lidas e a média da turma.

Exemplo 1: array como tipo abstrato de dados SOLUÇÃO

Exemplo 2: criando tipo abstrato de dados conta Nome do tipo: conta Componentes: registro com os campos referentes aos dados da conta e espaço de armazenamento. Operações: abrirconta (c) creditar (c, v) debitar (c, v) transferir(c1, c2, v) mostrardados(c) Consideremos: c, c1 e c2 do tipo conta v do tipo real

Exemplo 2: criando tipo abstrato de dados conta PROBLEMA Fazer a abertura de duas contas. Creditar e debitar valores nas contas. Realizar a transferência de valores entre as contas e ao final exibir os dados de ambas as contas.

Exemplo 2: criando tipo abstrato de dados conta SOLUÇÃO

Exercícios Utilize o TDA vetor e faça um programa para ler dois conjuntos de pontuações relativas aos resultados obtidos por dois participantes do Rally Paris-Dakar. Calcular a média de cada um e indicar qual deles teve a melhor média. Imprimir as pontuações lidas, as médias e quem obteve a melhor média.

Exercícios Crie um TDA para a representação de um ponto no plano cartesiano. O ponto será representado pelo par ordenado (x, y). Defina as seguintes operações: cria: operação que cria um ponto nas coordenadas x e y; acessa: operação que devolve as coordenadas de um ponto; atribui: operação que atribui novos valores às coordenadas de um ponto; distancia: operação que calcula a distância entre dois pontos.