Funções em C
Prof. Fabiano Utiyama
Funções em C
• Subprogramas são estabelecidos em
linguagem C através da construção de
funções;
• A sub-programação é uma ferramenta que
contribui com a tarefa de programar:
– Favorecendo a estruturação do programa;
– Facilitando a correção do programa;
– Facilitando a modificação do programa;
– Melhorando a legibilidade do programa;
– Divisão do problema a ser resolvido em partes
(modularização);
Funções em C
• Com a modularização de um programa, as
partes que o compõem podem ser
desenvolvidas por diferentes equipes;
• Para isto deve-se estabelecer antes padrões de
programação;
• Deve-se definir também que dependência
haverá entre os vários subprogramas;
Funções em C
• As funções dividem um programa em tarefas menores
que, juntas, cumprem o objetivo inicial do programa;
• Quando um determinado conjunto de instruções tiver
que ser repetido dentro da solução de um problema, é
conveniente colocá-lo dentro de uma única função;
– Para se criar uma função é necessário:
– Um identificador (o nome da função);
– Uma lista de parâmetros (que possibilitam a
comunicação com outras funções);
– E as ações que serão executadas por esta função, que
formam o corpo da mesma;
Funções em C
• As funções declaradas em C podem retornar um valor.
Este valor ficará associado ao identificador da função e
normalmente é resultante de um processamento realizado
dentro da mesma;
• As funções em C podem apresentar parâmetros. Estes
são utilizados para que se possa dar um caráter mais
genérico às mesmas, permitindo que sejam descritos os
formatos dos argumentos de entrada das mesmas;
• Declaração de uma função:
• Uma função deve ser declarada antes de ser utilizada,
como acontece com as variáveis;
• Isto deve ser feito para fornecer ao compilador
informações sobre o tipo da função e seus parâmetros;
Funções em C
• Na declaração da função deve constar o tipo da
mesma, que deve ser o tipo do valor que ela deve
retornar;
• O comando return é utilizado para retornar um
valor ao ponto onde uma função foi chamada
(utilizada);
Funções em C
• Sintaxe:
tipo f1 (declaração de argumentos);
main ()
{
a=f1(..);
}
Uso da função
Declaração do
protótipo da função
Declaração da
função
tipo f1 (declaração dos parâmetros recebidos)
{
declaração das variáveis locais;
comandos;
Valor retornado pela função f1, que neste
return(x);
caso seria atribuído a variável a
}
Funções em C
• Exemplo: função para calcular a soma;
#include <stdio.h>
#include <conio.h>
int soma(int a, int b);
main()
{
int a,b,result;
printf("Digite o valor
de a: ");
scanf("%d",&a);
printf("Digite o valor
de b: ");
scanf("%d",&b);
result = soma(a,b);
printf("%d",result);
getch();
}
...
int soma(int a, int b)
{
int r;
r = a + b;
return(r);
}
Funções em C
• Outro exemplo de aplicação:
• Fazer um algoritmo para calcular a
combinação (análise combinatória) de N
elementos tomados P a P. Sabe-se que isto é
possível através da seguinte expressão
n
Cp=
n!
p! (n-p)!
com n  p
Funções em C
• A solução deste problema sem o uso de uma
função teria N e P como argumentos de entrada e
C como argumento de saída;
• Seriam necessários os seguintes passos:
• Calcular o fatorial de N (armazenar em uma
variável);
• Calcular o fatorial de P (armazenar em outra
variável);
• Calcular o fatorial de N-P (armazenar em outra
variável);
• E finalmente calcular a expressão
FatN/(FatP*FatNP);
Funções em C
• Note que nesta solução teríamos que descrever
várias vezes uma mesma seqüência de ações
que são utilizadas para o cálculo do fatorial de
um número;
• Esta seqüência tem um comportamento
padrão;
•A seguir, será descrita uma solução mais
elegante, que utiliza uma função que calcula o
fatorial de um número inteiro dado como
argumento e retorna este valor;
Funções em C
• Exemplo: função para calcular o fatorial de um número inteiro;
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int fatorial (int num);
...
int fatorial (int num)
{
int i, fat=1;
for (i=1;i<=num;i++)
fat=fat*i;
return (fat);
}
main()
{
int i, n, p;
float combinacao;
printf ("Digite um valor para n: ");
scanf ("%d",&n);
printf ("Digite um valor para p: ");
scanf ("%d",&p);
combinacao=fatorial(n)/(fatorial(p)*fatorial(n-p));
printf ("\n\nValor da combinacao: %f\n\n", combinacao);
system ("PAUSE");
}
...
Funções em C
• Exercícios:
1. Construa uma função que calcule a soma de
dois valores inteiros e retorne o valor obtido.
2. Construa uma função que receba como
argumento o valor do raio de uma
circunferência e retorne o valor da área da
mesma.
3. Construa uma função que receba como
argumento de entrada uma cadeia de 20
caracteres e um caractere e retorne o número
de vezes que este caractere aparece na cadeia.
Download

Funções em C - Blog Prof. Fabiano Utiyama