Você está na página 1de 2

Funções em C Funções em C

 Uma função é um segmento de programa  Uma função recebe parâmetros/argumentos e


independente, que executa uma tarefa específica retorna valores de um tipo determinado.
 permite separar um programa em blocos e/ou evitar a  Sintaxe:
repetição de um mesmo código; <tipo_retorno><nome_função>(declaração_parâmetros)
 Algumas já conhecidas  funções de bibliotecas {
corpo_da_função e seus comandos;
Ex.: printf, sqrt, scanf, strcmp return valor_de_retorno;
}
 Quando uma função é chamada (evocada) o  Exemplo
float Calcula_volume(float x, float y, float z)
controle do programa é desviado para a função e {
float volume;
depois volta à instrução seguinte à sua chamada; volume=x * y * z;
return volume;
}
1 2

Funções em C Exemplo: usando função de biblioteca


 Tipo_de_retorno é o tipo de variável que a função vai retornar Receba via parâmetro dois números inteiros
 int é o padrão, caso o tipo de retorno não seja declarado e retorna a potência do maior pelo menor
#include <stdio.h>
#include <math.h>
 Declaração de parâmetros é uma lista como a que segue: int main(){
(tipo variavel1, tipo variavel2, ... , tipo variavelN) float a, b; /* números */
O tipo deve ser especificado para cada uma das N variáveis de entrada printf("digite aos numeros --> ");
scanf("%f %f",&a, &b); /* leitura das coordenadas */
 return valor_de_retorno if (x > y) printf("\n Potencia=%f", pow(x,y));
 Valor_de_retorno tem que ser compatível com o tipo de retorno else printf("\n Potencia=%f", pow(y,x));
declarado para a função; return 0;
 Quando se chega ao return a função é imediatamente encerrada }
devolvendo o valor_de_retorno
OBS: para usar math.h é preciso linkar a biblioteca durante compilação
 A função pode ter mais de uma declaração return;
gcc -ansi -Wall –pedantic -lm
3 4

Exemplo: criando e utilizando uma função Exemplo: criando e utilizando uma função
#include <stdio.h> #include <stdio.h>
int Quadrado (int valor) { int EhPar (int num) {
if (num % 2 ==0) /* Se for divisivel por dois */
return (valor * valor); /* Retorno da função */
return 1; /* Retorna 1 se for divisivel */
} else
int main () { return 0; /* Retorna 0 se não for divisivel */
}
int num, numquad; int main () {
int numero;
printf (“Entre com um numero: "); printf (“Entre com um numero: ");
scanf("%d", &num); scanf(“%d", &numero);
if ( EhPar (numero) ) /* Chamada da função */
numquad = Quadrado(num); /* Chamada da função */ printf ("\nO número é par.”);
printf ("\nO seu quadrado vale: %d\n", numquad); else
return 0; printf ("\nO número é ímpar.”);
return 0;
} }
5 6
Exercícios
1. Elabore uma função que recebendo como parâmetros dois números inteiros, verifique
se um é divisível pelo outro. A função deve retornar 1 se for divisível ou 0, caso
contrário;
2. Elabore uma função que recebendo como parâmetro um número inteiro, retorne o seu
fatorial;
3. Escreva um programa que utilize a função escrita anteriormente para que dados n e k
calcule a combinação C= n! / (k! (n-k)!). Se n <= k, escreva uma mensagem e pare o
programa.
4. Escreva uma função que receba via parâmetro a altura e a taxa de crescimento de 2
pessoas P1 e P2, e calcula quantos anos serão necessários para que a altura de P2 fique
≥ altura de P1. O programa principal deve ler os dados e verificar as condições dadas
abaixo, antes de chamar a função. Caso uma das condições seja falsa o programa deve
emitir uma mensagem e parar. (1) a altura de P1 >= altura de P2; (2) a taxa de
crescimento de P1 < taxa de crescimento de P2
5. Escreva uma função que receba via parâmetro um valor inteiro k>0 e leia uma
seqüência de números inteiros finalizada por -1 e verifica se k pertence a ela. Retornar
ao programa principal a primeira ocorrência de k na seqüência ou zero caso não
encontre k.

Você também pode gostar