estruturas de dados · um tipo abstrato de dados (tad) consiste em um ... determinada estrutura de...

Post on 12-Nov-2018

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Profº Carlos Alberto Teixeira Batista

E-mail: carlos.batista@facape.br

carlos36_batista@yahoo.com.br

Estruturas de Dados

Tipo Abstrato de Dados

“[...] 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)

Tipo Abstrato de Dados

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.

Tipo Abstrato de Dados

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.

Tipo Abstrato de 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

Tipo Abstrato de Dados

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.

Tipo Abstrato de Dados

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.

Tipo Abstrato de Dados

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;

Tipo Abstrato de Dados

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

Tipo Abstrato de Dados

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;

Tipo Abstrato de Dados

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

Tipo Abstrato de Dados

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.

Tipo Abstrato de Dados

Exemplo 1: array como tipo abstrato de dados

SOLUÇÃO

Tipo Abstrato de Dados

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

Tipo Abstrato de Dados

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.

Tipo Abstrato de Dados

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.

top related