Explicação básica de Funções na linguagem C + exercícios
Parâmetros
tipo_da_funcao nome_funcao(Parametros){
// corpo da função
}
Significado
tipo_da_funcao nome_funcao(Parametros)
{
// corpo da função
}
tipo_da_funcao: tipo do dado que será retornado; nome_funcao: nome válido para funções;
Parametros: sequência de pares separados por vírgula;
Exemplo: soma
Por cópia int soma(int n1, int n2)
{
int r = n1 + n2; return r;
}
int main()
{
int a = 2, b = 5, r = 0; r = soma(a,b); printf("Soma: %d\n",r);
Por referência void soma(int* ret, int n1, int n2)
{
*ret = n1 + n2;
}
int main()
{
int a = 2, b = 5, r = 0; soma(&r, a,b); printf("Soma: %d\n",r); return 0;
return 0;
}
}
Exercício
1. Faça uma função que receba como parâmetro um char específico (+, -, *, /, %, ^), dois números inteiros (n1 e n2) e retorne o resultado da operação. EX.: ex_operacao(‘+’,3,6), retorna 9. obs.: % representa a operação para pegar o resto e ^ de exponencial.
2. Faça uma função que imprima os valores de um vetor de tamanho N. Assinatura da função void imprimir_vetor(int vetor[], int tam);
3. Faça uma função que dado um vetor inteiro, seu tamanho e um char específico (+, -, *, /,
%, ^) retorne o resultado da aplicação sucessiva dessa operação aos itens do vetor. int ex_operacao_vetor(char op, int vetor[], int tam);
4. Refaça o exercício 1 passando a variável de retorno como parâmetro. Ex.: ex_operacao_ref(‘+’,3,6,&res); Recursividade
tipo_da_funcao nome_funcao(Parametros){ nome_funcao(paramentos2); }
Definição
Uma função é recursiva quando ela chama ela mesma durante seu processamento. Problemas como fatorial ou série de
Fibonacci, são de natureza recursiva.
int fat(int v)
{
if(v == 0){ return 1;
}
return v*fat(v-1);
}
int main()
{
printf("fat: %d\n",fat(5)); return 0;
}
Exercício
1. Faça uma função recursiva que retorne o número de posição N da série de Fibonacci.
2. Faça uma função recursiva que imprima