trabalho social
Antes de se poder utilizar uma função ou um procedimento, é necessário defini-lo (antes de usar a aparelhagem há que fabricá-la). A definição de uma função ou de um procedimento é constituida por um cabeçalho seguido por um corpo, que consiste num conjunto de instruções entre {}. No cabeçalho são indicados: o tipo do valor calculado (devolvido) por essa função, o nome da função e a lista dos parâmetros da função (tipo nome separados por vírgulas). Isto é: tipo_de_devolução nome(lista_de_parâmetros)
O cabeçalho de uma função corresponde à sua interface, tal como as tomadas para cabos nas traseiras dum amplificador e os botões de controlo no seu painel frontal constituem a interface do amplificador. As funções usualmente calculam qualquer coisa, que é de um determinado tipo. Esse tipo é indicado em primeiro lugar no cabeçalho. Logo a seguir tem-se o nome da função, e finalmente uma lista de parâmtetros, que consiste simpesmente numa lista de definições de variáveis com uma sintaxe semelhante, mas não idêntica, à que se viu até agora.
No exemplo seguinte tem-se o cabeçalho de uma função que tem dois parâmetros (ambos números inteiros) e calcula (devolve) um valor inteiro. O nome dado a esta função é mdc. int mdc(int m, int n)
Esta função, depreende-se do nome, pretende-se que calcule o máximo divisor comum de dois inteiros.
Note-se que a sintaxe de especificação dos parâmetros é diferente da sintaxe de definição de variáveis. Assim, o cabeçalho int mdc(int m, n) é inválido.
O corpo desta função pode ser retirado do exemplo no capítulo anterior:
{
int k; if(n > m) k = m; else k = n; // CI: k >= mdc(m, n) while(m % k != 0 || n % k != 0) k--; return k;
}
Ou seja, a definição da função seria:
// PC: m > 0 e n > 0
// CO: k = mdc(m, n) int mdc(int m, int n)
{
int k; if(n > m) k = m; else k = n; // CI: k >= mdc(m,