Você está na página 1de 14

Programao em linguagem C:

funes
TE207 Tcnicas de Programao em Engenharia Eltrica I
Prof. Vitor Yano DELT/UFPR vitoryano@gmail.com

Funes
Uma funo um conjunto de comandos agrupados em um bloco que recebe
um nome e pode ser chamado atravs deste;
Vantagens:
Permite o reaproveitamento de cdigo;
Evita a repetio de trechos de cdigo usados muitas vezes;
Permite a alterao de um trecho de forma mais simples (escopo de variveis
independente);
Simplificao dos blocos do programa, facilitando o entendimento.

Declarao
Sintaxe:
tipo nome(lista_de_parametros) {
//corpo da funo
...
return valor;
}

Funo matemtica
f(x,y,z) = x2 + 3y + yz

Parmetros

Retorno

Sintaxe
Tipo da funo: toda funo pode retornar um valor. O tipo da funo define o
tipo do valor que ser retornado. Quando no h retorno, utiliza-se o tipo void.
Nome da funo: o rtulo pelo qual a funo ser chamada. As regras para
nome de funo so as mesmas para os nomes de variveis;
Parmetros: so os valores de entrada da funo, declarados como variveis e
separados por vrgula;
Corpo da funo: so os comandos executados pela funo;

Valor de retorno: a sada da funo, que retornada para o comando que a


chamou. O comando return encerra imediatamente a funo, retomando linha
do programa que a chamou.

Declarao
Exemplo:
float soma(float n1, float n2) {
float s;
s=n1+n2;
return s;
}

Declarao
Exemplo:
float f(float x, float y, float z) {
return x^2+3*y+y*z;
}

Chamada da funo
#include <stdio.h>
float f(float x, float y, float z) {
float r=x*x+3*y+y*z;
return r;
}
int main() {
float x,y,z;
scanf("%f %f %f",&x,&y,&z);
printf("O resultado : %f\n", f(x,y,z));
return 0;
}

Escopo das variveis


Parmetros ou variveis declaradas dentro do corpo da funo pertencem
funo, independentemente do resto do programa. Por isso, so chamadas
variveis locais;
Variveis declaradas fora de qualquer funo (inclusive da main) so vlidas
dentro de qualquer funo do programa e, por isso, so variveis globais.

Chamada da funo
#include <stdio.h>
float f(float x, float y, float z) {
float r=x*x+3*y+y*z;
return r;
}
int main() {
float a,b,c,r;
scanf("%f %f %f",&a,&b,&c);
r=3;
printf("r = %f\n",r);
printf("O resultado : %f\n", f(a,b,c));
printf("r = %f\n",r);
return 0;
}

x, y, z: parmetros formais
da funo f
a, b, c: parmetros reais na
chamada f(a,b,c)

Prottipo da funo
A princpio toda funo deve ser declarada antes de ser usada;
Na definio da funo est implcita a declarao;
A linguagem C permite que se declare uma funo, antes de defini-la. Esta
declarao feita atravs do prottipo da funo;
O prottipo da funo o trecho de cdigo que especifica apenas o nome, o tipo e
os parmetros da funo.

Exemplo de prottipo
#include <stdio.h>
float f(float, float, float);
int main() {
float a,b,c,r;
scanf("%f %f %f",&a,&b,&c);
r=3;
printf("r = %f\n",r);
printf("O resultado : %f\n", f(a,b,c));
printf("r = %f\n",r);
return 0;
}
float f(float x, float y, float z) {
float r=x*x+3*y+y*z;
return r;
}

Exemplo
Escreva um programa que leia n e p e calcule a quantidade de possveis
combinaes e arranjos simples usando uma funo para cada caso.

!
=
! !

!
=
!

Exemplo
#include <stdio.h>
int fatorial(int);
int arranjo(int, int);
int combinacao(int, int);
int main() {
int n,p;
printf("Total de elementos: ");
scanf("%d",&n);
printf("Tamanho dos grupos: ");
scanf("%d",&p);
printf("Combinaes possveis:
%d\n",combinacao(n,p));
printf("Arranjos possveis:
%d\n",arranjo(n,p));
return 0;
}

int fatorial(int x) {
int i,r=1;
for(i=2;i<=x;i++) {
r*=i;
}
return r;
}
int arranjo(int n, int p) {
return fatorial(n)/fatorial(n-p);
}
int combinacao(int n, int p) {
return fatorial(n)/(fatorial(p)*fatorial(np));
}

Você também pode gostar