Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

23/05/2022
1
PARADIGMAS DE LINGUAGENS 
DE PROGRAMAÇÃO EM PYTHON
Aula 11 – Paradigmas Orientado a 
Objetos, Funcional e Lógico.
Prof. Ronaldo Candido
ronaldo.candido@estacio.br 2022.1
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Conteúdo Programático
1. Paradigma orientado a objeto.
2. Objetos e Classes.
3. Abstração de Classes.
4. Paradigma Funcional.
5. Paradigma Lógico.
6. Atividade verificadora de aprendizagem.
7. Aprenda+.
Objetivos da aula
• Apresentar o paradigma orientado a objetos e sua importância para a modelagem de 
sistemas.
1
2
23/05/2022
2
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Situação-problema
• Os paradigmas de programação são um modelo, uma metodologia de programação. 
Você já conhece o paradigma conhecido como programação estruturada que utiliza 
subprogramas e três estruturas básicas: sequência, seleção e repetição. Seus códigos 
ficam em um mesmo bloco, sendo mais difícil e demorado realizar alterações pois é 
necessário verificar se outro trecho de código depende dele. Vamos supor que um 
determinado software possui uma função de conexão com um banco de dados, a qual 
é utilizada em diversos pontos dele e que é utilizada de forma corriqueira em outros 
softwares.
• Como você poderia reutilizar esse código ? De que forma poderia ser disponibilizado ?
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Paradigmas de Linguagens de Programação
• Os paradigmas orientado a objetos, estruturado e concorrente estão contidos 
numa classificação maior, a das LPs imperativas, que é caracterizada pelos 
conceitos de variáveis, atribuição e valor. Isso se deve à troca de estados pelas 
mudanças nos conteúdos das variáveis (estado da memória do computador), ou 
seja, às propriedades e ao funcionamento da máquina de Von Neumman.
3
4
23/05/2022
3
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Paradigma Orientado a Objetos
• Os paradigmas de programação são metodologias de programação. Já conhecemos 
o paradigma imperativo conhecido como programação estruturada que utiliza 
subprogramas e três estruturas básicas: sequência, seleção e repetição. Seus 
códigos ficam em um mesmo bloco, sendo mais difícil e demorado realizar 
alterações pois é necessário verificar se outro trecho de código depende dele.
• Algumas linguagens, como o Python, oferecem tipos abstratos de dados a partir da 
técnica de Encapsulamento, onde ocorre o agrupamento de sub-rotinas e seus 
dados, usando o conceito de Classes. Linguagens originárias :
 SIMULA 67 : Primeira Linguagem OO, projetada para realizar 
simulações.
 SMALLTALK (1983) : O termo POO é introduzido e torna o processo de 
construção de aplicações acessível a qualquer usuário.
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Principais Linguagens OO
• Maior índice de reaproveitamento de código.
• Maior facilidade de manutenção.
• Maior confiabilidade no código.
• Maior facilidade de gerenciamento do código.
• Maior robustez.
• Extensão da biblioteca de classes.
• Definição de subclasses (herança).
• Implementação de novos métodos.
• Redefinição de métodos (polimorfismo).
5
6
23/05/2022
4
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Objetos e Classes
• Alguns autores abordam objeto como:
 Uma coisa material ou abstrata que pode ser percebida pelos sentidos e descrita por meio 
das suas características, comportamentos e estado atual.
• Objetos são substantivos do domínio do problema.
• Todo objeto é a instância de apenas uma classe.
• A comunicação entre objetos é realizada por troca de mensagens. Já uma classe é 
um modelo de objetos.
carro esportivo carro de passeio carro rural
Classe: Veículo
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Objetos e Classes (continuação)
• Modelo de Classe :
 aluno1
aluno2
 aluno3
7
8
23/05/2022
5
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Objetos e Classes (continuação)
• As classes definem a estrutura e o comportamento de um tipo de objeto. Cada
classe é um modelo estático que permite extrair um conjunto de características
do conceito que representa. Os dados chamamos de ATRIBUTOS ou PROPRIEDADES
e as funções são os MÉTODOS :
Diagrama de classe no padrão UML
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Abstração de Classes
• São abstrações de objetos do mundo real.
• Cada classe deve representar um conceito :
 Exemplos: Pessoa, Veiculo, Tabela, Janela.
• Um conceito pode ser descrito por atributos. Exemplos :
 Pessoa: nome, data de nascimento, nacionalidade, sexo, idade.
 Veículo: marca, modelo, tipo, ano.
 Data: dia, mês, ano.
• Os atributos podem sofrer operações :
 Leitura, escrita, atribuição, cópia, comparação, adição.
9
10
23/05/2022
6
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Usando o paradigma orientado a objetos
• Os dados e as funções são definidos em uma classe para modelar os objetos. Toda 
classe tem três compartimentos:
 Seu nome (Conta);
 Seus atributos (Número, Nome, Saldo, Limite);
 Seus métodos (as assinaturas dos métodos das classes: criarConta(): void; e 
mostrarSaldoLimite(saldolimite : double): double).
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Exemplo de OO em Python
#Carro.py - definindo a classe
class Carro:
 #atributos
 chassi = '000000000000'
 cor = 1
 motor = '2.0'
 litros = 0
 #construtor
 def __init__(self,chassi,cor,motor,litros):
 self.chassi = chassi
 self.cor = cor
 self.motor = motor
 self.litros = litros
 #métodos
 def ligar(self):
 print('Carro ligado...')
 def tem_Gasolina(self):
 if (self.litros > 0):
 return True
 else:
 return False
self indica algo da própria classe !!!
11
12
23/05/2022
7
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Exemplo de OO em Python (continuação)
#programa_Carro.py
from Carro import Carro
#criando o objeto
carro1 = Carro('9ASWX000001',2,1.8,0)
#exibindo os dados
print('Novo carro :\nChassi - %s' %carro1.chassi)
print('Cor: ', ('Azul' if carro1.cor==1 else 'Branco'))
print ("Motor: ", carro1.motor)
#executando os métodos
if (carro1.tem_Gasolina()==False):
 print('Precisa abastecer')
else:
 carro1.ligar()
Este programa utiliza 
a classe Carro !!!
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Paradigma Funcional
• O paradigma funcional nasceu na década de 1960 motivado pela necessidade de 
implementação de aplicações no campo da Inteligência Artificial (IA): computação 
simbólica, prova de teoremas, sistema baseado em regras e processamento de 
linguagem natural (falada e escrita).
• As linguagens funcionais mais populares são LISP e Prolog, mas existem ainda 
Scheme, ASpecT, Calm, Haskell, etc.
• Normalmente, as linguagens funcionais são interpretadas; contudo, também 
podem ser compiladas.
• Uma linguagem funcional possui:
 Conjunto de funções primitivas.
 Conjunto de formas funcionais para construir funções complexas a partir das primitivas.
 Estruturas (listas) para representar dados.
13
14
23/05/2022
8
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Exemplo01 em linguagem Haskell
module Main where
-- função fatorial
factorial n = if n == 0 then 1 else n * factorial (n - 1)
-- função principal
main = do putStrLn "Quanto é 5! ?"
 xchamado de declarativo, ele surgiu nos anos 1970. Sua vinda oferecia uma 
perspectiva diferente de tudo que se fazia naquela época, cujo predomínio das LPs 
estruturadas expressava a lógica do programa sob a forma de algoritmos escritos na 
linguagem.
• O paradigma lógico declara os objetivos do programa - e não sua solução. Na 
programação lógica, os objetivos são estabelecidos por intermédio de um conjunto de 
regras; por isso, às vezes, ela e ́ chamada de programação baseada em regras. Ele tem 
duas grandes vertentes de aplicação: campo da IA e acesso de informações em bancos 
de dados.
• No segmento da IA, a LP Prolog tem sido a preferida. Em outros campos dela, temos a 
linguagem Mycin, também declarativa, para modelar sistemas especializados. No 
campo de banco de dados, o predomínio absoluto é da LP SQL (Structured Query 
Language).
15
16
23/05/2022
9
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Exemplo02 em SQL
/* Criando uma tabela em SQL com os campos Id, Nome e Idade*/
CREATE TABLE tbTeste(id int NOT NULL,
nome varchar(80), idade int, PRIMARY KEY(id));
/* Inserindo três registros na tabela */
INSERT INTO tbTeste VALUES(1, 'Joao',25);
INSERT INTO tbTeste VALUES(2, 'Maria',19);
INSERT INTO tbTeste VALUES(3, 'Ana',56);
/* Mostrando todos os registros da tabela ordenado pelo Nome */
SELECT * FROM tbTeste order by nome;
/* Mostrando o total de registros e a soma das idades */
SELECT count(*), sum(idade) FROM tbTeste ;
Execute no 
onlinegdb.com 
em SQLite !!!
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Prática de exemplos em Python
#Classe Conta.py - definindo a classe
class Conta:
#atributos da classe
numero = 0
nome = ''
saldo = 0.00
limite = 0.00
#construtor
def __init__(self,numero,nome,saldo,limite):
self.numero = numero
self.nome = nome
self.saldo = saldo
self.limite = limite
#métodos (funções)
def criarConta(self):
 print('Conta criada para ',self.nome)
def mostrarSaldoLimite(self):
 print('Saldo: R$ ',self.saldo)
 print('limite:R$ ',self.limite)
self indica algo da própria classe !!! 
Outras linguagens usam a palavra this.
17
18
23/05/2022
10
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Prática de exemplos em Python (continuação)
#programa_Conta.py
from Conta import Conta
#entrada de dados
num = int(input(‘Número da conta: ’))
nome = input(‘Nome: ‘)
limite = input(‘Limite: ‘)
#criando o objeto
c1 = Conta(num,nome,0,limite)
c1.criarConta()
c1.saldo = 100
#exibindo os dados
c1.mostrarSaldoLimite()
Este programa utiliza 
a classe Conta !!!
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
• Codificar os exemplos mostrados.
• Acessar o site e resolver os exercícios 4 e 5.
Atividade verificadora de aprendizagem
19
20
23/05/2022
11
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Aprenda +
• COSTA, S. "Uma visão muito breve sobre o paradigma funcional". Disponível em 
. Acesso em: 23 mai. 
2022.
• Python Brasil. "Python e Programação Orientada a Objeto". Disponível em 
. Acesso em: 23 mai. 2022.
• Python Brasil. "Principios da Programação Funcional em Python". Disponível em: 
. Acesso em: 23 mai. 2022.
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Aprenda + (continuação)
• Atividade autônoma Aura :
Questão 1) (FUNCERN – IF-RN, 2017) (Adaptada). Analise o seguinte código escrito em Python, que 
define a estrutura da classe ContaBancaria:
class ContaBancaria:
 num_contas = 0
 def __init__(self, agencia, numero, saldo):
self.agencia=agencia
self.numero=numero
self.saldo=saldo
ContaBancaria.num_contas +=1
 def __del__(self): 
 ContaBancaria.num_contas -=1
 def depositar (self,valor):
self.saldo = self.saldo + valor
def sacar (self,valor): self.saldo = self.saldo – valor
def consultarSaldo(self): return self.saldo
Sobre a classe descrita e as regras de 
programação orientada a objetos em Python, 
indique a alternativa correta :
a) criação de objetos chama primeiro o método 
__init__() e, em seguida, o __new__().
b) palavra self deve ser fornecida como 
argumento em todos os métodos de instâncias.
c) variável num_contas é encapsulada e 
individual para cada instância da classe.
d) palavra @static escrita antes da definição do 
método sacar() torna o método estático.
e) estamos diante de situação onde há herança.
21
22
23/05/2022
12
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Aprenda + (continuação)
Questão 2) (SUGEP-UFRPE, 2016) Considere as afirmações abaixo, sobre os paradigmas de 
linguagens de programação. 
1) As linguagens de programação Python, Ruby, C#, Cython e Lua são multiparadigmáticas e 
podem ser classificadas, pelo menos, nos paradigmas Orientado a Objetos, Funcional e 
Imperativo. 
2) As linguagens de programação Object-Pascal (Delphi), Python, C++ e Java, embora deem 
suporte à Orientação a Objetos (OO), não são completamente orientadas a objetos. 
3) As linguagens de programação Smalltalk e Ruby são completamente orientadas a objetos, 
uma vez que todo valor de dados é um objeto e todas as operações são vias chamadas de 
métodos. Está(ão) correta(s):
a) 1, 2 e 3.
b) 2 e 3, apenas.
c) 1 e 2, apenas.
d) 1 e 3, apenas.
e) 3, apenas.
AULA 11
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
BORGES, L. E. Python para Desenvolvedores. Parte IV: Orientação a objetos. 2a. ed. Rio 
de Janeiro: Novatec, 2014.
PERKOVIC, L. Introdução à Computação Usando Python - Um Foco no Desenvolvimento de 
Aplicações. 1a. ed. Rio de Janeiro: LTC, 2016. Disponível em: 
. Acesso em: 
14 fev. 2022.
SEBESTA, R. W. Conceitos de Linguagens de Programação. 11a. ed. Porto Alegre: 
Bookman, 2018. Disponível em: 
. Acesso em: 14 
fev. 2022.
Referências
23
24
23/05/2022
13
Prof. Ronaldo Candido
ronaldo.candido@estacio.br
Dúvidas, sugestões ou análises ???
PARADIGMAS DE LINGUAGENS 
DE PROGRAMAÇÃO EM PYTHON
25

Mais conteúdos dessa disciplina