Neste artigo
Uma função é um bloco de código com nome, que recebe dados de entrada, executa uma tarefa e pode devolver um resultado. Você escreve uma vez e usa quantas vezes precisar, só chamando pelo nome.
No artigo anterior, sobre vetores e matrizes, calculamos a média de quatro notas. Agora imagine que você precise calcular a média em dez lugares diferentes do programa. Vai copiar e colar o mesmo código dez vezes? Não faça isso kkkk! É exatamente esse problema que a função resolve.
Como funciona uma função?
Pense em um liquidificador. Você coloca as frutas (entrada), aperta o botão (chama a função), ele faz o trabalho lá dentro (processamento) e te devolve o suco (saída). Você não precisa saber como o motor funciona para usar. Lembra do modelo de Entrada, Processamento e Saída? A função é esse modelo em miniatura!
Toda função tem quatro partes:
| Parte | O que é | No nosso exemplo |
|---|---|---|
| Nome | Como você chama a função | calcularMedia |
| Parâmetros | Os dados que ela recebe | As notas |
| Corpo | O código que faz o trabalho | A soma e a divisão |
| Retorno | O resultado que ela devolve | A média |

Como criar uma função?
Vamos para o código. Mais uma vez, o mesmo exemplo em três linguagens, para você focar no conceito. Primeiro em PHP:
<?php
function calcularMedia(array $notas): float
{
return array_sum($notas) / count($notas);
}
echo calcularMedia([7.5, 8.0, 6.5, 9.0]), PHP_EOL; // 7.75
echo calcularMedia([10, 9]), PHP_EOL; // 9.5
Em Python, a palavra que cria a função é def:
def calcular_media(notas):
return sum(notas) / len(notas)
print(calcular_media([7.5, 8.0, 6.5, 9.0])) # 7.75
print(calcular_media([10, 9])) # 9.5
E em C:
#include <stdio.h>
float calcular_media(float notas[], int quantidade) {
float soma = 0;
for (int i = 0; i < quantidade; i++) {
soma += notas[i];
}
return soma / (float)quantidade;
}
int main(void) {
float notas[4] = {7.5, 8.0, 6.5, 9.0};
printf("%.2f\n", calcular_media(notas, 4)); // 7.75
return 0;
}
Repare em três coisas. A função foi escrita uma vez só e chamada mais de uma vez, com notas diferentes. Quem chama não precisa saber como a conta é feita. E no PHP e no C você avisa o tipo do que entra e do que sai (float); no Python isso não é obrigatório.
Qual a diferença entre parâmetro e argumento?
Essa confunde muita gente. Parâmetro é o nome que aparece na criação da função, como $notas. Argumento é o valor de verdade que você entrega na hora de chamar, como [10, 9]. No liquidificador: o parâmetro é “fruta”, e o argumento é a banana que você colocou hoje kkkk.
Toda função precisa devolver um valor?
Não. Existe função que só executa uma ação, como mostrar uma mensagem na tela, e não devolve nada. Em C, esse tipo de função é marcado com a palavra void.
Outro ponto importante: as variáveis criadas dentro da função só existem lá dentro. Se isso ainda não está claro para você, volte no artigo sobre escopos, que é a base para entender funções.
Por que usar funções?
- Evita repetição. O código fica em um lugar só.
- Facilita a correção. Achou um erro na conta? Você corrige na função e o programa inteiro fica certo.
- Deixa o código legível. O nome da função já conta o que ela faz.
- Permite testar por partes. Dá para conferir cada função separada do resto.
Uma dica de ouro: dê nomes que dizem o que a função faz. calcularMedia é muito melhor que fazCoisa kkkk. E lembre-se: uma função deve fazer uma coisa só.
Agora é com você!
Lembra do desafio do artigo de vetores, o de achar a maior temperatura da semana? Transforme aquele código em uma função que recebe o vetor e devolve o maior valor. Depois chame a função com dois vetores diferentes.
Percebeu que você não precisou escrever a lógica de novo? Esse é o poder da função! E se você ainda não fez o desafio anterior, comece por ele. Tente sozinho primeiro: errar e corrigir faz parte do aprendizado.
No próximo artigo a história fica interessante: vamos ver uma função que chama ela mesma. É a famosa recursividade. Até lá!
Confiança Sempre!!!
Fontes:
- Manual do PHP. Funções definidas pelo usuário.
- Documentação do Python. O tutorial do Python, seção “Definindo funções”.
- UFPE, Centro de Informática. Introdução à Programação: funções e escopo de variáveis, com a diferença entre parâmetro e argumento e as variáveis locais e globais.
- Unicamp, Instituto de Computação. MC102, aula 8: funções, com as variáveis que só existem dentro da função.
- USP. SSC0800 Introdução à Ciência de Computação I: funções, com os parâmetros tratados como variáveis locais e a ordem dos argumentos.
- Universidade do Porto. Pensamento Computacional, aula 5, com a atribuição dos argumentos aos parâmetros e o caso da função sem return.
- Universidade do Porto, Faculdade de Ciências. Programação I, aula teórica 7, com as vantagens de organizar o programa em funções.
- IME-USP. MAC2166 Introdução à Computação, aula 11, com o uso de funções e o escopo dos argumentos.

Continue a conversa