Subprogramas

Subprogramas são trechos de programa que realizam uma tarefa específica. Podem ser chamados pelo nome a partir do programa principal ou de trechos de outros subprogramas, até mesmo ele próprio (chamada recursiva).

Podem ser de dois tipos:
Funções- retornam um valor em seu nome.
Procedimentos- não retornam valor.

A linguagem C possui apenas o subprograma do tipo função.

Declaração:
< tipo_do_valor_retornado > < nome_função > (< parametros_formais >)

Ex:float media (int nota1, int nota2);

Chamada:
< nome_funcao > (< parametros_reais >)

Ex: media(8,10);

Parâmetros formais - são aqueles passados na declaração da função. É onde informamos quais as variáveis que a função irá receber quando chamada e quais os seus tipos (são informados como uma declaração da variáveis). Esses parâmetros são considerados como variáveis locas a função. Se a função não precisa receber nenhum parametro, colocamos entre os parênteses a palavra void.

Parâmetros reais - são aqueles passados na chamada da função. É quando informamos quais os valores que os parãmetros terão dentro da função. Se a função não espera receber nenhum parâmetro, na sua chamada colocamos o abre e fecha parênteses vazio.

Ex: imprimir_relatorio();
Para que a função retorne um valor em seu nome, é usada a instrução return.

Ex:
float_media(float nota1, float nota2)
{
float x;
x=nota1/nota2;
return(x);
}

Para simularmos um procedimento, devemos fazer uma função que não retorne valor. Para isso sua declaração deve ser void e na definição (implementação) não colocamos a instrução return.