Módulo 12 - Funções, as máquinas do algoritmo

O que é uma função: a máquina dentro do algoritmo

8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026

Velocidade

O que você vai aprender

  • Definir função em uma frase, usando a analogia da máquina.
  • Reconhecer que escreva e leia são funções que você já usa há 8 módulos.
  • Diferenciar DEFINIR uma função (construir a máquina) de CHAMAR (ligar a máquina).
  • Identificar máquinas de entrada e saída no seu dia a dia.

Sua cozinha está cheia de funções

Pare um minuto e olhe para a sua cozinha. O liquidificador recebe frutas e gelo, faz um trabalho barulhento lá dentro e devolve uma vitamina. A máquina de café recebe cápsula e água, trabalha, devolve café pronto. O micro-ondas recebe comida fria e um tempo, devolve comida quente. Você não sabe (nem precisa saber) o que acontece dentro de cada uma: sabe o que entra, sabe o que sai e confia no trabalho do meio. Uma função é exatamente isso dentro de um algoritmo: uma máquina com nome, construída uma vez, que você liga quantas vezes quiser.

Diagrama de uma função desenhada como máquina: uma seta de entrada com o número 7 entra pela esquerda, a caixa central com o nome dobro faz o trabalho, e uma seta de saída devolve o número 14 pela direita.
A função como máquina: entra 7, a máquina dobro trabalha, sai 14.

Agora a revelação que estava escondida desde o módulo 4: você já usa funções há muito tempo. O comando escreva é uma função: recebe um texto como entrada e faz o trabalho de mostrá-lo na tela. O comando leia é outra: faz o trabalho de esperar a digitação e devolve o que a pessoa digitou. Você nunca precisou saber COMO o escreva desenha as letras na tela, e é esse o superpoder das funções: quem usa a máquina não precisa conhecer as engrenagens. Nesta aula, você passa de usuário a fabricante.

Construir a máquina e apertar o botão

Trabalhar com funções envolve dois momentos bem diferentes, e confundi-los é o erro mais comum do iniciante. O primeiro momento é DEFINIR a função: escrever o bloco de passos e dar um nome a ele. Isso é construir a máquina e colocá-la na bancada; nada acontece ainda, ela está desligada. O segundo momento é CHAMAR a função: escrever o nome dela no meio do algoritmo. Aí sim a máquina liga, executa os passos e devolve o resultado. Uma máquina construída e nunca ligada não faz vitamina nenhuma.

função boas_vindas()
  escreva("Olá! Bem-vindo à padaria da esquina.")
  escreva("Hoje tem pão quentinho.")
fim função

boas_vindas()   // liga a máquina: mostra as duas mensagens
boas_vindas()   // liga de novo: mostra as duas mensagens outra vez

As 4 primeiras linhas constroem a máquina; as 2 últimas apertam o botão.

🎮 Jogo da aula

É máquina ou é enfeite?

Função é máquina: recebe entrada, trabalha e devolve saída. Classifique cada item do dia a dia.

Repare no detalhe da chamada: o nome vem acompanhado de parênteses, como em boas_vindas(). Os parênteses são a boca da máquina, o lugar por onde a entrada entra. No exemplo acima eles estão vazios porque essa máquina simples não precisa de ingrediente nenhum. Na próxima aula, você vai colocar coisas dentro deles, e é aí que as funções ficam realmente poderosas: a mesma máquina produzindo resultados diferentes conforme o que você entrega a ela.

Por que dar nome a um bloco de passos

Você pode estar pensando: se a função só agrupa passos que eu já sabia escrever, qual é a vantagem? A primeira é a economia: escreve uma vez, usa mil vezes. A segunda é a clareza: um algoritmo que diz calcular_troco(pago, preco) se lê como uma frase em português; ninguém precisa decifrar dez linhas de conta para entender a intenção. A terceira é a manutenção: se a regra do troco mudar, você conserta UM lugar, e todos os pontos que chamam a função ganham o conserto de graça. Nos módulos anteriores seus algoritmos cresceram; as funções são o que impede esse crescimento de virar bagunça.

Teste rápido

O que acontece quando um algoritmo DEFINE uma função mas nunca a CHAMA?

Perguntas frequentes

Função e algoritmo são a mesma coisa?
São parentes próximos. A função É um algoritmo pequeno (passos claros, ordem definida, fim garantido) embalado com um nome para ser reutilizado. A diferença é de papel: o algoritmo resolve o problema inteiro; a função resolve um pedaço nomeado dele.
Por que escreva e leia contam como funções se eu nunca as defini?
Porque alguém as definiu por você: elas vêm prontas com a linguagem, como eletrodomésticos que já chegam montados. Toda linguagem real traz centenas de funções prontas (mostrar texto, arredondar número, medir tamanho de lista), e saber usá-las é metade do trabalho de programar.
Uma função pode chamar outra função?
Pode, e é assim que programas grandes funcionam. A função preparar_cafe_da_manha pode chamar fazer_cafe e torrar_pao, e cada uma delas pode chamar máquinas menores. É a mesma lógica de uma cozinha profissional: o chef comanda praças, e cada praça tem suas próprias máquinas.
Existe limite de quantas vezes posso chamar a mesma função?
Não. Depois de definida, a função pode ser chamada duas, mil ou um milhão de vezes, inclusive dentro de um laço ENQUANTO ou PARA dos módulos 9 e 10. Cada chamada é uma execução nova e independente, como ligar o liquidificador para cada vitamina.
O nome da função pode ser qualquer coisa?
Tecnicamente quase, mas na prática vale a regra dos nomes que se explicam, do módulo 3: use verbos que digam o que a máquina faz, como calcular_media ou mostrar_menu. Um algoritmo com funções bem nomeadas se lê como uma lista de tarefas em português.
Os parênteses são obrigatórios mesmo quando estão vazios?
Sim, e por um bom motivo: eles diferenciam a chamada da simples menção ao nome. boas_vindas() liga a máquina; boas_vindas sozinho seria só apontar para ela. Nas linguagens reais a regra é a mesma, então vale criar o hábito desde o pseudocódigo.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.