UOL

UOL

terça-feira, 27 de janeiro de 2009

Introdução a funções


AULA 4 - Funções, breve introdução

Uma função é um bloco de código de programa que pode ser usado diversas vezes em sua execução. O uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C consiste, no fundo, de várias funções colocadas juntas.
Abaixo o tipo mais simples de função:

#include

mensagem ()

{
printf ("Ola! ");
}
main ()
{
mensagem();
printf ("Eu estou vivo!\n");
}

Este programa terá o mesmo resultado que o primeiro exemplo da seção anterior. O que ele faz é
definir uma função mensagem() que coloca uma string na tela. Depois esta função é chamada a partir de main() (que também é uma função).

Argumentos


Argumentos são as entradas que a função recebe. É através dos argumentos que passamos parâmetros para a função. Já vimos funções com argumentos. As funções printf() e scanf() são funções que têm argumentos. Vamos ver um outro exemplo simples de função com argumentos:

#include
square (int x)
{
printf ("O quadrado e %d",(x*x));
}
main ()
{
int num;
printf ("Entre com um numero: ");
scanf ("%d",&num);
printf ("\n\n");
square(num);
}

Na definição de square() dizemos que a função receberá um argumento inteiro x. Quando fazemos
a chamada à função, o inteiro num é passado como argumento. Há alguns pontos a observar. Em primeiro lugar temos de satisfazer aos requesitos da função quanto ao tipo e à quantidade de argumentos quando a chamamos. Apesar de existirem algumas conversões de tipo, que o C faz automaticamente, é importante ficar atento. Em segundo lugar, não é importante o nome da variável que se passa como argumento, ou seja, a variável num, ao ser passada como argumento para square() é copiada para a variável x. Dentro de square() trabalha-se apenas com x. Se mudarmos o valor de x dentro de square() o valor de num na função main() permanece inalterado. Vamos dar um exemplo de função de mais de uma variável. Repare que, neste caso, os argumentos são separados por vírgula e que deve-se explicitar o tipo de cada um dos argumentos, um a um. Note também que os argumentos passados para a função não necessitam ser todos variáveis porque mesmo sendo constantes serão copiados para a variável de entrada da função.

#include
mult (float a,float b,float c)
{
printf ("%f",a*b*c);
}
main ()
{
float x,y;
x=23.5;
y=12.9;
mult (x,y,3.87);
}

Retornando valores


Muitas vezes é necessário fazer com que uma função retorne um valor. As funções que vimos até aqui retornam um valor inteiro, pois, na linguagem C, a não ser que seja especificado, as funções retornam um inteiro. Mas para dizer ao C o que vamos retornar precisamos da palavra reservada return. Sabendo disto fica fácil fazer uma função para multiplicar dois inteiros. Veja:

#include
prod (int x,int y)
{
return (x*y);
}
main ()
{
int saida;
saida=prod (12,7);
printf ("A saida e: %d\n",saida);
}

Veremos mais adiante como proceder a fim de que uma função retorne outros valores que não
sejam inteiros. Note que se você estava recebendo mensagens de "warning" no seu compilador para as funções anteriores, você não recebeu para a função prod() do programa anterior! Isto é porque a função prod() faz o que o compilador estava esperando: retorna um valor.
O exemplo abaixo ilustra o retorno de um valor float.

#include

float prod (float x,float y)
{
return (x*y);
}
main ()
{
float saida;
saida=prod (45.2,0.0067);
printf ("A saida e: %f\n",saida);
}

O modelo geral de implementação de uma função está descrito abaixo.

tipo_de_retorno nome_da_função (argumentos)
{
código_da_função
}

Thiago F.

Extraído e adaptado da apostila:

Apostila do Curso de Linguagem C / UFMG

Curso dirigido pelo:
Pr. Renato Cardoso Mesquita
Outubro de 1998

Pág 8 - 10

Nenhum comentário:

Postar um comentário