Funções
Uma função é um grupo de instruções que juntas executam uma tarefa. Todo programa C tem pelo menos uma função, que é main(), e todos os programas mais triviais podem definir funções adicionais.
Uma função também pode ser referida como um método ou uma sub-rotina ou um procedimento, etc.
Declaração de funções
A declaração de função informa ao compilador sobre o nome de uma função, tipo de de valor a ser retornado e parâmetros(argumentos). Uma definição de função fornece o corpo real da função.
Sintaxe
A declaração de funções em C obedece a seguinte estrutura:
tipo nomedaFuncao (argumentos){
corpo da função
}
sendo
que:
-
tipo refere-se ao tipo de resposta que a função devolve e deve ser void (vazio) se a função não tem valor de resposta;
-
nomedaFuncao o nome da função é o identificador da função;
-
argumentos é uma lista de variáveis que representam valores de entrada para a função e deve ser void caso não haja valores de entrada;
-
corpo da função no corpo da função, a primeira seção é destinada à declaração das variáveis e a segunda, aos comandos.
Funções que não devolvem resposta
Nosso
primeiro exemplo é uma função que não tem valor de resposta e não
recebe argumentos ao ser chamada.
Exemplo:
Neste
exemplo temos a função imprimir que é usada para imprimir a
mensagem Ola
mundo.
Uma
função do tipo void,
quando executada, apenas produz um determinado efeito desejado, sem
contudo devolver um valor de resposta. Sendo assim, o compilador não
permite que funções void
sejam
usadas em expressões.
Funções que devolvem resposta
Se uma função não é do tipo void, então ela deve, necessariamente, devolver um valor como resultado de sua execução. Para isso, a função deve empregar o comando return. Esse comando, além de especificar a resposta da função, faz com que o controle retorne ao ponto onde ela foi chamada no programa, interrompendo imediatamente sua execução.
Exemplo:
Calculando
a hipotenusa de um triângulo retângulo.
Essa
função recebe as medidas dos catetos de um triângulo rectângulo e
devolve como
resposta a medida da sua hipotenusa.
Funções recursivas
Uma
função recursiva é uma função que se refere a si própria. A
ideia consiste em utilizar a própria função que estamos a definir
na sua definição.
Em
todas as funções recursivas existe:
-
Um passo básico (ou mais) cujo resultado é imediatamente conhecido.
-
Um passo recursivo em que se tenta resolver um sub-problema do problema inicial.
Se
analisarmos a função factorial, o caso básico é o teste de
igualdade a zero (zerop
n),
o resultado imediato é 1,
e o passo recursivo é (*
n (fact (- n 1))).
Geralmente,
uma função recursiva só funciona se tiver uma expressão
condicional, mas não é obrigatório que assim seja. A execução de
uma função recursiva consiste em ir resolvendo subproblemas
sucessivamente mais simples até se atingir o caso mais simples de
todos, cujo resultado é imediato. Desta forma, o padrão mais comum
para escrever uma função recursiva é:
-
Começar por testar os casos mais simples.
-
Fazer chamada (ou chamadas) recursivas com subproblemas cada vez mais próximos dos casos mais simples.
Dado
este padrão, os erros mais comuns associados às funções
recursivas são, naturalmente:
-
Não detectar os casos simples
-
A recursão não diminuir a complexidade do problema.
Ex:
References
https://www.tutorialspoint.com/cprogramming/c_functions.htm
http://www.dca.fee.unicamp.br/courses/EA072/lisp9596/node17.html
0 comentários:
Enviar um comentário