Algoritmos

Funções em programação: o que são e como criar

Capa do artigo Funções em programação: o que são e como criar
Leitura com foco

Entenda o contexto.
Leve para a prática.

Neste artigo
  1. Como funciona uma função?
  2. Como criar uma função?
  3. Qual a diferença entre parâmetro e argumento?
  4. Toda função precisa devolver um valor?
  5. Por que usar funções?
  6. Agora é com você!

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:

ParteO que éNo nosso exemplo
NomeComo você chama a funçãocalcularMedia
ParâmetrosOs dados que ela recebeAs notas
CorpoO código que faz o trabalhoA soma e a divisão
RetornoO resultado que ela devolveA média
As quatro partes de uma função.
Diagrama de uma função: a lista de notas entra em calcularMedia e sai a média 7.75
A função vista de fora: recebe as notas, faz a conta e 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:

Sobre quem escreve

Walmir Silva

Olá! Sou Walmir, engenheiro de software com MBA em Engenharia de Software e o cérebro por trás do GrowthCode e autor do livro "Além do Código".

Se você acha que programação é apenas sobre escrever código, prepare-se para expandir seus horizontes. Aqui, nós vamos além do código e exploramos as interseções fascinantes entre tecnologia, negócios, artes e filosofia.

Você está em busca de crescimento na carreira? Quer se destacar em um mercado competitivo? Almeja uma vida mais rica em conhecimento e realização? Então você chegou ao lugar certo. No GrowthCode, oferecemos insights profundos, estratégias comprovadas e um toque de sabedoria filosófica para catalisar seu crescimento pessoal e profissional.

Ver todos os artigos →

Continue a conversa

Compartilhe sua perspectiva

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Encontre sua próxima resposta

O que você quer aprender?

Preferências de cookies

Os cookies opcionais começam desligados. Você pode mudar a escolha a qualquer momento por esta tela.

NecessáriosSempre ativos

Guardam a sua escolha de cookies e mantêm o site funcionando. Não são usados para publicidade.

Contam visitas e mostram como o site é usado: Google Analytics e Microsoft Clarity, carregados pelo Google Tag Manager. Como esse contêiner também carrega tags de publicidade, as estatísticas só são ativadas junto com Publicidade e marketing.

Exibem anúncios do Google AdSense e medem campanhas e e-mails: pixels da Meta e do TikTok e o Mautic.

Permite que o Google escolha anúncios com base nos seus interesses. Desligado, os anúncios aparecem sem personalização. Depende de Publicidade e marketing.

Também é possível bloquear cookies nas configurações do navegador. Detalhes na Política de privacidade.