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

17/05/2022
1
PARADIGMAS DE LINGUAGENS 
DE PROGRAMAÇÃO EM PYTHON
Tema 5 - Aula 10 :
Subprogramas.
Prof. Ronaldo Candido
ronaldo.candido@estacio.br 2022.1
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Conteúdo Programático
1. Fundamentos dos subprogramas.
2. Funções com passagem de parâmetros.
3. Questões de projeto para subprogramas.
4. Interfaces gráficas de usuário com Tkinter.
5. Atividade verificadora de aprendizagem.
Objetivos da aula
• Empregar modularização de programas para decompor problemas complexos em partes
menores favorecendo a solução completa.
17/05/2022
2
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Situação-problema
• Suponha que um programador é contrato para desenvolver um sistema ERP
(Enterprise Resource Planning) que é um software integrado para gestão
empresarial formado por diversos módulos como: Contabilidade, Recursos
Humanos, Suprimentos, Patrimônio, Vendas, entre outros. Desenvolver um sistema
desse porte em um único arquivo que contém todo o programa seria extremamente
complexo tanto para sua manutenção como para o próprio entendimento haja vista
a grande quantidade de código sequencial que o mesmo teria.
• Como poderíamos resolver esse problema dando mais organização para esse
programa?
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Fundamentos de Subprogramas
• Os subprogramas, procedimentos, rotinas ou funções são pequenos trechos de
códigos que realizam tarefas específicas, evitando um GRANDE conjunto de
comandos e expressões em um código monolítico.
• Também são conhecidas como blocos de códigos que realizam tarefas repetitivas
dentro de um código.
• Já utilizamos várias funções desde o início da disciplina :
 print(), len(), count(), etc.
• As funções podem ou não receber entradas de dados e retornar uma saída de
dados.
• Elas são muito úteis para executar procedimentos similares por repetidas vezes,
reutilizando um código já desenvolvido.
17/05/2022
3
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Sintaxe de uma Função
• Em Python, a forma geral de definir uma função é:
def nome_da_função (parâmetros_de_entrada):
bloco da função
 Onde: nome_de_função: sempre com letras minúsculas, e se for nome composto,
separado por underline.
 parâmetros_de_entrada: opcionais, onde tendo mais de um, cada um vem separado por
vírgulas.
 No bloco_da_função pode ter ou não um retorno.
 Exemplo :
def diz_oi():
print(‘oi’)
Função diz_oi, sem parâmetros de entrada, executa um 
único comando e sem valor de retorno. É considerado 
um subprograma, procedimento ou rotina.
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Executando uma Função
• Definir uma função não a executa imediatamente. No momento que desejarmos
executá-la, basta “chamar” o nome da função com seus parênteses :
diz_oi() #aparecerá a execução dos comandos descritos na função
• Exemplo de função com valor de retorno :
def quadrado_de_7():
return (7**2)
#chamando a função
ret = quadrado_de_7()
print('Retorno: ', ret)
Nunca se esqueça dos parênteses 
quando chamar uma função !!!
Função quadrado_de_7, sem parâmetros 
de entrada, executa um único comando e 
tem valor de retorno. Uma variável ou um 
comando precisará guardar seu retorno.
17/05/2022
4
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Funções na prática
• Faça uma função para jogar uma moeda e dar Cara ou Coroa :
from random import *
#definindo a função
def joga_moeda():
valor = random()
if valor > 0.5:
return 'Cara‘
else:
return 'Coroa'
#executando a função (execute várias vezes o programa ou coloque um laço for)
moeda = joga_moeda()
print(moeda)
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Bibliotecas de Funções
• Bibliotecas em Python são coleções de módulos de scripts acessíveis (funções) a
um programa para simplificar o processo de programação e remover a necessidade
de reescrever os comandos mais usados.
• O comando import é usado para importar as bibliotecas. O Python possui um
conjunto de bibliotecas padrões :
 math: usada para operações matemáticas.
from math import *
print (sqrt(144)) #raiz quadrada de 144 (parâmetro)
print(sin(1)) #seno
numero = -120
print (abs(numero)) #sem sinal
17/05/2022
5
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Bibliotecas de Funções (continuação) 
 time: usada para implementar contadores temporais.
import time
for i in range(1,6):
time.sleep(1)
print('Passaram-se %i segundo(s)' %i)
 random: usada para gerar números aleatórios.
from random import randint as r
num = r(1,6)
print('Gerado número aleatório entre 1 e 6: %i' %num)
 tkinter: usada para desenvolver interfaces gráficas (GUI padrão).
 smtplib: usada para trabalhar aplicativos de e-mail.
 urllib: modulo de manuseamento de URL.
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Funções com parâmetros nomeados
• Funções em Python tem suporte a parâmetros nomeados.
• O exemplo a seguir mostra um caso onde podemos usar nomes nos parâmetros da
função:
#definindo a função
def calculo_imc(peso, altura): #dois parâmetros de entrada na função
return (peso/altura**2)
#entrada de dados
peso = float(input('Digite o peso: '))
altura = float(input('Digite a altura: '))
#executando a função
imc = calculo_imc(peso,altura) #parâmetros formais
#ou imc = calculo_imc(altura=1.85,peso=75) #parâmetros nomeados
print('Índice de massa Corpórea : %.2f' %imc)
Esta é a passagem de 
parâmetros para a função !!!
17/05/2022
6
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Importando funções
#criar uma função que calcule a área de um cubo (arquivo exercicio02.py)
def calcular_area_cubo(lado):
area = 6 * (lado ** 2)
return area
Use o import e chame 
o nome da função
#exercicio02_programa.py
#usar a função da área do cubo
import exercicio02
print('Programa principal')
#entrada de dados
lado = float(input('digite o valor do lado:'))
a = exercicio02.calcular_area_cubo(lado)
#saída de dados
print('Área do cubo:’, a)
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Interfaces gráficas de usuário com Tkinter
• Toolkit originalmente criado para utilização com a linguagem script Tcl.
• Bastante leve, portátil e robusto.
• Um tanto obsoleto frente a outros toolkits mais modernos como Qt ou Gtk.
• Camada Tkinter normalmente distribuída com o Python :
 Inicia um processo Tcl que toma conta dos elementos de interface.
 Classes e funções do Tkinter se comunicam com o interpretador Tcl para especificar
aspecto e comportamento da interface. Exemplo:
import tkinter
tkinter._test() Usar o IDLE Python 
ou PyCharm para 
testar.
17/05/2022
7
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Usando Tkinter
• Importar o módulo Tkinter :
from tkinter import *
• Elementos de interface (widgets) correspondem a objetos de diversas classes. Por
exemplo:
 Frame (Área retangular)
 Button (botão)
 Label (rótulo)
 Text (caixa de texto)
 Canvas (caixa de desenho)
• Posição e tamanho dos elementos controlados por gerentes de geometria :
 Pack (mais comum), Place, Grid.
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Usando Tkinter (continuação)
from tkinter import *
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.msg = Label(self, text="Hello World")
self.msg.pack()
self.bye = Button (self, text="Bye", command=quit)
self.bye.pack()
self.pack()
app = Application()
mainloop()
17/05/2022
8
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Usando Tkinter (continuação)
• Para criar um widget, tem que informar o widget pai (parâmetro master) ondegeometricamente deverá ser encaixado e as opções de configuração para o
widget. Exemplo:
w = Button(pai,text=”Cancelar”,command=cancelar)
• Tk já define por default uma janela principal:
 master=None (default) indica que o widget será filho da janela principal.
 Outras janelas pode ser criadas criando objetos da classe Toplevel.
• A função mainloop() tem que ser invocada para que a aplicação entre no modo de
tratamento de eventos.
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Usando Tkinter (continuação)
17/05/2022
9
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
1. Faça um programa com uma função chamada somaImposto. A função possui dois parâmetros
formais: taxaImposto, que é a quantia de imposto sobre vendas expressa em porcentagem e
custo, que é o custo de um item antes do imposto. A função "altera" o valor de custo para incluir o
imposto sobre vendas.
2. Faça um programa que converta da notação de 24 horas para a notação de 12 horas. Por exemplo,
o programa deve converter 14:25 em 2:25 P.M. A entrada é dada em dois inteiros. Deve haver pelo
menos duas funções: uma para fazer a conversão e uma para a saída. Registre a informação
A.M./P.M. como um valor "A" para A.M. e "P" para P.M. Assim, a função para efetuar as conversões
terá um parâmetro formal para registrar se é A.M. ou P.M. Inclua um loop que permita que o
usuário repita esse cálculo para novos valores de entrada todas as vezes que desejar.
• Esta atividade computará 1,0 ponto para a AV2 como consta no Trabalho indicado na Sala de aula
virtual.
Atividade verificadora de aprendizagem
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Aprenda +
• Vídeo: Ignorância Zero. "Aulas Python - 039 - Funções VI: Recursividade". Disponível em
. Acesso em: 13 mai. 2022.
• Vídeo: CS Dojo. "Como usar funções no Python (Tutorial do Python # 3)". Disponível em
. (Ative a legenda e a tradução automática
para o português). Acesso em: 13 mai. 2022.
• Python Brasil. Resolver os Exercícios 3, 4 e 7. Disponível em:
. Acesso em: 13 mai. 2022.
• Atividade Autônoma Aura:
Questão 1: (IF Sul Riograndense, 2019) (adaptada). Observe a função print do código escrito em
Python a seguir:
def foo(n):
if n>1: return n * foo(n-1)
return 1
print(foo(4))
Qual o resultado impresso ?
a) 4
b) 16
c) 24
d) 20
e) 48
17/05/2022
10
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Aprenda + (continuação)
Questão 2: (AOCP MJSP, 2020) Assinale a alternativa que apresenta o código Python que
implementa corretamente uma função para o cálculo da área de um retângulo, bem como o código
que imprime o seu resultado.
a) def area_retangulo(comp, larg) {
return comp * larg }
print(' A área é ‘ + area_retangulo (2,4))
b) func area_retangulo(comp, larg): return comp * larg
print(' A área é ‘ || area_retangulo (2,4))
c) def area_retangulo(comp, larg)(
return comp * larg);
print(' A área é {}' .format (area_retangulo (2,4)))
d) func area_retangulo(comp, larg): return comp * larg;
println(' A área é ‘ + area_retangulo (2,4))
e) def area_retangulo(comp, larg):
return comp * larg
print(' A área é {}' .format(area_retangulo (2,4)))
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Para a próxima aula...
• Leitura e resolução das atividades propostas no livro SEBESTA, R. “Conceitos de Linguagens de
Programação”. Capítulo 12 (Suporte para a Programação Orientada a Objetos), páginas 487 a
540.
• Estudar a Aula 11 de PARADIGMAS no SAVA previamente e realizar as atividades propostas..
17/05/2022
11
AULA 10
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
BANIN, S. L. Python 3 Conceitos e Aplicações. Uma Abordagem Didática. 1a. ed. São 
Paulo: Érica, 2018. Disponível em: 
. Acesso em: 16 
fev. 2022.
BORGES, L. E. Python para Desenvolvedores. Parte IV: Interface gráfica. 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
Prof. Ronaldo Candido
ronaldo.candido@estacio.br
Dúvidas, sugestões ou análises ???
PARADIGMAS DE LINGUAGENS 
DE PROGRAMAÇÃO EM PYTHON

Mais conteúdos dessa disciplina