Opção 1 Para adicionarAntonio Álvaro Oliveira da Silva    Wallysson Ferreira Araruna
   Tem como objetivo fazer uma breve apresentaçãodas características da linguagem de programaçãoPython e fazer uma introd...
   Uma Linguagem de Programação de fonte aberta,    ou   seja,     Software              Livre:         Python   Software...
   Os Blocos de comandos são delimitados por meio    da indentação.   Não precisa ser compilado para a sua execução, o  ...
 Tiposde Dados:   Os tipos de dados podemos definir em     dois tipos os simples e compostos.                           ...
   Lista:        E uma seqüencia de valores de qualquer tipo,são mutáveis podendo ser                           alternad...
 Def.:  class Ponto: # criando a classe, criar um novo tipo de dado,  ponto.      pass # o comando não tem nenhum efeito ...
final = Ponto( ) # A variável final contém uma referencia a umnovo objeto da classe Ponto.final.x = 3.0 # adicionando novo...
def mostrarPonto(p):            print „ („ +str (p.x)+ ‟ , ‟ +str(p.y)+‟) ‟# A função mostrarPonto pega o ponto (p) como u...
class Detalhes:  passwall = Detalhes()wall.altura = 1.77wall.peso = 90wall.vida = Detalhes() # um novo objeto dentro de ou...
import copyp3 = Ponto()p3.x = 24p3.y = 44p4 = copy.copy(p3)printprintprint "p4 == p3", p4 == p3print mostrarPonto(p3,p4)#p...
Mas caso o objeto contenha uma referencia para outro objeto, o método copy não iraexecutar corretamente.#DiagramaSolução é...
 Funções  Pura = Não modifica nenhum  dos objetos que são passados como  parâmetros e não tem efeito colateral de  imprim...
 Métodos são como funções com duas diferenças: • Métodos são definidos dentro da definição de   uma classe para tornar ex...
Introdução a Estrutura de Dados em Python                                            15
   Também chamado de construtor, é um método especial que    é invocado automaticamente quando um novo objeto é    criado...
Um atributo de classe é definido fora de qualquer método, assim ele pode acessado porquaisquer método da classe.class Cart...
 Uma  lista (list) em Python tem como sintaxe uma  seqüência de valores separados por vírgula e  entre []. Uma coleção H...
Introdução a Estrutura de Dados em Python                                            19
Introdução a Estrutura de Dados em Python                                            20
 Quem    Nunca enfrentou Uma Fila? Na programação é mesma lógica, o primeiro  elemento a entrar em uma fila será o prime...
As Filas (queues) são conjuntos de elementos éadicionado em extremidade e removida em outra.          Seqüência armazenada...
LEMBRETE: O TDA ou tipo                                                        abstrato de dado especifica                ...
 __init__: Inicializar                      uma nova fila vazia. Insert: Adicionar um novo item à fila. remove: Remover...
 As  Pilhas são conhecidas como LIFO(last in, first out – último a entrar) ou PEPS.     O item adicionado por último é o...
Novos                                            Último Elementos                                      elemento que   send...
 __init__: Inicializa uma nova pilha vazia. push : Adiciona um novo item na pilha pop : Remove um ítem da pilha e o  re...
 “É             uma estrutura de dados      bidimensional, não-linear, que possui           propriedades especiais”      ...
 São Uteis para Implementação de algoritmos quenecessitam de estruturas hierárquicas.Por exemplo:     Diretórios e Pasta ...
 No topo das árvores é chamada de RAIZ,  e as outras células são chamadas de  GALHO e nas pontas contendo as  referencias...
 O nó 8: É a Raiz                     Os nós 3 ,10,14 e 6: São                     chamadas de Pai                     ...
   Puga Sandra,Risseti Gerson.Lógica de Programação e Estruturas    de Dados Com aplicações em Java.Ed. Person Prentice H...
o Borges Eduardo Luiz.Python Para Desenvolvedores. Rio deJaneiro, Edição do Autor, 2009.             Introdução a Estrutur...
Introdução a Estrutura de Dados em Python                                            35
Introdução a Estrutura de Dados em Python                                            36
Obrigado pela  Atenção! Introdução a Estrutura de Dados em Python                                             37
Upcoming SlideShare
Loading in...5
×

Introdução a estruturas de dados em python

1,315

Published on

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,315
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
44
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Introdução a estruturas de dados em python

  1. 1. Opção 1 Para adicionarAntonio Álvaro Oliveira da Silva Wallysson Ferreira Araruna
  2. 2.  Tem como objetivo fazer uma breve apresentaçãodas características da linguagem de programaçãoPython e fazer uma introdução a estrutura de dadosda referida linguagem. Introdução a Estrutura de Dados em Python 2
  3. 3.  Uma Linguagem de Programação de fonte aberta, ou seja, Software Livre: Python Software Foundation e orientada a objetos. É de fácil aprendizado. Linguagem de Programação de Alto Nivel. Sua Sintaxe elegante e tipagem dinâmica e forte. Funciona na maioria dos sistemas operacionais. Introdução a Estrutura de Dados em Python 3
  4. 4.  Os Blocos de comandos são delimitados por meio da indentação. Não precisa ser compilado para a sua execução, o programa é interpretado em tempo de execução. A declaração de variáveis pode ocorrer em qualquer ponto do programa, no entanto deve ser utilizada a variavel. Introdução a Estrutura de Dados em Python 4
  5. 5.  Tiposde Dados:  Os tipos de dados podemos definir em dois tipos os simples e compostos. Tipos de Compostos Simples Dados Numérico e Lista,Tupla , Texto Dicionário, Filas e Pilhas Introdução a Estrutura de Dados em Python 5
  6. 6.  Lista:  E uma seqüencia de valores de qualquer tipo,são mutáveis podendo ser alternadas a qualquer momento. Tupla:  É um tipo de lista com objetivo de armazenar um conjunto de elementos acessíveis pelo índice inteiro.  Diferentes da lista ,são imutáveis. Dicionário: São conhecidos também como “vetores de associação”, tendo como diferença das listas na sua indexação, pois ela é feita através de chaves. Classe:  Estrutura fundamental para definir objetos. Introdução a Estrutura de Dados em Python 6
  7. 7.  Def.: class Ponto: # criando a classe, criar um novo tipo de dado, ponto. pass # o comando não tem nenhum efeito no código. # membros desse novo tipo são chamados instancia deste tipo ou objetos. # criar uma nova instancia é instanciar. Introdução a Estrutura de Dados em Python 7
  8. 8. final = Ponto( ) # A variável final contém uma referencia a umnovo objeto da classe Ponto.final.x = 3.0 # adicionando novos dados a um objeto.final.y = 4.0 # esse item de dados é o seu atributo. # A variável final refere-se a um objeto ponto quecontem # dois atributos e cada atributo referencia a umnumero.Print final.yWall = final.x # acessando um item de dados de um objeto e # atribuindo a variável wall.# Diagrama Introdução a Estrutura de Dados em Python 8
  9. 9. def mostrarPonto(p): print „ („ +str (p.x)+ ‟ , ‟ +str(p.y)+‟) ‟# A função mostrarPonto pega o ponto (p) como um argumento e mostra-o no formato (x,y)# Verificar se duas referências se referem ao mesmo objeto:class Ponto: passp1 = Ponto() #Mesmo que p1 e p2 contenham os mesmos valores , não presentam o mesmop1.x = 10.0 #objetop1.y = 5.0p2 = Ponto()p2.x = 10.0p2.y = 5.0print p1 == p2 #FALSEp2 = p1 #se atribuímos p1 a p2 então as duas variáveis são o mesmo objetoprint p1 == p2 #TRUE#chama-se de igualdade rasa, quando compara somente as referencias e não os conteúdos dosobjetosdef mostrarPonto(p1, p2): return (p1.x == p2.x) and (p1.y == p2.y)#comparar o conteúdo dos objetos, igualdade profunda. Introdução a Estrutura de Dados em Python 9
  10. 10. class Detalhes: passwall = Detalhes()wall.altura = 1.77wall.peso = 90wall.vida = Detalhes() # um novo objeto dentro de outro objeto.wall.vida.profissional = "Otimo"wall.vida.amorosa = "ruim"#Diagrama#mudando o estado de um objeto.def mudarEstado(obj, alt, peso, trab, amor): obj.altura = alt obj.peso = peso obj.vida.profissional = trab obj.vida.profissional = amordef exibi(algo): #o parâmetro „algo‟ é apelido para „wall „e qualquer mudança feita e „algo‟ afeta “bob” print algo.altura print algo.peso print algo.vida.profissional print algo.vida.amorosa printexibi(wall)mudarEstado(wall, 1.50, 70, "ruim", "altas")exibi(wall) Introdução a Estrutura de Dados em Python 10
  11. 11. import copyp3 = Ponto()p3.x = 24p3.y = 44p4 = copy.copy(p3)printprintprint "p4 == p3", p4 == p3print mostrarPonto(p3,p4)#para copiar um simples objeto sem nenhum objetoembutido, isto é shallow copia. Introdução a Estrutura de Dados em Python 11
  12. 12. Mas caso o objeto contenha uma referencia para outro objeto, o método copy não iraexecutar corretamente.#DiagramaSolução é usar metodo deepcopy que copia todo e qualuqer objeto embutido em umobjeto.wall2 = copy.deepcopy(wall)Agora wall2 e wall são objetos completamente separados com os mesmo conteúdos .def mudar(obj, alt, peso, trab, amor): p1 = copy.deepcopy(obj) p1.altura = alt p1.peso = peso p1.vida.profissional = trab p1.vida.profissional = amor return p1wall2 = mudar(wall, 1.50, 70, "ruim", "altas")exibi(wall2)exibi(wall) Introdução a Estrutura de Dados em Python 12
  13. 13.  Funções Pura = Não modifica nenhum dos objetos que são passados como parâmetros e não tem efeito colateral de imprimir um valor ou pegar entrada do usuário. Funções Modificadoras = funções que modificar um ou mais dos objetos que ela recebe como parâmetro. Introdução a Estrutura de Dados em Python 13
  14. 14.  Métodos são como funções com duas diferenças: • Métodos são definidos dentro da definição de uma classe para tornar explicita a relação entre a classe e o método. • A sintaxe para a chamada do método é diferente da sintaxe para a chamada de uma função. Introdução a Estrutura de Dados em Python 14
  15. 15. Introdução a Estrutura de Dados em Python 15
  16. 16.  Também chamado de construtor, é um método especial que é invocado automaticamente quando um novo objeto é criado e que inicializa os atributos deste objetos.class Carta: def __init__(self, naipe=0, posicao=0): #fornecemos ummétodo de #inicialização self.naipe = naipe # que recebe um parâmetro opcionalpara #cada atributo. self.posicao = posicaotresDePaus = Carta(0,3) #criando um objeto Introdução a Estrutura de Dados em Python 16
  17. 17. Um atributo de classe é definido fora de qualquer método, assim ele pode acessado porquaisquer método da classe.class Carta: listaDeNaipes = ["paus","Ouro","Copas","Espadas"] listaDePosicoes =["nada","Ás","2","3","4","5","6","7","8","9","10","Valete","Rainha","Rei"] def __init__(self, naipe=0, posicao=0): #fornecemos um metodo de inicialização self.naipe = naipe # que recebe um parametro opcional para cada atributo. self.posicao = posicao def __str__(self): return(self.listaDePosicoes[self.posicao] + " de "+self.listaDeNaipes[self.naipe])carta1 = Carta(1,11) #criando um objetoprint carta1 Introdução a Estrutura de Dados em Python 17
  18. 18.  Uma lista (list) em Python tem como sintaxe uma seqüência de valores separados por vírgula e entre []. Uma coleção Heterogêneas de Objeto,ou seja, os valores não precisam ser do mesmo tipo. São mutáveis em Python. Sintaxe: Lista=[1,2,3,4] Introdução a Estrutura de Dados em Python 18
  19. 19. Introdução a Estrutura de Dados em Python 19
  20. 20. Introdução a Estrutura de Dados em Python 20
  21. 21.  Quem Nunca enfrentou Uma Fila? Na programação é mesma lógica, o primeiro elemento a entrar em uma fila será o primeiro a sair conhecido como sigla de first-in-first-out ou FIFO. Os elementos são utilizados,sequencialmente, na ordem que são armazenados. Fila não é nativa de Python, mas podemos utilizar as Listas. Para Adicionar usa-se append(). Para remover usa-se pop() com Índice 0. Introdução a Estrutura de Dados em Python 21
  22. 22. As Filas (queues) são conjuntos de elementos éadicionado em extremidade e removida em outra. Seqüência armazenada em Fila Novos Elementos O primeiro Elemento a São Armazenados Entrar Será o Primeiro Elemento a Sair Introdução a Estrutura de Dados em Python 22
  23. 23. LEMBRETE: O TDA ou tipo abstrato de dado especifica um conjunto de operações (ou métodos) e a semântica dasA Fila existe dois tipos TDA, a operações (o que elas fazem),fila e fila por prioridade. mas não especifica a implementação das operações. Isto é o que o faz A fila está na política de abstrato enfileiramento,ou seja, a FIFO. A fila por prioridade o próprio nome já diz, os elementos quetem prioridade são atendidos por primeiro. Introdução a Estrutura de Dados em Python 23
  24. 24.  __init__: Inicializar uma nova fila vazia. Insert: Adicionar um novo item à fila. remove: Remover e retornar um item da fila. O item retornado é o que foi adicionado primeiro. isEmpty: Checar se a fila está vazia. Introdução a Estrutura de Dados em Python 24
  25. 25.  As Pilhas são conhecidas como LIFO(last in, first out – último a entrar) ou PEPS.  O item adicionado por último é o primeiro a ser removido. Uma pilha é uma coleção que contem múltiplos elementos. O exemplo mais conhecido é de uma pilha de pratos. Introdução a Estrutura de Dados em Python 25
  26. 26. Novos Último Elementos elemento que sendo entrou será o adicionado primeiro a na Pilha. sair.Sequencia deArmazenamento na Pilha Introdução a Estrutura de Dados em Python 26
  27. 27.  __init__: Inicializa uma nova pilha vazia. push : Adiciona um novo item na pilha pop : Remove um ítem da pilha e o retorna, O ítem que é retornado é sempre o último adicionado. isEmpty :Verifica se a pilha está vazia. Introdução a Estrutura de Dados em Python 27
  28. 28.  “É uma estrutura de dados bidimensional, não-linear, que possui propriedades especiais” Puga & Risseti,2009. Admite muitas operações de conjuntos dinâmicos:  Pesquisa  Inserção Árvores são estruturas de dados  Remoçãorecursivas já que elas  Ordenação são definidas  E entre outros. recursivamente. Introdução a Estrutura de Dados em Python 28
  29. 29.  São Uteis para Implementação de algoritmos quenecessitam de estruturas hierárquicas.Por exemplo: Diretórios e Pasta de Arquivos de Um Computador. Introdução a Estrutura de Dados em Python 30
  30. 30.  No topo das árvores é chamada de RAIZ, e as outras células são chamadas de GALHO e nas pontas contendo as referencias vazias são chamadas FOLHAS. Uma célula superior pode ser chamada de PAI e as células que se refere a ele são FILHOS, e as células com o mesmo pai são considerados IRMÃOS. Introdução a Estrutura de Dados em Python 31
  31. 31.  O nó 8: É a Raiz Os nós 3 ,10,14 e 6: São chamadas de Pai  Os nós 1,4,7 e 13: São FilhosIntrodução a Estrutura de Dados em Python 32
  32. 32.  Puga Sandra,Risseti Gerson.Lógica de Programação e Estruturas de Dados Com aplicações em Java.Ed. Person Prentice Hall,2009, 2ªedicão. Árvore Binária de Busca. Disponível em : <http://pt.wikipedia.org/wiki/%C3%81rvore_bin%C3%A1ria_de_bu sca >Acesso No dia 17 de Julho de 2012 ás 14h:58min. Rossum Van Guido.Tutorial Python Release 2.4.2.Disponivel em: <www.python.org.br/wiki/DocumentacaoPython?...python24.pdf>A cesso No dia 13 de Julho de 2012 ás 9h:10min. Capitulo 18 : Pilhas. Disponível em:<http://py.franciscosouza.net/capitulo_18.html>. Acesso No dia 17 de Julho de 2012 ás 15h:10min. Capitulo 19 : Filas. Disponível em:<http://py.franciscosouza.net/capitulo_19.html>. Acesso No dia 17 de Julho de 2012 ás 15h:00min. Capitulo 20 : Árvores. Disponível em:<http://py.franciscosouza.net/capitulo_20.html>. Acesso No dia 17 de Julho de 2012 ás 15h:20min. Introdução a Estrutura de Dados em Python 33
  33. 33. o Borges Eduardo Luiz.Python Para Desenvolvedores. Rio deJaneiro, Edição do Autor, 2009. Introdução a Estrutura de Dados em Python 34
  34. 34. Introdução a Estrutura de Dados em Python 35
  35. 35. Introdução a Estrutura de Dados em Python 36
  36. 36. Obrigado pela Atenção! Introdução a Estrutura de Dados em Python 37
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×