Buscar

Unidade_03_5_Linguagem_C_Funções_Sergio_Diniz

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

IESB
IESB
APC
Introdução à Linguagem C
(continuação)
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
As funções são blocos de instruções que facilitam o entendimento do código. Sua sintaxe é:
Tipo_da_função nome_da_função (tipo var1, tipo var2,...,tipo varN)
{
corpo da função
}
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
Passagem de parâmetros por valor: A função recebe uma cópia da variável que é fornecida quando é invocada. Todas as alterações feitas dentro da função não vão afetar os valores originais.
Passagem de parâmetros por referência: Neste caso o que é enviado para a função é uma referência (endereço) às variáveis utilizadas, e não uma simples cópia, pelo que as alterações realizadas dentro da função irão alterar os valores contidos nessas variáveis.
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
#include <stdio.h>
#include <stdlib.h>
void troca(int a, int b);
main()
{
 int a=2, b=3;
 printf("\nValores de a e b antes de chamar a funcao: %d e %d", a, b);
 troca(a,b);
 printf("\n\nValores de a e b depois de chamar a funcao: %d e %d", a, b);
 printf("\n\n");
 system("pause");
} //CONTINUA
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
void troca(int a, int b)
{
 int temp;
 temp=a;
 a=b;
 b=temp;
}
PASSAGEM POR VALOR: a troca dentro da função não alterou os valores na função main 
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
#include <stdio.h>
#include <stdlib.h>
void troca(int *a, int *b);
main()
{
 int a=2, b=3;
 printf("\nValores de a e b antes de chamar a funcao: %d e %d", a, b);
 troca(&a,&b);
 printf("\n\nValores de a e b depois de chamar a funcao: %d e %d", a, b);
 printf("\n\n");
 system("pause");
} //CONTINUA
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
void troca(int *a, int *b)
{
 int temp;
 temp=*a;
 *a=*b;
 *b=temp;
}
PASSAGEM POR REFERÊNCIA: a troca dentro da função alterou os valores na função main
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
#include <stdio.h> 
#include <conio.h> //Necessária para uso da função getch()
int CalculaFatorial(int x); /* Protótipo da função, mostra o tipo de dado que retorna, o nome e o dado que recebe*/
main() 
{ int num, fatorial;
 printf("Digite o numero para calculo para fatorial: ");
 scanf("%d", &num);
 fatorial=CalculaFatorial(num); /*Chama a função que calcula o fatorial e atribui o resultado retornado pela função à variável "fatorial".
O tipo de dado retornado pela função deve ser do mesmo tipo da variável. O argumento "num" é o dado a ser passado para a função e deve ser do mesmo tipo da variável "x" que é o argumento de entrada da função. O valor/conteúdo de “num” é atribuído a “x”*/ 
 printf("\n\nO fatorial de %d e %d ", num, fatorial); 
 printf("\n\nPressione qualquer tecla para sair");
 getch();
} //CONTINUA
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
//Continuação
int CalculaFatorial(int x) //Implementação da função
{
 int cont, fat; /*Estas variáveis são locais, só valem dentro da função. Após a execução da função são destruídas.*/
 
 fat=1;
 for (cont=1; cont<=x; cont++) /*A função recebe o conteúdo/valor de "x" e o usa neste "for“*/
 {fat=fat*cont;}
 
 return fat; //Valor a ser retornado pela função
}
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
int CalculaFatorial(int *num);
main()
{ int num, fatorial;
 printf("Digite o numero para calculo para fatorial: ");
 scanf("%d", &num);
 fatorial=CalculaFatorial(&num);
 printf("\n\nO fatorial de %d e %d ", num, fatorial);
 printf("\n\nPressione qualquer tecla para sair");
 getch(); }
int CalculaFatorial(int *num) //A função recebe o endereço de num
{ int cont, fat; //Estas variáveis são locais
 fat=1;
 for (cont=1; cont<=*num; cont++)
 {fat=fat*cont;}
 return fat; //Valor a ser retornado pela função }
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
#include <stdio.h>
#include <stdlib.h>
float sqr (float num); 
main ()
{ float num,sq;
 printf ("Entre com um numero: ");
 scanf ("%f",&num);
 sq=sqr(num); printf ("\n\nO valor de num original e: %f\n",num);
 printf ("O seu quadrado vale: %f\n",sq);
 system("pause"); }
float sqr (float num)
{ num=num*num;
printf("\nO valor de num na funcao e: %f \n", num);
return num; } A variável num da função sqr() sofre alterações dentro da função, mas a variável num da função main() permanece inalterada: é uma passagem por valor. 
IESB
APC 
Linguagem C – Passagem de parâmetros e Funções
#include <stdio.h>
#include <stdlib.h>
float sqr (float *num); 
main ()
{ float num,sq;
 printf ("Entre com um numero: ");
 scanf ("%f",&num);
 sq=sqr(&num); printf ("\n\nO numero original e: %f\n",num);
 printf ("O seu quadrado vale: %f\n",sq);
 system("pause"); }
float sqr (float *num)
{ *num=(*num)*(*num);
printf("\nO valor de num na funcao e: %f \n", *num);
return *num; } A variável num da função sqr() sofre alterações dentro da função e na função main() : é uma passagem por referência. 
*
O objetivo desse seminário é apresentar AspectJ: uma ferramenta que possibilita o desenvolvimento de aplicações com base num novo paradigma de programação conhecido como Programação Orientada a Aspectos.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais