tipos abstratos de dados - tiago de...
TRANSCRIPT
![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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/59.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/64.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/65.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/66.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/67.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/68.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/69.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/70.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/71.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/72.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/73.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/74.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/75.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/76.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/77.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/78.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/79.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/80.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/81.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/82.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/83.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/84.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/85.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/86.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022050514/5f9e99d2e1ade260726eed6e/html5/thumbnails/87.jpg)
87/87
Referências
● https://www.javatpoint.com/python-constructors