Pesquisar no blog:

domingo, 2 de dezembro de 2012

Criando Funções em C

Funções são instruções ou comandos que tem o objetivo de realizar uma tarefa específica.
Em C sempre criamos, pelo menos, a função principal do programa: main
A função main é obrigatória e será sempre a primeira a ser executada ao iniciar o seu programa. Outras funções podem receber qualquer nome, desde que não comecem como números e não contenham caracteres especias.
O uso de funções em seu programa traz muitos benefícios. Evitamos a repetição de um mesmo trecho várias vezes, podemos dividir partes do programa entre a equipe de desenvolvimento, onde cada membro ficará responsável por x função(ões).
Vamos criar uma função simples para imprimir uma linha:
void nl()
{
    printf("\n");
}

main()
{
    printf("Meu programa.");
    nl(); nl();
    printf("Uso de funcoes - linguagem C.");
    nl();
    system("pause");
}

Neste exemplo criei um função do tipo void bem simples que imprimi uma linha nova. O nome da função pode ser escolhida pelo programador, utilizei neste exemplo o nome nl referente a Nova Linha e fiz a chamada dessa função 3 vezes em meu programa.
Sempre que o programa é executado ele é iniciado pelo main, e todas as vezes em que fiz a chamada por nl(); ele vai até essa função e executa suas instruções.
Mais por que utilizar o tipo void?
As funções podem retornar valores depois de executar suas instruções, então, devemos informar o tipo do valor que ela retornará. Nesse caso a nossa função não retorna nenhum valor, por isso devemos inicia-la como void.
Exemplo de função que retorna um valor inteiro:
int soma()
{
    int num1 = 5, num2 = 10;
    return num1 + num2;
}

main()
{
    printf("%d\n",soma());
    system("pause");
}

No programa principal (main), pedimos para imprimir o valor da função soma, como o valor retornado por ela é do tipo inteiro, definimos seu espaço de impressão como "%d". Então a função é executada e ao fazer todas suas instruções nos devolve o valor 15.
É obvio que neste caso não era necessário o uso de uma função para fazer uma soma tão simples. Mais podemos ainda enviar parâmetros para as funções.
Vamos então melhorar as nossas funções nl e soma:
void nl(int n)
{
    int i;
    for(i = 0; i < n; i++)
        printf("\n");
}

main()
{
    printf("Meu programa.");
    nl(3);
    printf("Uso de funcoes - linguagem C.");
    nl(2);
    system("pause");
}
Implementamos na função nl a passagem de um parâmetro. Ao iniciar a função declaramos entre seus parenteses uma variável inteira. Ao chamar a função colocamos entre os parenteses o valor que desejamos passar para a função. Em nosso exemplo fizemos uma chamada enviando o valor 3 e outra enviando o valor 2, que define a quantidade de novas linhas que nossa função deve abrir.

int soma(int num1, int num2)
{
    return num1 + num2;
}

main()
{
    int n1, n2;
    printf("Digite os numeros a somar: \n");
    scanf("%d %d",&n1,&n2);
    printf("%d + %d = %d\n",n1,n2,soma(n1,n2));
    system("pause");
}
Implementamos na função soma a passagem de dois parâmetros. Ao iniciar a função declaramos entre seus parenteses duas variáveis do tipo inteiro. Ao chamar a função colocamos entre os parenteses o valor que desejamos passar para a função. Nesse caso passamos outras variáveis como valores para os parâmetros da função soma (n1 e n2), que receberam valores que foram digitados pelo usuário.

Nenhum comentário:

Postar um comentário