Escolar Documentos
Profissional Documentos
Cultura Documentos
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;
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;
}
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));
}