AULA COMEÇA
AS 21:00
Funções em C
Prof. Mariano Bitelo
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); Declaração
Declaraçãododo
protótipo
protótipoda
dafunção
função
main ()
{
a=f1(..); Uso
Usoda
dafunção
função
} Declaração
Declaraçãoda
da
função
função
tipo f1 (declaração dos parâmetros recebidos)
{
declaração das variáveis locais;
comandos;
return(x); Valor
Valorretornado
retornadopela
pelafunção
funçãof1,
f1,que
queneste
neste
} caso
casoseria
seriaatribuído
atribuídoaavariável
variávelaa
Funções em C
• Exemplo: função para calcular a soma;
#include ...
#include <stdio.h>
<stdio.h> ...
#include int
int soma(int
soma(int a, a, int
int b)
b)
#include <conio.h>
<conio.h>
{{
int
int soma(int
soma(int a,
a, int
int b);
b); int
int r;r;
rr == aa ++ b;
b;
main()
main() return(r);
{{ return(r);
}}
int
int a,b,result;
a,b,result;
printf("Digite
printf("Digite oo valor
valor
de a: ");
de a: ");
scanf("%d",&a);
scanf("%d",&a);
printf("Digite
printf("Digite oo valor
valor
de b: ");
de b: ");
scanf("%d",&b);
scanf("%d",&b);
result
result == soma(a,b);
soma(a,b);
printf("%d",result);
printf("%d",result);
getch();
getch();
}}
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!
Cpn= com n p
p! (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
#include <stdio.h>
<stdio.h>
#include
#include <stdlib.h>
<stdlib.h>
#include <conio.h>
#include <conio.h>
...
...
int int
int fatorial
fatorial (int
(int num)
int fatorial
fatorial (int
(int num);
num); num)
{{
main() int
int i,
i, fat=1;
fat=1;
main()
{{ for
for (i=1;i<=num;i++)
(i=1;i<=num;i++)
int fat=fat*i;
int i,
i, n,
n, p;
p; fat=fat*i;
float combinacao; return
return (fat);
(fat);
float combinacao;
printf }}
printf ("Digite
("Digite um
um valor
valor para
para n:
n: ");
");
scanf ("%d",&n);
scanf ("%d",&n);
printf
printf ("Digite
("Digite um
um valor
valor para
para p:
p: ");
");
scanf
scanf ("%d",&p);
("%d",&p);
combinacao=fatorial(n)/(fatorial(p)*fatorial(n-p));
combinacao=fatorial(n)/(fatorial(p)*fatorial(n-p));
printf
printf ("\n\nValor
("\n\nValor dada combinacao:
combinacao: %f\n\n",
%f\n\n", combinacao);
combinacao);
system ("PAUSE");
system ("PAUSE");
}}
...
...