Programaçoa Estruturada II
Artigo: Programaçoa Estruturada II. Pesquise 862.000+ trabalhos acadêmicosPor: vjsena • 25/5/2014 • 4.050 Palavras (17 Páginas) • 280 Visualizações
O que é função
Uma função é um pedaço de código que faz alguma tarefa específica e pode ser chamado de qualquer parte do programa quantas vezes desejarmos.
Podemos também dizer que funções agrupam operações em um só nome que pode ser chamado em qualquer parte do programa. Essas operações são então executadas todas as vezes que chamamos o nome da função.
Utilizamos funções para obter:
• Clareza do código: separando pedaços de código da função main(), podemos entender mais facilmente o que cada parte do código faz. Além disso, para procurarmos por uma certa ação feita pelo programa, basta buscar a função correspondente. Isso torna muito mais fácil o ato de procurar por erros.
• Reutilização: muitas vezes queremos executar uma certa tarefa várias vezes ao longo do programa. Repetir todo o código para essa operação é muito trabalhoso, e torna mais difícil a manutenção do código: se acharmos um erro nesse código, teremos que corrigi-lo em todas as repetições do código. Chamar uma função diversas vezes contorna esses dois problemas.
• Independência: uma função é relativamente independente do código que a chamou. Uma função pode modificar variáveis globais ou ponteiros, mas limitando-se aos dados fornecidos pela chamada de função.
A ideia funções é permitir você encapsular várias operações em um só escopo que pode ser invocado ou chamado através de um nome. Assim é possível então chamar a função de várias partes do seu programa simplesmente usando o seu nome.
Exemplo:
#include <stdio.h>
int main(void) {
imprime_par(3,4);
imprime_par(-2,8);
return 0;
}
No exemplo acima, a função imprime_par foi usada para executar o pedaço de programa que imprime um par de números. A saída do programa acima será:
{3,4}
{-2,8}
A função imprime_par é definida da seguinte forma:
void imprime_par(int a, int b)
{
printf("{ %d, %d }\n",a,b);
}
O programa completo em C é mostrado abaixo:
#include <stdio.h>
/**
* Declaração da função imprime_par
* Essa função recebe dois inteiros como argumento e os imprime
* da seguinte forma {a,b}
*/
void imprime_par(int a, int b);
int main(int argc, char **argv)
{
imprime_par(3,4); //chamando a função
imprime_par(-2,8); //chamando novamente
return 0;
}
//Implementação da função
//A implementação da função pode conter várias linhas de código
void imprime_par(int a, int b)
{
printf("{ %d, %d }\n",a,b);
}
A definição de funções em C devem ser feitas antes do uso das mesmas. Por isso em nosso exemplo definimos a função imprime_par antes de usá-la dentro do main.
A linha que define ou declara a função também é conhecida como assinatura da função. Normalmente as assinaturas das funções são definidas dentro de arquivos de cabeçalho .h
Definindo uma função
Uma função pode necessitar de alguns dados para que possa realizar alguma ação baseada neles. Esses dados são chamados parâmetros da função. Além disso, a função pode retornar um certo valor, que é chamado valor de retorno. Os parâmetros (e seus tipos) devem ser especificados explicitamente, assim como o tipo do valor de retorno.
A forma geral da definição de uma função é:
[tipo de retorno da função] [nome da função] (1º parâmetro, 2º parâmetro, …)
{
//código
}
• Para o nome da função e dos parâmetros valem as mesmas regras que foram dadas para os nomes de variáveis. Não podemos usar o mesmo nome para funções diferentes em um programa.
• Todas as funções devem ser definidas antes da função main, ou deve ser feito o protótipo da função, que veremos mais adiante.
• O código deve estar obrigatoriamente dentro das chaves e funciona como qualquer outro bloco.
Valor de retorno
Freqüentemente, uma função faz algum tipo de processamento ou cálculo e precisa retornar o resultado desse procedimento. Em C, isso se chama valor de retorno e pode ser feito com a instrução return. Para poder retornar um valor, precisamos especificar seu tipo (char, int, float, double e variações). Para efetivamente retornar um valor, usamos a instrução return seguida do valor de retorno, que pode ou não vir entre parênteses. Um exemplo bem simples de função que retorna um valor inteiro:
int tres()
{
return 3; // poderia também ser return (3);
}
O tipo de retorno, além dos tipos normais de variáveis (char, int, float, double e suas variações), pode ser o tipo especial void, que na verdade significa que não há valor de retorno.
Nota Muitos livros dizem que a função main tem tipo de retorno void, o que não está correto. Segundo o padrão da linguagem C, a função main deve ter retorno do tipo int. Compiladores como o gcc darão mensagens de erro caso a função main() não seja definida corretamente.
...