01 / 17
Lógica de Programação · Sem 13 · Dia 1 (Aulas 1 e 2)

Funções e
procedimentos

Por que modularizar o código — e como dar a um bloco de tarefas tudo de que ele precisa: parâmetros na entrada e um retorno na saída.

ProfessorGuilherme Antunes CursoTécnico em Desenvolvimento de Sistemas Duração100 minutos (Aula 1 + Aula 2)
02 / 17
Onde estamos na unidade

Fechando a Unidade 4

Nas duas semanas anteriores trabalhamos estruturas de dados — vetores e matrizes. Agora chegamos ao último tema da unidade: funções e procedimentos, a ferramenta que organiza a lógica em blocos reutilizáveis e fecha o Componente 1.

Semana 11 · feito

Vetores

Estrutura linear de uma dimensão. Indexação por [i], busca, ordenação e estatísticas.

Semana 12 · feito

Matrizes

Estrutura de duas dimensões — linhas × colunas. Indexação por [i][j] e percursos.

Aqui Semana 13 · agora

Funções e procedimentos

Encapsular lógica reutilizável. Modularização, parâmetros e retorno. Fecha a unidade.

03 / 17
Objetivos do Dia

Ao final, você será capaz de.

01

A1Entender por que modularizar — quais problemas o copiar e colar manual provoca

02

A1Diferenciar função e procedimento: o que "responde" um valor e o que apenas "faz" uma ação

03

A2Ler uma assinatura como um contrato e usar parâmetros posicionais e retorno

04

A2Escrever a primeira função em Python: calcular a média de duas notas

04 / 17
Aula 1 Ponto de partida · Com suas palavras

Playlists sem repetir trabalho

Você e amigos criaram três playlists — estudar, treinar, relaxar. Cada um adiciona 5 músicas de cada estilo (rock, pop, MPB). No começo, copiavam e colavam as músicas manualmente em cada lista.

Quando alguém esquecia de atualizar uma lista, surgiam problemas: músicas repetidas, erradas ou playlists desorganizadas.

Para pensar juntos:

· O que pode dar errado ao repetir a mesma tarefa manualmente em vários lugares?

· Por que copiar e colar várias vezes gera erros?

· Se a mesma lista de 5 músicas vai para várias playlists, qual estratégia evita retrabalho?

· Como isso ajuda na organização?

O incômodo central: toda vez que a mesma tarefa é feita "na mão" em vários lugares, cada cópia é uma chance nova de errar — e manter tudo sincronizado vira um pesadelo. Deve haver um jeito melhor.
05 / 17
Aula 1 Construindo o conceito

Para que modularizar?

Modularizar é criar módulos — blocos para tarefas repetitivas. Em vez de adicionar as mesmas 5 músicas de rock em cada playlist, criamos um único bloco reutilizável: adicionar_musicas_de_rock(). Escrevemos uma vez, usamos quantas vezes precisar.

1

Reutilização

O mesmo bloco serve para todas as playlists. Escreveu uma vez, chamou onde quiser.

2

Leitura fácil

Ler adicionar_musicas_de_rock() é mais simples que uma lista gigante de links.

3

Manutenção

Trocar uma música só no bloco já atualiza todas as playlists de uma vez.

4

Teste rápido

Ouvir o bloco uma única vez confirma que está tudo certo em todo lugar que o usa.

Regra de bolso: se você se pegar copiando e colando o mesmo trecho, é sinal de que ali cabe um módulo. Bloco repetido = bloco que devia virar função ou procedimento.
06 / 17
Aula 1 Fica a dica

A IA ajuda a achar alternativas

Ferramentas de IA podem sugerir formas de modularizar e reaproveitar o que já existe. Quanto mais claro você for sobre o que precisa, melhor o resultado. Veja um prompt bem descrito:

Exemplo de prompt: "Crie uma playlist com cinco músicas de rock clássico. Depois, crie uma playlist de foco no trabalho que inclua as cinco músicas de rock clássico e mais três instrumentais."

Repare: a segunda playlist reutiliza as cinco músicas da primeira — exatamente a ideia de módulo. Sabendo o que é necessário e explicando de forma detalhada, a IA entrega resultados muito melhores do que com um pedido vago.

07 / 17
Aula 1 A grande distinção

Procedimento × Função

Os dois são blocos reutilizáveis. A diferença está em uma coisa: o procedimento faz algo; a função responde com um valor.

Procedimento — ações que fazem

Uma ordem que executa uma tarefa, mas não retorna um valor diretamente.

Analogia: o comando "Tocar a próxima música" — faz algo, mas não te devolve um valor. mostrar_menu_na_tela()

Função — ações que respondem

Uma pergunta que, após um cálculo, devolve uma resposta.

Analogia: "Qual a duração total da playlist?" — calcula e retorna um valor, ex.: "1h20min". calcular_media()
Teste rápido: pergunte "esse bloco me devolve uma resposta que eu vou guardar ou usar em uma conta?". Se sim, é função. Se ele só executa uma ação e nada volta, é procedimento.
08 / 17
Aula 2 Ponte

Já sabemos o porquê… e o como?

Na Aula 1 vimos por que criar blocos e como distinguir função de procedimento. Mas um bloco útil quase sempre precisa de informações para trabalhar e, no caso das funções, precisa devolver um resultado. Vamos aprender a passar dados — os parâmetros — e a receber respostas — o retorno.

09 / 17
Aula 2 Construindo o conceito

A assinatura é um contrato

A assinatura é o "cabeçalho" que descreve o que a função faz e o que ela precisa para funcionar — um contrato claro entre quem escreve e quem usa. Veja a função calcular_duracao_playlist:

def calcular_duracao_playlist(minha_playlist): → return número
Nome calcular_duracao_playlist

O nome usado quando a função é executada.

Parâmetros (minha_playlist)

As informações que a função precisa para trabalhar.

Retorno return número

A resposta que ela devolve no final.

O contrato em uma frase: "Se você me der uma playlist, eu prometo devolver um número com a duração total." Quem chama a função não precisa saber como ela calcula — só o que entra e o que sai.
10 / 17
Aula 2 Entrada e saída

Parâmetros e retorno

Parâmetros — o que entra

São os dados que a função precisa para trabalhar. Sem eles, ela não sabe sobre o quê agir.

adicionar_musicas_de_rock(minha_playlist) precisa saber em qual playlist adicionar.

Retorno — o que sai

É a resposta que a função devolve ao terminar. Você guarda esse valor para usar depois.

calcular_duracao(minha_playlist) deve retornar um número — os minutos.
Nem todo bloco retorna: uma função que apenas toca uma música não precisa devolver nada — ela só executa a ação. Esse é justamente o caso de um procedimento: tem parâmetros (talvez), mas não tem retorno.
11 / 17
Aula 2 Exemplos · 1 e 2

Do procedimento à função

Dois casos opostos em Python: à esquerda, um procedimento com parâmetro mas sem retorno; à direita, uma função com parâmetro e retorno.

# 1 · Procedimento com parâmetro
#      (sem retorno)
def adicionar_musicas_de_rock(playlist):
    print("Adicionando músicas de rock na playlist:", playlist)

# Uso:
adicionar_musicas_de_rock("MinhaPlaylist")
# 2 · Função com parâmetro e retorno
def calcular_duracao(minutos):
    return minutos

# Uso:
duracao = calcular_duracao(120)
print("Duração:", duracao, "minutos")
Repare na diferença: o procedimento usa print e termina sem return. A função usa return para devolver o valor — que aqui é guardado em duracao. Em Python, ambos começam com def: o que diferencia é a presença (ou não) do return.
12 / 17
Aula 2 Exemplos · 3 e 4

Mais de um parâmetro — ou nenhum

À esquerda, uma função com dois parâmetros (caso muito comum). À direita, um procedimento sem nenhum parâmetro e sem retorno — só executa.

# 3 · Função com dois parâmetros
#      e retorno
def somar(a, b):
    return a + b

# Uso:
resultado = somar(5, 3)
print("Resultado:", resultado)
# 4 · Procedimento sem parâmetro
#      (sem retorno)
def tocar_musica():
    print("Tocando música...")

# Uso:
tocar_musica()
Parâmetros posicionais: em somar(5, 3), o 5 vai para a e o 3 vai para b — pela posição, na ordem em que foram declarados. Inverter a ordem na chamada muda quem recebe o quê.
13 / 17
Aula 2 Sua vez · Um passo de cada vez

Prática: a primeira função em Python

Vamos criar uma função calcular_media que recebe duas notas e devolve a média. Sigam passo a passo em Python.

1

Abram seu editor Python ou um ambiente online (Google Colab / replit), no computador ou no celular.

2

Comecem um arquivo em branco para escrever o programa do zero.

3

Definam a função com def, declarando o nome e os parâmetros: def calcular_media(nota1, nota2):.

4

Dentro da função, calculem media = (nota1 + nota2) / 2 e devolvam com return media.

5

No programa principal, leiam as duas notas do usuário com float(input(...)).

6

Chamem a função guardando o resultado: media_final = calcular_media(nota_a, nota_b).

7

Exibam o resultado com print("\nA média do aluno é:", media_final).

8

Executem o programa e testem com notas diferentes.

14 / 17
Aula 2 Código completo

Tudo junto funcionando

Este é o programa completo em Python — a função definida acima e a chamada lá embaixo, no programa principal.

def calcular_media(nota1, nota2):
    media = (nota1 + nota2) / 2
    return media

nota_a = float(input("Digite a primeira nota: "))
nota_b = float(input("Digite a segunda nota: "))

media_final = calcular_media(nota_a, nota_b)
print("\nA média do aluno é:", media_final)
O fluxo: o programa lê as duas notas, chama calcular_media(nota_a, nota_b) passando os valores como parâmetros posicionais, a função devolve a média com return, e o valor é guardado em media_final para ser exibido.
15 / 17
Pause e responda

Função ou procedimento?

Qual alternativa descreve corretamente a diferença essencial entre uma função e um procedimento?

AProcedimento é mais rápido; função é mais lenta para executar
BA função retorna um valor; o procedimento executa uma ação sem retornar valor
CFunção e procedimento são escritos com palavras-chave totalmente diferentes em Python
DProcedimento aceita parâmetros; a função nunca aceita parâmetros
Por que B: a marca registrada da função é devolver uma resposta com return — um valor que você guarda e usa. O procedimento apenas faz algo (como exibir um menu) e nada volta. Em Python, ambos começam com def e ambos podem ter parâmetros — por isso A, C e D estão erradas.
16 / 17
Então ficamos assim…

O que aprendemos hoje

  • Modularizar → criar blocos reutilizáveis reduz duplicação, facilita a leitura e a manutenção, e agiliza os testes
  • Procedimento × Função → o procedimento faz uma ação sem retornar; a função responde com um valor
  • Assinatura → o contrato do bloco: nome, parâmetros (entrada) e tipo de retorno (saída)
  • Parâmetros posicionais → os dados que a função recebe, na ordem em que foram declarados
  • Retorno → o valor devolvido com return, guardado para uso — nem todo bloco precisa de um
Próxima aula · Dia 2

Boas práticas de nomeação + Desafio: Biblioteca de utilidades — como nomear funções de forma clara e descritiva, e a construção de um conjunto de funções reutilizáveis para resolver problemas do dia a dia.

17 / 17
Referências

De onde veio cada coisa

SEDUC-SP. Educação Profissional Paulista — Técnico em Desenvolvimento de Sistemas. Lógica de Programação, Componente 1, Unidade 4, Semana 13. Aula 1: SISANO1C1B2S13A1 — "Diferenciar funções e procedimentos no desenvolvimento da estrutura lógica de uma aplicação".

SEDUC-SP. Educação Profissional Paulista — Técnico em Desenvolvimento de Sistemas. Lógica de Programação, Componente 1, Unidade 4, Semana 13. Aula 2: SISANO1C1B2S13A2 — "Utilizar parâmetros posicionais e valores de retorno".

PYTHON SOFTWARE FOUNDATION. Python — Documentação oficial: Defining Functions. Disponível em: docs.python.org. Acesso em: 30 mai. 2026.

Identidade visual · adaptação para apresentação HTML por Guilherme Antunes