Baixe o app para aproveitar ainda mais
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.
Compartilhar