Orientação a objetos e frameworks
|
|
- Juan Bonilha Vidal
- 7 Há anos
- Visualizações:
Transcrição
1 Orientação a objetos e frameworks 1
2 Objetivo deste módulo Apresentar conceitos fundamentais de: orientação a objetos organização de programas em vários módulos Explicar conceitos a partir do nível básico para: programadores que nunca usaram OO programadores que já usaram OO em outras linguagens 2
3 Orientação a objetos: a origem Linguagem Simula 1967 Noruega: Ole-Johan Dahl e Kristen Nygaard objetos, classes, sub-classes métodos virtuais (funções associadas a objetos específicos em tempo de execução) 3
4 Orientação a objetos: evolução Smalltalk 1980 EUA, Xerox PARC (Palo Alto Research Center): Alan Kay, Dan Ingalls, Adele Goldberg et. al. terminologia: Object oriented programming message passing, late binding (a idéia por trás de métodos virtuais) 4
5 Smalltalk
6 Squeak: Smalltalk livre 6
7 Conceito: objeto Um componente de software que inclui dados (atributos) e comportamentos (métodos) Em geral, os atributos são manipulados pelos métodos do próprio objeto (encapsulamento) Figuras: bycicle (bicicleta), The Java Tutorial 7
8 Exemplo: um objeto dict >>> d = {'AM':'Manaus', 'PE':'Recife', 'PR': 'Curitiba'} >>> d.keys() ['PR', 'AM', 'PE'] >>> d.get('pe') 'Recife' >>> d.pop('pr') 'Curitiba' >>> d {'AM': 'Manaus', 'PE': 'Recife'} >>> len(d) 2 >>> d. len () 2 Métodos: keys, get, pop, len etc. 8
9 Exemplo: um objeto dict Sobrecarga de operadores: [ ]: getitem >>> d {'AM': 'Manaus', 'PE': 'Recife'} setitem >>> d['am'] 'Manaus' >>> d. getitem ('AM') 'Manaus' >>> d['mg'] = 'Belo Horizonte' >>> d. setitem ('RJ', 'Rio de Janeiro') >>> d {'MG': 'Belo Horizonte', 'AM': 'Manaus', 'RJ': 'Rio de Janeiro', 'PE': 'Recife'} 9
10 Exemplo: um objeto dict Atributos de dados: class, doc >>> d. class <type 'dict'> >>> print d. doc dict() -> new empty dictionary. dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs. dict(seq) -> new dictionary initialized as if via: d = {} for k, v in seq: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2) 10
11 Exemplo: um objeto dict Em Python, métodos também são atributos >>> dir(d) [' class ', ' cmp ', ' contains ', ' delattr ', ' delitem ', ' doc ', ' eq ', ' format ', ' ge ', ' getattribute ', ' getitem ', ' gt ', ' hash ', ' init ', ' iter ', ' le ', ' len ', ' lt ', ' ne ', ' new ', ' reduce ', ' reduce_ex ', ' repr ', ' setattr ', ' setitem ', ' sizeof ', ' str ', ' subclasshook ', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] 11
12 Exemplo: um objeto Tkinter.Label import Tkinter from time import strftime relogio = Tkinter.Label() relogio.pack() relogio['font'] = 'Helvetica 120 bold' relogio['text'] = strftime('%h:%m:%s') def tictac(): agora = strftime('%h:%m:%s') if agora!= relogio['text']: relogio['text'] = agora relogio.after(100, tictac) Note: Em Tkinter, atributos de dados são acessados via [ ]: getitem e setitem tictac() relogio.mainloop() 12
13 Objetos em linguagens Existem linguagens baseadas em objetos e linguagens orientadas a objetos baseadas em objetos: permitem que o programador use os tipos de objetos fornecidos, mas não permitem que ele crie seus próprios tipos de objetos Ex. Visual Basic antes da era.net 13
14 Objetos em Python Tudo é objeto: não existem tipos primitivos desde Python 2.2, dezembro de 2001 >>> >>> 5. add (3) 8 >>> type(5) <type 'int'> 14
15 Funções são objetos >>> def fatorial(n):... '''devolve n!'''... return 1 if n < 2 else n * fatorial(n-1)... >>> fatorial(5) 120 >>> fat = fatorial >>> fat <function fatorial at 0x1004b5f50> >>> fat(42) L >>> fatorial. doc 'devolve n!' >>> fatorial. name 'fatorial' >>> fatorial. code <code object fatorial at 0x1004b84e0, file "<stdin>", line 1> >>> fatorial. code.co_varnames ('n',) 15
16 Funções são objetos >>> fatorial. code.co_code ' \x00\x00d\x01\x00j\x00\x00o\x05\x00\x01d\x02\x00s\x01 \x00\x00t\x00\x00 \x00\x00d\x02\x00\x18\x83\x01\x00\x14s' >>> from dis import dis >>> dis(fatorial. code.co_code) 0 LOAD_FAST 0 (0) 3 LOAD_CONST 1 (1) 6 COMPARE_OP 0 (<) 9 JUMP_IF_FALSE 5 (to 17) Bytecode da 12 POP_TOP 13 LOAD_CONST 2 (2) 16 RETURN_VALUE função fatorial >> 17 POP_TOP 18 LOAD_FAST 0 (0) 21 LOAD_GLOBAL 0 (0) 24 LOAD_FAST 0 (0) 27 LOAD_CONST 2 (2) 30 BINARY_SUBTRACT 31 CALL_FUNCTION 1 34 BINARY_MULTIPLY 35 RETURN_VALUE >>> 16
17 Objetos têm tipo Tipagem forte: normalmente, Python não faz conversão automática entre tipos >>> a = 10 >>> b = '9' >>> a + b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str' >>> a + int(b) 19 >>> str(a) + b '109' >>> 77 * None Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for *: 'int' and 'NoneType' >>> 17
18 Tipagem dinâmica: variáveis não têm tipo >>> def dobro(x):... return x * 2... >>> dobro(7) 14 >>> dobro(7.1) 14.2 >>> dobro('bom') 'bombom' >>> dobro([10, 20, 30]) [10, 20, 30, 10, 20, 30] >>> dobro(none) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in dobro TypeError: unsupported operand type(s) for *: 'NoneType' and 'int' 18
19 Duck typing Se voa como um pato, nada como um pato e grasna como um pato, é um pato. Tipagem dinâmica permite duck typing (tipagem pato) estilo de programação que evita verificar os tipos dos objetos, mas apenas seus métodos No exemplo anterior, a função dobro funciona com qualquer objeto x que consiga fazer x * 2 19
20 Tipagem forte x fraca Tipagem forte x fraca refere-se a conversão automática de valores de JavaScript (ECMAScript 5) em Node.js 0.6 tipos diferente. Linguagens de tipagem fraca são muito liberais na mistura entre tipos, e isso é uma fonte de bugs. Veja alguns resultados estranhos obtidos com JavaScript, que tem tipagem fraca. Em Python as três expressões acima geram TypeError, e as três últimas resultam False. Python tem tipagem forte. > 10 + '9' '109' > 10 + '9' * 1 19 > '10' + 9 * 1 '109' > 0 == '0' true > 0 == '' true > '0' == '' false 20
21 Tipagem forte x fraca, dinâmica x estática Tipagem forte x fraca refere-se a conversão automática de valores de tipos diferentes Tipagem dinâmica x estática refere-se à declaração dos tipos das variáveis, parâmetros formais e valores devolvidos pelas funções Linguagens de tipagem estática exigem a declaração dos tipos, ou usam inferência de tipos para garantir que uma variável será associada a somente a valores de um tipo 21
22 Tipagem em linguagens Smalltalk dinâmica forte Python dinâmica forte Ruby dinâmica forte C (K&R) estática fraca C (ANSI) estática forte Java estática forte C# estática forte JavaScript dinâmica fraca } combinação perigosa: PHP dinâmica fraca bugs sorrateiros 22
23 Conversões automáticas Python faz algumas (poucas) conversões automáticas entre tipos: Promoção de int para float Promoção de str para unicode assume o encoding padrão: ASCII por default >>> 6 * >>> 'Spam, ' + u'eggs' u'spam, eggs' >>> 23
24 Funções para inspecionar objetos type(obj): devolve o tipo do objeto o tipo é uma classe dir(obj): devolve os nomes dos atributos do objeto métodos e atributos de dados devolve uma lista útil para uso interativo, mas não necessariamente completa 24
25 Objetos podem receber novos atributos Em geral, é possível atribuir valores a atributos não pré-definidos, em tempo de execução. Exceções: tipos embutidos, tipos com slots >>> fatorial <function fatorial at 0x1004b5f50> >>> fatorial._autor = 'Fulano de Tal' >>> fatorial._autor 'Fulano de Tal' >>> s = 'sapo' >>> s.nome = 'Joca' Traceback (most recent call last):... AttributeError: 'str' object has no attribute 'nome' 25
26 Acesso dinâmico a atributos getattr(obj, nome_do_atributo): acessar hasattr(obj, nome_do_atributo): testar setattr(obj, nome_do_atributo, valor): criar ou alterar delattr(obj, nome_do_atributo): remover 26
27 Acesso dinâmico >>> dobro <function dobro at 0x a8> >>> dobro. doc 'devolve duas vezes x' >>> getattr(dobro, ' doc ') 'devolve duas vezes x' >>> hasattr(dobro, 'peso') False >>> setattr(dobro, '_inspecao', ' ') >>> dobro._inspecao ' ' >>> del dobro._inspecao >>> hasattr(dobro, '_inspecao') False 27
28 Acesso dinâmico >>> t = (1,) >>> type(t) <type 'tuple'> >>> for nome_atr in dir(t):... print nome_atr.ljust(16), getattr(t, nome_atr)... add <method-wrapper ' add ' of tuple object at... class <type 'tuple'> contains <method-wrapper ' contains ' of tuple object at... delattr <method-wrapper ' delattr ' of tuple object at... doc tuple() -> empty tuple tuple(iterable) -> tuple initialized from iterable's items subclasshook <built-in method subclasshook of type object at. If the argument is a tuple, the return value is the same object. eq <method-wrapper ' eq ' of tuple object at... format <built-in method format of tuple object at... [...] len <method-wrapper ' len ' of tuple object at... [...] str <method-wrapper ' str ' of tuple object at... count <built-in method count of tuple object at... index <built-in method index of tuple object at... 28
29 Conceito: classe Uma categoria, ou tipo, de objeto Uma idéia abstrata, uma forma platônica Exemplo: classe Cão : Eu digo: Ontem eu comprei um cão Você não sabe exatamente qual cão, mas sabe: é um mamífero, quadrúpede, carnívoro pode ser domesticado (normalmente) cabe em um automóvel 29
30 Exemplar de cão: instância da classe Cao >>> rex = Cao() instanciação 30
31 Classe Cao class Mamifero(object): """lição de casa: implementar""" instanciação class Cao(Mamifero): qt_patas = 4 carnivoro = True nervoso = False def init (self, nome): self.nome = nome def latir(self, vezes=1): # quando nervoso, late o dobro vezes = vezes + (self.nervoso * vezes) print self.nome + ':' + ' Au!' * vezes def str (self): return self.nome def repr (self): return 'Cao({0!r})'.format(self.nome) >>> rex = Cao('Rex') >>> rex Cao('Rex') >>> print rex Rex >>> rex.qt_patas 4 >>> rex.latir() Rex: Au! >>> rex.latir(2) Rex: Au! Au! >>> rex.nervoso = True >>> rex.latir(3) Rex: Au! Au! Au! Au! Au! Au! modulo2.git/cao.py 31
32 Classe Cao em Python class Mamifero(object): """lição de casa: implementar""" class Cao(Mamifero): qt_patas = 4 carnivoro = True nervoso = False def init (self, nome): self.nome = nome def latir(self, vezes=1): # quando nervoso, late o dobro vezes = vezes + (self.nervoso * vezes) print self.nome + ':' + ' Au!' * vezes def str (self): return self.nome def repr (self): return 'Cao({0!r})'.format(self.nome) atributos de dados na classe funcionam como valores default para os atributos das instâncas init é o construtor, ou melhor, o inicializador modulo2.git/cao.py 32
33 Classe Cao em Python class Mamifero(object): """lição de casa: implementar""" class Cao(Mamifero): qt_patas = 4 carnivoro = True nervoso = False def init (self, nome): self.nome = nome def latir(self, vezes=1): # quando nervoso, late o dobro vezes = vezes + (self.nervoso * vezes) print self.nome + ':' + ' Au!' * vezes def str (self): return self.nome def repr (self): return 'Cao({0!r})'.format(self.nome) self é o 1º parâmetro em todos os métodos de instância atributos da instância só podem ser acessados via self modulo2.git/cao.py 33
34 Classe Cao class Mamifero(object): """lição de casa: implementar""" class Cao(Mamifero): qt_patas = 4 carnivoro = True nervoso = False def init (self, nome): self.nome = nome def latir(self, vezes=1): # quando nervoso, late o dobro vezes = vezes + (self.nervoso * vezes) print self.nome + ':' + ' Au!' * vezes def str (self): return self.nome def repr (self): return 'Cao({0!r})'.format(self.nome) invocação >>> rex = Cao('Rex') >>> rex Cao('Rex') >>> print rex Rex >>> rex.qt_patas 4 >>> rex.latir() Rex: Au! >>> rex.latir(2) Rex: Au! Au! na invocação do método, a instância é passada implicitamente na posição do self modulo2.git/cao.py 34
35 Mamifero: superclasse de Cao class Mamifero(object): """lição de casa: implementar""" class Cao(Mamifero): qt_patas = 4 carnivoro = True nervoso = False def init (self, nome): self.nome = nome def latir(self, vezes=1): # quando nervoso, late o dobro vezes = vezes + (self.nervoso * vezes) print self.nome + ':' + ' Au!' * vezes def str (self): return self.nome def repr (self): return 'Cao({0!r})'.format(self.nome) UML diagrama de classe generalização modulo2.git/cao.py 35
36 Subclasses de Cao Continuação de cao.py class Pequines(Cao): nervoso = True class Mastiff(Cao): def latir(self, vezes=1): # o mastiff não muda seu latido quando nervoso print self.nome + ':' + ' Wuff!' * vezes class SaoBernardo(Cao): def init (self, nome): Cao. init (self, nome) self.doses = 10 def servir(self): if self.doses == 0: raise ValueError('Acabou o conhaque!') self.doses -= 1 msg = '{0} serve o conhaque (restam {1} doses)' print msg.format(self.nome, self.doses) Diz a lenda que o cão São Bernardo leva um pequeno barril de conhaque para resgatar viajantes perdidos na neve. 36
37 Subclasses de Cao class Pequines(Cao): nervoso = True class Mastiff(Cao): def latir(self, vezes=1): # o mastiff não muda seu latido quando nervoso print self.nome + ':' + ' Wuff!' * vezes class SaoBernardo(Cao): def init (self, nome): Cao. init (self, nome) self.doses = 10 def servir(self): if self.doses == 0: raise ValueError('Acabou o conhaque!') self.doses -= 1 msg = '{0} serve o conhaque (restam {1} doses)' print msg.format(self.nome, self.doses) >>> sansao = SaoBernardo('Sansao') >>> sansao.servir() Sansao serve o conhaque (restam 9 doses) >>> sansao.doses = 1 >>> sansao.servir() Sansao serve o conhaque (restam 0 doses) >>> sansao.servir() Traceback (most recent call last):... ValueError: Acabou o conhaque! 37
38 Subclasses de Cao Continuação de cao.py class Pequines(Cao): nervoso = True class Mastiff(Cao): def latir(self, vezes=1): # o mastiff não muda seu latido quando nervoso print self.nome + ':' + ' Wuff!' * vezes class SaoBernardo(Cao): def init (self, nome): Cao. init (self, nome) self.doses = 10 def servir(self): if self.doses == 0: raise ValueError('Acabou o conhaque!') self.doses -= 1 msg = '{0} serve o conhaque (restam {1} doses)' print msg.format(self.nome, self.doses) 38
39 Relógio com classe import Tkinter from time import strftime class Relogio(Tkinter.Label): def init (self): Tkinter.Label. init (self) self.pack() self['text'] = strftime('%h:%m:%s') self['font'] = 'Helvetica 120 bold' self.tictac() def tictac(self): agora = strftime('%h:%m:%s') if agora!= self['text']: self['text'] = agora self.after(100, self.tictac) rel = Relogio() rel.mainloop() modulo2.git/relogio_oo.py 39
40 Uma pequena parte da hierarquia de classes do Tkinter herança múltipla mixin herança múltipla 40
41 Um pouco mais da hierarquia de classes do Tkinter 41
42 Hierarquia de classes dos objetos gráficos dotkinter 42
43 Herança múltipla Refatoração de cao.py para cao2.py Reutilizar o latido do mastiff em outros cães grandes mixin herança múltipla herança múltipla class Cao(Mamifero): qt_patas = 4 carnivoro = True nervoso = False def init (self, nome): self.nome = nome def latir(self, vezes=1): # quando nervoso, late o dobro vezes = vezes + (self.nervoso * vezes) print self.nome + ':' + ' Au!' * vezes def str (self): return self.nome def repr (self): return 'Cao({0!r})'.format(self.nome) class Grande(object): """ Mixin: muda o latido""" def latir(self, vezes=1): # faz de conta que cães grandes não mudam # seu latido quando nervosos print self.nome + ':' + ' Wuff!' * vezes class Mastiff(Grande, Cao): """ O mastiff é o maior cão que existe """ class SaoBernardo(Grande, Cao): def init (self, nome): Cao. init (self, nome) self.doses = 10 def servir(self): if self.doses == 0: raise ValueError('Acabou o conhaque!') self.doses -= 1 msg = '{0} serve o conhaque (restam {1} doses)' print msg.format(self.nome, self.doses) modulo2.git/cao2.py 43
44 Herança múltipla class Cao(Mamifero): qt_patas = 4 carnivoro = True nervoso = False def init (self, nome): self.nome = nome def latir(self, vezes=1): # quando nervoso, late o dobro vezes = vezes + (self.nervoso * vezes) print self.nome + ':' + ' Au!' * vezes def str (self): return self.nome def repr (self): return 'Cao({0!r})'.format(self.nome) class Grande(object): """ Mixin: muda o latido""" def latir(self, vezes=1): # faz de conta que cães grandes não mudam # seu latido quando nervosos print self.nome + ':' + ' Wuff!' * vezes class Mastiff(Grande, Cao): """ O mastiff é o maior cão que existe """ class SaoBernardo(Grande, Cao): def init (self, nome): Cao. init (self, nome) self.doses = 10 def servir(self): if self.doses == 0: raise ValueError('Acabou o conhaque!') self.doses -= 1 msg = '{0} serve o conhaque (restam {1} doses)' print msg.format(self.nome, self.doses) modulo2.git/cao2.py 44
45 As duas hierarquias de um sistema OO Hierarquia de classes is-a: é um Hierarquia de objetos part-of: parte de Object-oriented Analysis and Design with Applications 2ed. - Grady Booch 45
46 As duas hierarquias de um sistema OO Object-oriented Analysis and Design with Applications 3ed. - Booch et. al. 46
47 from Tkinter import Frame, Label, Button Timer class Timer(Frame): def init (self): Frame. init (self) self.inicio = self.agora = 15 self.pendente = None # alarme pendente self.grid() self.mostrador = Label(self, width=2, anchor='e', font='helvetica 120 bold',) self.mostrador.grid(column=0, row=0, sticky='nswe') self.bt_start = Button(self, text='start', command=self.start) self.bt_start.grid(column=0, row=1, sticky='we') self.atualizar_mostrador() def atualizar_mostrador(self): self.mostrador['text'] = str(self.agora) def start(self): if self.pendente: self.after_cancel(self.pendente) self.agora = self.inicio self.atualizar_mostrador() self.pendente = self.after(1000, self.tictac) Exemplo simples de composição def tictac(self): self.agora -= 1 self.atualizar_mostrador() if self.agora > 0: self.pendente = self.after(1000, self.tictac) timer = Timer() timer.mainloop() modulo2.git/timer.py 47
48 from Tkinter import Frame, Label, Button Timer class Timer(Frame): def init (self): Frame. init (self) self.inicio = self.agora = 15 self.pendente = None # alarme pendente self.grid() self.mostrador = Label(self, width=2, anchor='e', font='helvetica 120 bold',) self.mostrador.grid(column=0, row=0, sticky='nswe') self.bt_start = Button(self, text='start', command=self.start) self.bt_start.grid(column=0, row=1, sticky='we') self.atualizar_mostrador() def atualizar_mostrador(self): self.mostrador['text'] = str(self.agora) def start(self): if self.pendente: self.after_cancel(self.pendente) self.agora = self.inicio self.atualizar_mostrador() self.pendente = self.after(1000, self.tictac) def tictac(self): self.agora -= 1 self.atualizar_mostrador() if self.agora > 0: self.pendente = self.after(1000, self.tictac) timer = Timer() timer.mainloop() modulo2.git/timer.py 48
49 Composição Arranjo de partes de um sistema mostrador = Label() componentes, sub-componentes... bt_start = Button() timer = Timer() 49
50 instanciação instanciação from Tkinter import Frame, Label, Button class Timer(Frame): def init (self): Frame. init (self) self.inicio = self.agora = 15 self.pendente = None # alarme pendente self.grid() self.mostrador = Label(self, width=2, anchor='e', font='helvetica 120 bold',) self.mostrador.grid(column=0, row=0, sticky='nswe') self.bt_start = Button(self, text='start', command=self.start) self.bt_start.grid(column=0, row=1, sticky='we') self.atualizar_mostrador() def atualizar_mostrador(self): self.mostrador['text'] = str(self.agora) def start(self): if self.pendente: self.after_cancel(self.pendente) self.agora = self.inicio self.atualizar_mostrador() self.pendente = self.after(1000, self.tictac) def tictac(self): self.agora -= 1 self.atualizar_mostrador() if self.agora > 0: self.pendente = self.after(1000, self.tictac) instanciação timer = Timer() timer.mainloop() modulo2.git/timer.py 50
51 Composição em UML composição composição 51
Luciano Ramalho luciano@ramalho.org. setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python
Luciano Ramalho luciano@ramalho.org setembro/2012 Objetos Pythonicos Orientação a objetos e padrões de projeto em Python Para me encontrar Juntem-se a Oficinas Turing no Google Groups solicite um convite
Leia maisLuciano Ramalho luciano@ramalho.org. setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python
Luciano Ramalho luciano@ramalho.org setembro/2012 Objetos Pythonicos Orientação a objetos e padrões de projeto em Python Aula 2 Introdução à Orientação Objetos em Python (continuação) Objetivos desta aula
Leia maisComputação II (MAB 225)
Computação II (MAB 225) Fabio Mascarenhas - 2015.1 http://www.dcc.ufrj.br/~fabiom/pythonoo Sobrecarga de operadores Quase todos os operadores de Python são como == e!=: podemos definir métodos para sobrecarregá-los
Leia maisLuciano Ramalho setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python
Luciano Ramalho luciano@ramalho.org setembro/2012 Objetos Pythonicos Orientação a objetos e padrões de projeto em Python Aula 3 Variáveis e referências + Iteráveis, iteradores e geradores Objetivos desta
Leia maisDescritores de atributos em Python
Descritores de atributos em Python outubro/2012 Luciano Ramalho luciano@ramalho.org Ritmo desta palestra Recomendação: manter os olhos abertos Pré-requistos da palestra Para acompanhar os slides a seguir,
Leia maisProdutividade e qualidade em Python através da metaprogramação
Produtividade e qualidade em Python através da metaprogramação ou a visão radical na prática Luciano Ramalho ramalho@python.pro.br @ramalhoorg Fluent Python (O Reilly) Early Release: out/2014 First Edition:
Leia maisProgramação Orientada a Objetos em Python
Programação Orientada a Objetos em Python Diego Silveira Costa Nascimento Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte diego.nascimento@ifrn.edu.br 23 de junho de 2017 Ementa
Leia maisLuciano Ramalho dezembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python
Luciano Ramalho luciano@ramalho.org dezembro/2012 Objetos Pythonicos Orientação a objetos e padrões de projeto em Python Exemplo prático com funções geradoras Funções geradoras para desacoplar laços de
Leia maisPython para quem sabe Python
Python para quem sabe Python Turma 0, aula 4 Metaclasses, programação funcional e programação assíncrona Exercício: execucao.py Para entender como o interpretador Python lê um arquivo.py Tudo é executável
Leia maisPython: Exceções, Iteradores e Geradores. Claudio Esperança
Python: Exceções, Iteradores e Geradores Claudio Esperança Exceções Quando um programa encontra dificuldades não previstas, diz se que uma condição excepcional ou uma exceção ocorreu Um erro é uma exceção
Leia maisOs elementos da programação
Os elementos da programação Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisCurso de Python em 5 Horas
Curso de Python em 5 Horas Classes e Trabalhando com Arquivo Gustavo Sverzut Barbieri GPSL - UNICAMP 12 de maio de 2005 ustavo Sverzut Barbieri (GPSL - UNICAMP) Curso de Python em 5 Horas 12 de maio de
Leia maisProgramação procedimental
Prof. André Backes Programação procedimental Também chamada de programação procedural Contêm um conjunto de passos computacionais a serem executados Problemas são decompostos em sub-problemas Modularização
Leia maisComputadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004
Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 8 CLASSES E OBJECTOS 8. Objectivos Objectivos
Leia maisAula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias
SCC 124 - Introdução à Programação para Engenharias Expressões Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes Aula de
Leia maisAlgoritmos e estrutura de dados
Algoritmos e estrutura de dados Introdução Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo A linguagem Python
Leia maisSCC0124 Introdução à Programação para Engenharias
SCC0124 Introdução à Programação para Engenharias 1. Escreva uma função ehpar(n) que recebe um número inteiro n e retorna se ele é par ou ímpar. Observação: a função não deve imprimir nada na tela, apenas
Leia maisIntrodução a Programação Orientada a Objetos
Introdução a Programação Orientada a Objetos Fernando de Simas, Airton de Souza, Sérgio Roberto Centro de Ciências Tecnológicas da Terra e do Mar Universidade do Vale do Itajaí UNIVALI. 88302-202 Itajaí
Leia maisOrientação a Objetos e Java
Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características
Leia maisComputação II (MAB 225)
Computação II (MAB 225) Fabio Mascarenhas - 2015.1 http://www.dcc.ufrj.br/~fabiom/pythonoo Introdução No curso de Computação I vocês viram os conceitos básicos de programação em Python: expressões e comandos,
Leia maisPROGRAMAÇÃO E PYTHON. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes
Sjsoft, http://westmarch.sjsoft.com/2012/11/zen-of-python-poster/ PROGRAMAÇÃO E PYTHON Laboratórios de Informática 2014-2015 João Paulo Barraca, André Zúquete, Diogo Gomes Porquê Programar? Com ferramentas
Leia maisLuciano Ramalho luciano@ramalho.org. setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python
Luciano Ramalho luciano@ramalho.org setembro/2012 Objetos Pythonicos Orientação a objetos e padrões de projeto em Python Aula 4 Recapitulando iteráveis etc. Herança múltipla, MRO e super Propriedades Polimorfismo
Leia maisTCC 00308: Programação de Computadores I Organização de programas em Python
TCC 00308: Programação de Computadores I 2017.1 Organização de programas em Python Vamos programar em Python! Como um programa é organizado? Quais são os tipos de dados disponíveis? Como variáveis podem
Leia maisAula passada. Aula passada... Sequências Funções puras e modificadores. Listas Tuplos
Aula passada Listas Listas 1 Listas em compreensão Alguns idiomas úteis conjuntos ordenado de valores, cada um dos quais identificado por um índice; Operações com listas: semelhantes a operações com strings;
Leia maisComputação II MAB 225. Brunno Goldstein.
Computação II MAB 225 OO Brunno Goldstein bfgoldstein@cos.ufrj.br www.cos.ufrj.br/~bfgoldstein Ementa Programação Orientada a Objetos Tratamento de Exceções Módulos Manipulação de Arquivos Interface Gráfica
Leia maisComputação 1 - Python Aula 6 - Teórica: Listas 1/ 28
Computação 1 - Python Aula 6 - Teórica: Listas 1/ 28 Listas - Fatias Podemos usar a notação de fatias (slices) em listas: [start : end] : vai do índice start até o índice end-1 [start : ] : vai de start
Leia maisConceitos de Programação Orientada por Objectos. Rui Camacho Programação 2
Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Universidade Federal de Uberlândia Prof. Fabiano Dorça - O que é um paradigma? É uma forma de abordar um problema, segundo um conjunto de procedimentos, valores ou conceitos
Leia maisOrientação a Objetos parte 2 ENCAPSULAMENTO, CLASSES, HERANÇAS
Orientação a Objetos parte 2 ENCAPSULAMENTO, CLASSES, HERANÇAS Encapsulamento Proteger a integridade da classe escondendo certas informações dos usuários dessa classe e mostrar somente aquilo que é necessário
Leia mais[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]
[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama] Objetivos Revisar conceitos de Orientação a Objetos Classes Objetos Encapsulamento Herança Sobrescrita de métodos Sobrecarga de métodos
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
Leia maisPadrão para a codificação em Python
Padrão para a codificação em Python Bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Complexo é melhor que complicado. Esparso é melhor que denso. Legibilidade
Leia maisGabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes
Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Histórico Desenvolvida em 2012 por Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman Gratuita, Open Source e licenciada sob a Licença
Leia maisNas aulas anteriores Strings. Ciclos
Ciclos Ciclos for e while Saída e continuação num ciclo: break interromper o ciclo (sem verificar condição de paragem) continue passar à próxima iteração Podem tornar mais claros alguns programas. Condições:
Leia maisOrganização de programas em Python. Vanessa Braganholo
Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem
Leia maisIntrodução a orientação a objetos
2 Introdução a orientação a objetos Introdução 2 Linguagens procedimentais 2 Um pouco de história 2 Idéias básicas da POO 2 Classe, atributo e método 2 Herança 3 Polimorfismo 3 Vantagens e desvantagens
Leia maisFunções. Prof. Alberto Costa Neto Programação em Python
Funções Prof. Alberto Costa Neto Programação em Python Passos armazenados (e reusados) def imprimir(): Programa: imprimir() print 'Zip' imprimir() print 'Hello' print 'Fun' def imprimir(): print 'Hello'
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
Leia maisProgramação I Aula 19 Aritmética com racionais Pedro Vasconcelos DCC/FCUP
Programação I Aula 19 Aritmética com racionais DCC/FCUP DCC/FCUP 2019 1/ 30 Nesta aula 1 Aritmética com racionais 2 Simplificação 3 Operações 4 Comparações DCC/FCUP 2019 2/ 30 Aritmética com racionais
Leia maisParadigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Leia maisPython: Classes. Claudio Esperança
Python: Classes Claudio Esperança Orientação a Objetos É uma disciplina de programação assim como a Programação Estruturada Tenta unificar as idéias de algoritmos e estruturas de dados através do conceito
Leia maisLaboratório de Programação 1 Aula 04
Laboratório de Programação 1 Aula 04 Mário Hozano professor@hozano.com Ciência da Computação UFAL - Arapiraca Relembrando a aula anterior... O que são valores, tipos e variáveis? Descreva os tipos int,
Leia maisIntrodução à Programação / Programação I
Introdução à Programação / Programação I Aula 14: Deteção e correção de erros Rita P. Ribeiro 2017/2018 Departamento de Ciência de Computadores Nesta aula 1. Erros sintáticos 2. Erros de execução 3. Erros
Leia maisDicionários. Operações Aliases, cópias. Os tipos de dados compostos que estudamos até ao momento (strings, listas, tuplos) são sequenciais:
Dicionários Os tipos de dados compostos que estudamos até ao momento (strings, listas, tuplos) são sequenciais: coleções de dados ordenadas da esquerda para a direita; índice 0 para o primeiro elemento,
Leia maisComputação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas
Computação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas João C. P. da Silva Carla A. D. M. Delgado Ana Luisa Duboc Dept. Ciência da Computação - UFRJ http://www.dcc.ufrj.br/ pythonufrj/
Leia maisAula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias
SCC 12 - Introdução à Programação para Engenharias Tipos de Dados e Variáveis Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes
Leia maisConceitos de Programação Orientada a Objetos
Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não
Leia maisFundamentos da Programação
Fundamentos da Programação Segundo Teste 18 de Junho de 2014 15:00 16:30 1. (1.0) Diga quais as fases por que passa o desenvolvimento de um programa no modelo estudado e o que se faz em cada uma delas.
Leia maisComputadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2005/2006
Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Uniersidade de Coimbra Ano Lectio 2005/2006 FICHA 8 CLASSES E OBJECTOS 8. Objectios Objectios que
Leia maisProgramação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Leia maisInformática Aplicada à Engenharia Florestal
Informática Aplicada à Engenharia Florestal INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 3 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Variáveis
Leia maisPython: Listas. Claudio Esperança
Python: Listas Claudio Esperança Estruturas de dados Maneira de organizar dados de maneira a facilitar seu acesso Algumas formas são clássicas: Listas Arrays (vetores e matrizes) Tuplas (registros) Árvores
Leia maisComputação II (MAB 225)
Computação II (MAB 225) Fabio Mascarenhas - 2015.1 http://www.dcc.ufrj.br/~fabiom/pythonoo Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato em nosso
Leia maisNomes, Amarração, Verificação de Tipos, e Escopo
5 Nomes, Amarração, Verificação de Tipos, e Escopo Concepts of Programming Languages, 5/e Robert W. Sebesta Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave
Leia maisLinguagens de Programação
Linguagens de Programação Fabio Mascarenhas - 2015.2 http://www.dcc.ufrj.br/~fabiom/lp Objetos sem classes Um objeto tem duas visões: a de fora e a de dentro Visto de fora, um objeto é uma entidade opaca,
Leia maisMC-102 Aula 02 Shell Interativa, Programa Básico, Variáveis, Atribuições, Tipos Simples. Instituto de Computação Unicamp
MC-102 Aula 02 Shell Interativa, Programa Básico, Variáveis, Atribuições, Tipos Simples Instituto de Computação Unicamp 2016 Roteiro 1 Shell Interativa 2 Estrutura de um Programa em Python 3 Variáveis
Leia maisAlgoritmos e Estrutura de Dados Aula 02 Listas em Python
Algoritmos e Estrutura de Dados Aula 02 Listas em Python Profa. Alana Oliveira e Prof. Davi Viana alanaslz@gmail.com e davi.viana@lsdi.ufma.br Se não entender, pergunte! 2 1 Dados e Tipos de Dados Um dado
Leia maisProgramação orientada a objetos
Programação orientada a objetos Python fornece suporte para programação orientada a objetos: foco na criação de objetos, contendo simultaneamente dados e funcionalidade definição de objetos corresponde
Leia maisProgramação com objectos
Capítulo 11 Programação com objectos Nos exercícios deste capítulo, deve validar os argumentos dos construtores, mas não deve validar os argumentos dos outros métodos, a não ser que isso seja pedido explicitamente.
Leia maisLinguagens de Programação
Linguagens de Programação Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/lp Recursão aberta Delegação permite reutilizar a implementação dos métodos do objeto counter na implementação dos métodos
Leia mais1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores
Nesta aula... Conteúdo 1 Expressões, valores e tipos 1 2 Variáveis e atribuições 5 1 Expressões, valores e tipos Expressões e valores Tipos programas calculam expressões para produzir valores cálculo de
Leia maisComputação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28
Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28 Tipos de Dados Dados Numéricos Números Inteiros: Int/Long Ponto Flutuante: Float Números Complexos: Complex
Leia maisProgramação de Computadores
Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 3 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Variáveis String Strings
Leia maisAlgoritmos e Programação
ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS profericomartins@unemat.br
Leia maisProgramação orientada a objetos: exemplo com frações (conclusão)
Programação orientada a objetos: exemplo com frações (conclusão) Nesta aula vamos desenvolver mais métodos para a classe Fraction; Fração: construtor Métodos especiais class Fraction: def init (self,top,bottom):
Leia maisLista de Linguagens de Programação 16
Lista de Linguagens de Programação 16 Nome: Matrícula: Os exercícios desta lista devem ser todos implementados em Python. 1. Este exercício faz referência às classes implementadas em Python disponíveis
Leia maisComputação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18
Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - 1/ 18 Considere que você precisa fazer uma função que guarde o nome e o telefone de seus amigos. Sua função também deve permitir a consulta
Leia maisCOMPORTAMENTOS - Observações
COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para
Leia maisListas, conjuntos e dicionários
Listas, conjuntos e dicionários Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia maisPython: Dicionários. Claudio Esperança
Python: Dicionários Claudio Esperança Dicionários São estruturas de dados que implementam mapeamentos Um mapeamento é uma coleção de associações entre pares de valores O primeiro elemento do par é chamado
Leia maisCaracterísticas de Python. Inteligência Artificial. Baixando e Instalando. Operadores. Variáveis. Strings 9/10/2010
Características de Python Inteligência Artificial Aula 7 Profª Bianca Zadrozny http://www.ic.uff.br/~bianca/ia Gratuita. Roda em muitas plataformas. Pode ser baixada em www.python.org Fácil de ler. Ao
Leia maisEstruturas de Dados em Python
Estruturas de Dados em Python Carlos Camarão de Março de 7 Introdução Na segunda parte do curso vamos aprender a programar com estruturas (ou coleções) de dados, em Python. Python é uma linguagem orientada
Leia maisLuciano Ramalho luciano@ramalho.org @ramalhoorg. Iteráveis, geradores & cia: o caminho pythonico
Luciano Ramalho luciano@ramalho.org Iteráveis, geradores & cia: o caminho pythonico Luciano Ramalho Arquiteto de soluções Web desde 1994 1º diretor técnico do Brasil Online, na Abril S/A Muitos clientes
Leia maisOrientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento
Orientação a objetos Programação Orientada a Objetos Alexandre César Muniz de Oliveira Linguagens orientadas a procedimentos e linguagens orientadas a objetos Unidade de programação: funções e classes
Leia maisComputação 2. Aula 8 Teórica professor: Leonardo Carvalho
Computação 2 Aula 8 Teórica professor: Leonardo Carvalho Exercício Escreva uma função que recebe uma lista L de valores inteiros e retorna uma lista contendo o triplo de cada valor em L. def triplos(l):
Leia maisSequências - Tuplas. Sequências - Tuplas
Sequências - Tuplas Sequência de valores separados por vírgulas. Elementos podem ser de tipos distintos. Endereçáveis, com índice 0 para o primeiro elemento Exemplos : >>> tupla="computadores e Programacao",
Leia maisComputação 1 - Python Aula 4 - Teórica Variáveis e Atribuição, Strings. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 30
Computação 1 - Python Aula 4 - Teórica Variáveis e Atribuição, Strings 1/ 30 Variáveis e Atribuição Dados a hora, minuto e segundo em que um corredor de uma maratona partiu, e dados a hora, minuto e segundos
Leia maisRequisitos de sistemas
Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento
Leia maisAlgoritmos e estrutura de dados
Algoritmos e estrutura de dados Listas Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Listas Listas encadeadas
Leia maisOrientação a Objetos com Ruby
Orientação a Objetos com Ruby Arthur de Moura Del Esposte - esposte@ime.usp.br By Arthur Del Esposte licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) Aula 02 - Estruturas de
Leia maisProjeto de Linguagem. Linguagens de Programação
Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem
Leia maisUniversidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
1 - Introdução 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: - cada vez mais próximas da percepção humana - e que permitam lidar
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisLuciano Ramalho setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python
Luciano Ramalho luciano@ramalho.org setembro/2012 Objetos Pythonicos Orientação a objetos e padrões de projeto em Python Aula 5 Metaprogramação e o Python Data Model Sobrecarga de operadores Objetos invocáveis
Leia maisINF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 Conceitos de Orientação a Objetos Classe Objeto Mensagem Orientação
Leia maisNesta aula... Diagramas da stack. Recursão. 1 Funções. 2 Valores booleanos e condicionais. 3 Execução condicional e recursão
Nesta aula... 1 2 Diagramas da stack 3 Recursão Instruções compostas keyword expression: statement statement... Âmbito de variáveis âmbito local: quando precisa do valor de uma variável, Python procura
Leia maisComputação I - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings
Computação I - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings João C. P. da Silva Carla A. D. M. Delgado Ana Luisa Duboc Dept. Ciência da Computação - UFRJ http://www.dcc.ufrj.br/ pythonufrj/
Leia maisAbaixo iremos pormenorizar cada um de seus atributos:
1 PYTHON Python é uma linguagem de programação de alto nível, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. A linguagem foi projetada com a filosofia
Leia maisReinaldo Gomes Análise/projeto estruturado
Programação Orientada a Objetos Objetos, Classes e Mensagens O Modelo de Objetos Objetos e Classes Mensagens e métodos Reinaldo Gomes reinaldo@cefet-al.br Decomposição Análise/projeto estruturado Soluciona
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. JAVA6 e Programação Orientada Pelos Objectos, F. Mário Martins, FCA, Julho de 2009.
JAVA6 e Programação Orientada Pelos Objectos, F. Mário Martins, FCA, Julho de 2009. Thinking in Java, 4 th Edition, Bruce Eckel. 1 1 - Introdução 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens
Leia maisParadigmas de Linguagens de Programação. Expressões e Instruções de Atribuição
Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação
Leia maisProgramação Orientada a Objetos
Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no
Leia maisProgramação I Aula 17 Correção de programas Pedro Vasconcelos DCC/FCUP
Programação I Aula 17 Correção de programas DCC/FCUP DCC/FCUP 2019 1/ 30 Nesta aula 1 Classes de erros 2 Execução passo-a-passo 3 Testes na documentação 4 Asserções 5 Outros erros comuns DCC/FCUP 2019
Leia maisLinguagem de Programação e Compiladores
Linguagem de Programação e Compiladores Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 24 de abril de 2012 1 / 20 Sumário 1 Introdução
Leia maisPolimorfismo. O que é polimorfismo?
O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus
Leia maisC O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O
C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O NOME DE CLASSES Toda classe deve começar com uma letra maiúscula. Não pode conter letras não ASCII (caracteres
Leia maisLinguagens de Programação 2015/1. Ruby. Diego Rodrigues Leonardo Rodrigues
Linguagens de Programação 2015/1 Ruby Diego Rodrigues Leonardo Rodrigues Introdução Criada em 1995 pelo japonês Yuri Matsumoto Uniu partes das suas linguagens favoritas: Perl, Smalltalk, Eiffel, Ada e
Leia maisComputação 2. Aula 7 Teórica professor: Leonardo Carvalho
Computação 2 Aula 7 Teórica professor: Leonardo Carvalho Abstração 2 Abstração Do latim abstracione, que significa separação Ação de isolar um elemento de um todo 3 Exemplo O que você vê neste vídeo? 4
Leia maisIntrodução à Ciência da Computação Disciplina:
Introdução à Ciência da Computação Disciplina: 113913 Prof. Edison Ishikawa Universidade de Brasília UnB Instituto de Ciências Exatas IE Departamento de Ciência da Computação CIC STRINGS Lista de strings
Leia mais