87
Algoritmos e Estruturas de Dados I Tipos Abstratos de Dados Prof. Tiago Eugenio de Melo [email protected] www.tiagodemelo.info

Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

Algoritmos e Estruturas de Dados I

Tipos Abstratos de Dados

Prof. Tiago Eugenio de [email protected]

www.tiagodemelo.info

Page 2: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

2/87

Observações

Page 3: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

3/87

Observações

● O conteúdo dessa aula é parcialmente proveniente do Capítulo 1 do livro “Data Structures and Algorithms using Python”.

Page 4: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

4/87

Observações

● O conteúdo dessa aula é parcialmente proveniente do Capítulo 1 do livro “Data Structures and Algorithms using Python”.

● As palavras com a fonte Courier indicam uma palavra-reservada da linguagem de programação.

Page 5: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

5/87

Introdução

Page 6: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

6/87

Introdução

● As linguagens de programação oferecem tipos de dados como uma parte integrante da linguagem.

Page 7: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

7/87

Introdução

● As linguagens de programação oferecem tipos de dados como uma parte integrante da linguagem.– Estes tipos de dados são conhecidos como tipo

primitivos de dados.

Page 8: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

8/87

Introdução

● As linguagens de programação oferecem tipos de dados como uma parte integrante da linguagem.– Estes tipos de dados são conhecidos como tipo

primitivos de dados.

– Esses tipos podem ser: simples ou complexos.

Page 9: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

9/87

Introdução

● As linguagens de programação oferecem tipos de dados como uma parte integrante da linguagem.– Estes tipos de dados são conhecidos como tipo

primitivos de dados.

– Esses tipos podem ser: simples ou complexos.

– Inteiros e reais são tipos simples.

Page 10: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

10/87

Introdução

● As linguagens de programação oferecem tipos de dados como uma parte integrante da linguagem.– Estes tipos de dados são conhecidos como tipo

primitivos de dados.

– Esses tipos podem ser: simples ou complexos.

– Inteiros e reais são tipos simples.

– Os tipos complexos são construídos a partir de múltiplos tipos primitivos ou mesmo com outros tipos de dados complexos.

Page 11: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

11/87

Introdução

● As linguagens de programação oferecem tipos de dados como uma parte integrante da linguagem.– Estes tipos de dados são conhecidos como tipo

primitivos de dados.

– Esses tipos podem ser: simples ou complexos.

– Inteiros e reais são tipos simples.

– Os tipos complexos são construídos a partir de múltiplos tipos primitivos ou mesmo com outros tipos de dados complexos.

– Em Python, objetos, strings, listas e dicionários são exemplos de tipos complexos.

Page 12: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

12/87

Introdução (cont.)

Page 13: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

13/87

Introdução (cont.)

● Muitas vezes, os tipos primitivos oferecidos pelas linguanges de programação não são suficientes para resolver problemas maiores ou mais complexos.

Page 14: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

14/87

Introdução (cont.)

● Muitas vezes, os tipos primitivos oferecidos pelas linguanges de programação não são suficientes para resolver problemas maiores ou mais complexos.

● Portanto, a maioria das linguagens de programação oferece recursos para que os programadores criem os seus próprios tipos de dados.

Page 15: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

15/87

Abstração

● É um mecanismo para separar as propriedades de um objeto e restringir o foco para o que seja realmente relevante.

Page 16: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

16/87

Abstração

● Exemplo de diversos níveis de abstração com aritmética de inteiros:

Page 17: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

17/87

Tipo Abstrato de Dados (TAD)

Page 18: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

18/87

Tipo Abstrato de Dados (TAD)

● Ou Abstract Data Type (ADT).

Page 19: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

19/87

Tipo Abstrato de Dados (TAD)

● Ou Abstract Data Type (ADT).● É um tipo de dados definido pelo programador

que especifica um conjunto de valores de dados e uma coleção bem definida de operações que podem ser executadas nesses valores.

Page 20: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

20/87

Tipo Abstrato de Dados (TAD)

● Ou Abstract Data Type (ADT).● É um tipo de dados definido pelo programador

que especifica um conjunto de valores de dados e uma coleção bem definida de operações que podem ser executadas nesses valores.

● TAD são definidos de maneira independente da sua implementação.

Page 21: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

21/87

Tipo Abstrato de Dados (TAD)

● Ou Abstract Data Type (ADT).● É um tipo de dados definido pelo programador que

especifica um conjunto de valores de dados e uma coleção bem definida de operações que podem ser executadas nesses valores.

● TAD são definidos de maneira independente da sua implementação.

● A interação com um TAD é realizado através da sua interface ou pelo seu conjunto de funções.

Page 22: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

22/87

Tipo Abstrato de Dados (TAD)

● Ou Abstract Data Type (ADT).● É um tipo de dados definido pelo programador que especifica

um conjunto de valores de dados e uma coleção bem definida de operações que podem ser executadas nesses valores.

● TAD são definidos de maneira independente da sua implementação.

● A interação com um TAD é realizado através da sua interface ou pelo seu conjunto de funções.

● A consequência disso é o ocultamento de informação (information hiding).

Page 23: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

23/87

Tipo Abstrato de Dados (cont.)

● Um TAD é como uma caixa-preta.

Page 24: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

24/87

Tipo Abstrato de Dados (cont.)

Page 25: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

25/87

Tipo Abstrato de Dados (cont.)

● O conjunto de operações pode ser agrupado em quatro categorias:

Page 26: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

26/87

Tipo Abstrato de Dados (cont.)

● O conjunto de operações pode ser agrupado em quatro categorias:– Construtores (Constructor): criam e inicializam

novas instâncias do TAD.

Page 27: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

27/87

Tipo Abstrato de Dados (cont.)

● O conjunto de operações pode ser agrupado em quatro categorias:– Construtores (Constructor): criam e inicializam

novas instâncias do TAD.

– Acessores (Accessor): Retorna os dados contidos em uma instância sem modificá-la.

Page 28: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

28/87

Tipo Abstrato de Dados (cont.)

● O conjunto de operações pode ser agrupado em quatro categorias:– Construtores (Constructor): criam e inicializam

novas instâncias do TAD.

– Acessores (Accessor): Retorna os dados contidos em uma instância sem modificá-la.

– Modificadores (Mutator): Modifica o conteúdo de uma instância de um TAD.

Page 29: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

29/87

Tipo Abstrato de Dados (cont.)

● O conjunto de operações pode ser agrupado em quatro categorias:– Construtores (Constructor): criam e inicializam

novas instâncias do TAD.

– Acessores (Accessor): Retorna os dados contidos em uma instância sem modificá-la.

– Modificadores (Mutator): Modifica o conteúdo de uma instância de um TAD.

– Iteradores: Processa os dados individuais dos componentes.

Page 30: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

30/87

Python Constructor

Page 31: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

31/87

Python Constructor

● Em Python, um construtor é um método especial usado para inicializar as instâncias de uma classe.

Page 32: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

32/87

Python Constructor

● Em Python, um construtor é um método especial usado para inicializar as instâncias de uma classe.

● Os construtores podem ser de dois tipos:

Page 33: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

33/87

Python Constructor

● Em Python, um construtor é um método especial usado para inicializar as instâncias de uma classe.

● Os construtores podem ser de dois tipos:– Construtor parametrizado.

Page 34: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

34/87

Python Constructor

● Em Python, um construtor é um método especial usado para inicializar as instâncias de uma classe.

● Os construtores podem ser de dois tipos:– Construtor parametrizado.

– Construtor não-parametrizado.

Page 35: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

35/87

Python Constructor

● Em Python, um construtor é um método especial usado para inicializar as instâncias de uma classe.

● Os construtores podem ser de dois tipos:– Construtor parametrizado.

– Construtor não-parametrizado.

● O construtor é executado quando nós criamos o objeto de uma classe.

Page 36: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

36/87

Python Constructor

● Em Python, um construtor é um método especial usado para inicializar as instâncias de uma classe.

● Os construtores podem ser de dois tipos:– Construtor parametrizado.

– Construtor não-parametrizado.

● O construtor é executado quando nós criamos o objeto de uma classe.

● Os construtores também verificam se existem os recursos necessários para que o objeto execute qualquer das suas tarefas.

Page 37: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

37/87

Python Construtor

Page 38: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

38/87

Python Construtor

● O método __init__ simula o construtor de uma classe.

Page 39: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

39/87

Python Construtor

● O método __init__ simula o construtor de uma classe.

● Esse método é chamado quando a classe é instanciada.

Page 40: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

40/87

Python Construtor

● O método __init__ simula o construtor de uma classe.

● Esse método é chamado quando a classe é instanciada.

● Esse método é comumente usado para inicializar os atributos da classe.

Page 41: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

41/87

Python Construtor

● O método __init__ simula o construtor de uma classe.

● Esse método é chamado quando a classe é instanciada.

● Esse método é comumente usado para inicializar os atributos da classe.

● Toda classe deve ter um construtor, mesmo se ele simplesmente confiar no construtor padrão (default).

Page 42: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

42/87

Python Construtor

● Exemplo:

Page 43: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

43/87

Python Construtor

● Exemplo (saída):

Page 44: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

44/87

Python Construtor

Page 45: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

45/87

Python Construtor

● Exemplo: contando o número de objetos de uma classe.

Page 46: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

46/87

Python Construtor

● Exemplo: contando o número de objetos de uma classe.

Page 47: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

47/87

Python Construtor

● Exemplo: contando o número de objetos de uma classe.

Page 48: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

48/87

Python Construtor

Page 49: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

49/87

Python Construtor

● Exemplo (não-parametrizado)

Page 50: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

50/87

Python Construtor

● Exemplo (não-parametrizado)

Page 51: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

51/87

Python Construtor

● Exemplo (não-parametrizado)

Page 52: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

52/87

Python Construtor

Page 53: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

53/87

Python Construtor

● Exemplo (parametrizado)

Page 54: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

54/87

Python Construtor

● Exemplo (parametrizado)

Page 55: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

55/87

Python Construtor

● Exemplo (parametrizado)

Page 56: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

56/87

Python In-built class functions

Page 57: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

57/87

Python In-built class functions

Page 58: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

58/87

Python In-built class functions

Page 59: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

59/87

Python In-built class functions

● Saída (código anterior):

Page 60: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

60/87

Python built-in class attributes

Page 61: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

61/87

Python built-in class attributes

Page 62: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

62/87

Python built-in class attributes

Page 63: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

63/87

Python built-in class attributes

Page 64: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

64/87

Python Accessor

Page 65: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

65/87

Python Accessor

● Um método accessor retorna a informação sobre o objeto, mas não muda o estado ou o objeto.

Page 66: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

66/87

Python Accessor

● Um método accessor retorna a informação sobre o objeto, mas não muda o estado ou o objeto.

● Esse método normalmente é usado com a palavra get.

Page 67: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

67/87

Python Mutator

Page 68: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

68/87

Python Mutator

● Um método mutator é uma função que modifica a variável interna de alguma maneira.

Page 69: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

69/87

Python Mutator

● Um método mutator é uma função que modifica a variável interna de alguma maneira.

● A mais simples forma de um mutator é atribuir um novo valor para uma variável.

Page 70: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

70/87

Python Mutator

● Um método mutator é uma função que modifica a variável interna de alguma maneira.

● A mais simples forma de um mutator é atribuir um novo valor para uma variável.

● Esse método normalmente é usado com a palavra set.

Page 71: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

71/87

Python Accessor/Mutator

Page 72: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

72/87

Python Accessor/Mutator

Page 73: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

73/87

Python Accessor/Mutator

42

Page 74: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

74/87

Python Accessor/Mutator

42

4758

Page 75: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

75/87

Python Accessor/Mutator

42

4758

encapsulamento

Page 76: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

76/87

Python Accessor/Mutator

Page 77: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

77/87

Python Accessor/Mutator

Page 78: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

78/87

Python Accessor/Mutator

encapsulamento?

Page 79: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

79/87

Iterators

Page 80: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

80/87

Iterators

● Um iterator pode ser visualizado como um ponteiro para um container, isto é, uma estrutura do tipo lista que pode percorrer sobre todos os elementos deste container.

Page 81: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

81/87

Iterators

● Um iterator pode ser visualizado como um ponteiro para um container, isto é, uma estrutura do tipo lista que pode percorrer sobre todos os elementos deste container.

● Exemplo:

cities = ["Paris","Berlin","Frankfurt"] 

for location in cities:

print("location: " + location)

Page 82: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

82/87

Tipo Abstrato de Dados (cont.)

Page 83: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

83/87

Tipo Abstrato de Dados (cont.)

● Existem algumas vantagens no uso de TADs:

Page 84: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

84/87

Tipo Abstrato de Dados (cont.)

● Existem algumas vantagens no uso de TADs:– Foco na resolução do problema ao invés de se

preocupar com detalhes de implementação.

Page 85: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

85/87

Tipo Abstrato de Dados (cont.)

● Existem algumas vantagens no uso de TADs:– Foco na resolução do problema ao invés de se

preocupar com detalhes de implementação.

– A implementação do TAD pode ser modificada sem ter a necessidade de modificar o programa que utiliza o TAD.

Page 86: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

86/87

Tipo Abstrato de Dados (cont.)

● Existem algumas vantagens no uso de TADs:– Foco na resolução do problema ao invés de se

preocupar com detalhes de implementação.

– A implementação do TAD pode ser modificada sem ter a necessidade de modificar o programa que utiliza o TAD.

– É mais fácil gerenciar e dividir programas grandes (reais) em módulos menores.

Page 87: Tipos Abstratos de Dados - Tiago de Melotiagodemelo.info/wp-content/uploads/2020/03/aula4-tads.pdf11/87 Introdução As linguagens de programação oferecem tipos de dados como uma

87/87

Referências

● https://www.javatpoint.com/python-constructors