Introdução às funções
Não tem muito como fugir, mas função num programa é análoga a função na matemática. No ensino médio, em algum momento aprendemos que f(x) = x2 é uma função que, para cada x, corresponde um x2. Você também deve se lembrar que uma função só é uma função se para cada x, há apenas um y correspondente. Da definição matemática: função pode ter argumentos diferentes e devolver o mesmo resultado (exemplo, uma função constante). Mas uma função não pode, para um mesmo argumento, devolver dois resultados diferentes. Isto não é uma função. Assim é impossível uma função receber um valor e devolver um resultado diferente em diferentes chamadas ou mais de um resultado diferente ao mesmo tempo. Apenas uma ressalva: até o ensino médio e o primeiro semestre de cálculo todas as funções na matemática são de uma variável; é somente mais tarde que se começamos a estudar funções de mais de uma variável, mas isso não interfere no entendimento dos múltiplos parâmetros das funções na computação. No caso da computação, existem alguns outros detalhes técnicos, mas por enquanto vamos começar do exemplo mais simples possível.
Suponha que você pegue a fórmula de Bháskara e escreva um algoritmo que encontre as raízes da equação de segundo grau. No seu programa, se você precisar desse algoritmo mais de uma vez, o seu código vai ficar confuso e grande. Ao invés disso, use uma função. Toda vez que você precisar da fórmula de Bháskara, chame a função. Você pode encarar funções como fórmulas para fazer alguma coisa. Você reaproveita a fórmula quando precisar.
Na disciplina de introdução a recomendação usual é que você pratique com muitos problemas que precisem de funções, porque é somente aplicando os conceitos que se entende como funcionam e como se usam funções num programa.
Erros de lógica:
- Confundir chamada com definição de função. Chamar a função com argumentos na ordem errada ou com valores errados;
- A função faz o programa "travar" com ou sem mensagem de erro. Aí é erro no algoritmo que você fez;
- A função tinha que calcular a raiz de 4, mas o resultado deu 5? Um dos dois erros anteriores
- Se tudo o mais falhar: o algoritmo pode estar totalmente correto, mas a saída na tela pode estar com um erro na chamada do printf()