Buscar

Funções

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Funções
Funções: Definição
 São blocos de comandos em C onde toda atividade do programa 
ocorre
 Forma geral de uma função em C:
tipo nome_funcao (tipo1 param1, tipo2 param2 .... ) 
{
 corpo da função (comandos separdos por ; (ponto e virgula)
}
 O tipo da função especifica o tipo do valor de retorno da função 
(devolvido a partir do comando return)
 O return, quando presente em uma função, será a última instrução 
executada.
 A lista de parâmetros pode ser vazia ou terá o tipo e o nome de 
cada variável separados por vírgula (,).
Funções: Exemplo
.....
int quadrado (int x ) {
 return (x*x);
}
void main( ){
 int a, b;
 printf(“digite o valor de um número inteiro: “);
 scanf(“%d”, &a);
 b=quadrado(a);
 printf(“O quadrado de %d é %d.”, a, b);
 getch();
}
Regras de Escopo
 As regras de escopo definem que porção do código conhece ou 
tem acesso a determinados dados ou porção de código.
 Governam em que parte do código uma variável pode ser 
acessada.
 As variáveis definidas dentro de uma função só podem ser 
acessadas na função onde foram definidas e são chamadas de 
variáveis locais.
 Variáveis definidas antes de qualquer função podem ser 
acessadas em qualquer função e são chamadas de variáveis 
globais.
Regras de Escopo
 int x;
 int teste (int a, int b){
 {
if(a<b)
 return(b+x);
else
 return(a+x);
}
 void main( ){
int c;
......
c=teste(10,5);
.....
}
Parâmetros
 A passagem de dados para as funções pode ser feita através de 
seus parâmetros.
 A passagem de parâmetros pode ocorrer por valor ou por 
referência.
 Na passagem de parâmetro por valor é feita uma cópia do valor 
de uma variável ou constante externa à função para a variável 
interna (parâmetro) da função. Desta forma alterações no valor 
da variável interna da função não afetam a variável externa da 
função.
 Na passagem de parâmetro por referência é passado o 
endereço de uma variável externa e mudanças no conteúdo 
deste endereço dentro da função alteram o valor da variável 
externa.
Passagem de parâmetros por valor:
.....
int fcao1 (int x, int y){
x=x+y;
printf(“x= %d e y= %d\n”, x, y);
return(x);
}
void main( ){
 int x, y, z;
x= 10;
y = 5;
z=fcao1(x, y);
printf(“x=%d, y=%d e z=%d\n”, x, y, z);
}
Passagem de parâmetros por 
referência:
 Operadores usados na passagem de parâmetros por 
referência:
– & usado para obter o endereço de uma variável
– * usado para definição de uma variável que armazena um 
endereço 
int *end; // end é uma variável que armazena o endereço de um 
inteiro. 
– * usado para acessar o conteúdo de um endereço (variável 
do tipo endereço)
*end = 10;
Passagem de parâmetros por 
referência:
.....
int fcao1 (int *x, int *y){
*x=*x+*y;
printf(“x= %d e y= %d\n”, *x, *y);
return(*x);
}
void main( ){
 int x, y, z;
x= 10;
y = 5;
z=fcao1(&x, &y);
printf(“x=%d, y=%d e z=%d\n”, x, y, z);
}
Passagem de vetores e matrizes como 
parâmetros:
 Quando um vetor ou matriz é passado como 
parâmetro para uma função apenas o seu endereço 
é passado, não uma cópia de seus elementos.
 Assim os vetores e matrizes são sempre passados 
como referência para as funções e alterações em 
seus elementos são refletidos no vetor ou matriz 
externo à função.
 Forma de passagem de vetores como parâmetros:
int soma (int vetor[10], int N) { .... }
Ou
int soma (int vetor[], int N) { ..... }
Ou
int soma (int *vetor, int N) { ..... }
Passagem de vetores e matrizes como 
parâmetros:
int soma (int vetor[], int N) { 
int i, s=0;
for(i=0; i<N;i++)
s=s+vetor[i];
return(s);
}
void main( ){
int s, v[10]={4, 12, 5, 3, 2};
 s= soma(v, 5);
printf(“A soma dos elementos do vetor é %d”, s);
 ....
}
Passagem de vetores e matrizes como 
parâmetros:
int soma (int matriz[][5], int Linhas, int Colunas) { 
int i,j, s=0;
for(i=0; i<Linhas;i++)
 for(j=0; j<Colunas; j++)
s=s+matriz[i][j];
return(s);
}
void main( ){
int s, M[5][5]={{8, 12}, {5, 3}};
 s= soma(M, 2,2);
printf(“A soma dos elementos da matriz é %d”, s);
 ....
}
Funções sem retorno e protótipos de 
funções
 Funções que não tem valor de retorno são definidas como do 
tipo void.
 O protótipo de uma função pode ser definido para que seu 
código possa ser definido depois de sua chamada.
tipo nome_função (tipo1 param1, tipo2 param2, .....) ;
 Em alguma parte do programa o código da função deverá ser 
definido.
Funções sem retorno e protótipos de 
funções
void imprime( int v[ ], int N);
void main(){
int v[10]={2, 4, 5, 7, 8};
imprime(v, 5);
}
void imprime(int v[ ], int N){
int i;
printf(“Os elementos do vetor são: \n”);
for(i=0; i<N; i++){
printf(“%d “, v[i]);
}
}
Referência Bibliográfica
 Schildt, H. C Completo e Total. 3ª ed. MAkron Books. 1997.

Outros materiais