Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

12
Tipo Abstrato de Dados (TAD) Tipo Abstrato de Dados (TAD) Prof. Alex Camargo [email protected] UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ LABORATÓRIO DE PROGRAMAÇÃO II

Transcript of Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Page 1: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Tipo Abstrato de Dados (TAD)Tipo Abstrato de Dados (TAD)

Prof. Alex [email protected]

UNIVERSIDADE FEDERAL DO PAMPACAMPUS BAGÉ

LABORATÓRIO DE PROGRAMAÇÃO II

Page 2: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Introdução

Para implementar um Tipo Abstrato de Dados em C, usa-se a definição de tipos juntamente com a implementação de funções que agem sobre aquele tipo.

O usuário só "enxerga" a interface, não a implementação.

O TAD encapsula a estrutura de dados. Os usuários do TAD só tem acesso a algumas operações disponibilizadas sobre esses dados.

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 3: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Tipo de dados, estruturas de dadose tipo abstrato de dados

Termos parecidos, mas com significados diferentes:

O tipo de dado de uma variável o conjunto de valores que ela pode assumir. Ex.: variável float pode assumir números reais.

Um tipo estruturado é um exemplo de estrutura de dados, ou seja, são estruturas de dados já pré-definidas na linguagem de programação. Ex: vetores, structs, unions.

Um tipo abstrato de dados agrupa a estrutura de dados juntamente com as operações que podem ser feitas sobre esses dados. Usualmente, typedef + structs + funções.

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 4: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Vantagens

Vantagens do uso de TADs:

Reuso: Podemos modificar a implementação do TAD sem modificar o código que usa o TAD, e vice-versa.

Manutenção: TAD pode ser reaproveitado em vários programas ou módulos.

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 5: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Implementação

Como boa regra de programação, evita-se acessar o dado diretamente, fazendo o acesso somente através das funções.

Em linguagens orientadas a objeto (C++, Java) a implementação é feita através de classes.

Em linguagens estruturadas (C, Pascal) a implementação é feita pela definição de tipos e implementação de funções.

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 6: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Modularização

Outra boa técnica de programação é implementar os TADs em arquivos separados do programa principal. Geralmente separa-se o TAD em dois arquivos:

NomeDoTAD.h: com a declaração

NomeDoTAD.c: com a implementação

Os programas que utilizam o seu TAD devem dar um include no arquivo .h

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 7: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Exemplo

Implemente um TAD conta bancária com campos número e saldo que suporte as as seguintes operações:

- Iniciar uma nova conta com um número e saldo - Depositar um valor na conta - Sacar um valor da conta - Imprimir o saldo - Faça um pequeno programa para testar o seu TAD

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 8: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Exemplo (contaBancaria.h)

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 9: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Exemplo (contaBancaria.c)

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 10: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Exemplo (main.c)

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 11: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Considerações finais

Um TAD define:

um novo tipo de dado;

o conjunto de operações para manipular dados desse tipo.

Um TAD facilita:

a manutenção e a reutilização de código;

abstrato = "forma de implementação não precisa ser conhecida".

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)

Page 12: Laboratório de Programação II: Tipo Abstrato de Dados (TAD)

Exercício

Implemente um TAD funcionário com campos matrícula e salario que suporte as as seguintes operações:

- Cadastrar um novo funcionário com a matrícula e salário - Atribuir férias (50%) ao salário - Atribuir comissão (x%)- Atribuir faltas (cada falta representa um desconto de 10%) - Exibir os dados do funcionário- Faça um pequeno programa para testar o seu TAD

Laboratório de Programação II – Tipo Abstrato de Dados (TAD)