Buscar

FuncoesC PassagemParametros Valor Referencia

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 5 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

Prévia do material em texto

FUNÇÕES EM C/C++
Um importante recurso apresentado nas linguagens de programação é a modularização na qual um programa pode ser particionado em sub-rotinas bastante específicas. A Linguagem C/C++ possibilita modularização por meio das funções.
Conforme já pode ser observado, um programa escrito na linguagem C/C++ tem, no mínimo, uma função chamada main, por onde a execução começa. Existem também muitas outras funções predefinidas na linguagem C/C++, por exemplo: gets(),strcpy(), etc. Essas funções são adicionadas aos programas pela diretiva #include.
Além disso, o usuário pode criar quantas funções quiser, dependendo do problema que está sendo resolvido pelo programa.
PASSAGEM DE PARÂMETROS E TIPOS DE RETORNO.
Cada função pode receber vários valores, os parâmetros, e pode devolver um valor, o retorno. Dessa maneira, quando se especifica uma função deve-se deixar claro qual será o tipo de retorno e quais os parâmetros necessários para a execução da função.
Ex:
int soma (int a, int b)
{ int s;
s = a + b;
return s;
}
No exemplo, observa-se que foi realizada a soma de dois valores inteiros (a e b) que foram passados à função, como parâmetros. O Resultado dessa soma, armazenado na variável s é, então, devolvido ao ponto em que a função foi chamada, para ser utilizado conforme necessidade do programa.
PASSAGEM DE PARÂMETROS POR VALOR
Passagem de parâmetros por valor significa que, para a execução da função, serão geradas cópias de valores de cada um dos parâmetros. Como exemplo, observe o programa a seguir:
�
#include <stdio.h>
int calcula_menor(int v1,int v2);
main()
{
int valor1,valor2,menor_valor;
printf("Entre com o valor 1 :");
scanf("%d",&valor1);
printf("Entre o valor 2 :");
scanf("%d",&valor2);
menor_valor=calcula_menor(valor1,valor2);
printf("O menor valor e : %d\n",menor_valor);
}
int calcula_menor(int v1,int v2)
{ int menor; if (v1<v2)
menor=v1;
else
menor=v2;
return menor;
}
	Função Main
	Função calcula_menor
	valor1 =5
	
	
	v1=5
	
	
	valor2=3
	
	
	
	
	v2=3
	
	
	menor_valor=3
	
	
	menor=3
	
	
	
	
	
	
	
	
	
	
	
	
	
	Quadro1 – Simulação passagem de parâmetros por valor.
Acima há uma representação gráfica de como se dá uma passagem de parâmetros por valor apresentada no programa acima. Estamos supondo que os valores armazenados nas variáveis valor1 e valor2 foram respectivamente, 5 e 3. Quando esta linha é executada ( menor_valor=calcula_menor(valor1,valor2);), estes valores são copiados para os parâmetros v1 e v2 pertencente à função calcula_menor. Depois disso, os valores de v1 e v2 são comparados e atribuído à variável menor, o menor valor, no exemplo dado, o valor 3. O Resultado é devolvido
função main , onde o valor calculado é atribuído a variável menor_valor. No momento em que a função calcula_menor chega ao fim, as variáveis v1, v2 e menor são destruídas.
�
PASSAGEM DE PARÂMETROS POR REFERÊNCIA
Passagem de parâmetros por referência significa que os parâmetros passados para uma função correspondem a endereços de memória ocupados por variáveis. Desta maneira, toda vez que for necessário acessar um determinado valor, isso será feito por meio de referência ao seu endereço.
#include <stdio.h>
int calcula_menor(int *v1,int *v2);
main()
{
int valor1,valor2,menor_valor;
printf("Entre com o valor 1 :");
scanf("%d",&valor1);
printf("Entre o valor 2 :");
scanf("%d",&valor2);
menor_valor=calcula_menor(&valor1,&valor2);
printf("O menor valor e : %d\n",menor_valor);
}
int calcula_menor(int *v1,int *v2)
{ int menor; if (*v1<*v2)
menor=*v1; else menor=*v2;
return menor;
}
	Função Main
	Função calcula_menor
	valor1 =5
	v1=800
	=>5
	800
	
	
	valor2=3
	
	
	v2=300
	=>3
	300
	
	
	menor_valor=calcula_menor(800,300);
	
	
menor_valor=3 menor=3
�
Quadro2 – Simulação passagem de parâmetros por referência.
�
Acima há uma representação gráfica de como se dá uma passagem de parâmetros por referência apresentada no programa acima. Estamos supondo que os valores armazenados nas variáveis valor1 e valor2 foram respectivamente, 5 e 3. Quando esta linha é executada (menor_valor=calcula_menor(&valor1,&valor2);) são passados como parâmetros para a função os endereços de memória ocupados pelas variáveis valor1 e valor2 (isso é feito pelo operador
- que obtém o endereço de memória de uma variável), ou seja, conforme o nosso exemplo, os valores 800 ( endereço ocupado por valor1) e 300 (endereço ocupado por valor2). Desta maneira, os valores que recaem sobre os parâmetros v1 e v2 (da função) são, respectivamente, 800 e 300 (isto é correto, uma vez que v1 e v2 são ponteiro para int).
Depois disso, os valores de v1 e v2 são comparados e atribuído à variável menor, o menor valor, no exemplo dado, o valor 3. Obs: Para manipular o valor contido no endereço de memória passado como parâmetro, deve utilizar *nomeponteiro.
�
O Resultado é devolvido à função main , menor_valor. No momento em que a função menor são destruídas.
�
onde o valor calculado é atribuído a variável calcula_menor chega ao fim, as variáveis v1, v2 e
�
FUNÇÕES QUE RETORNAM MAIS DE UM VALOR.
No exemplo abaixo, temos uma função que retorna mais de um valor. Desta forma, o tipo de retorno é um registro denominado resultado. Este tipo de dado apresenta dois campos (maior
menor). #include <stdio.h> struct resultado{ float maior; float menor;
};
struct resultado calculaMenor(float *n1,float *n2); main()
{
float num1,num2; struct resultado res;
printf("Entre com o numero1 : "); scanf("%f",&num1); printf("Entre com o numero2 : "); scanf("%f",&num2); res=calculaMenor(&num1,&num2);
printf("O valor do menor e : %.2f\n",res.menor);
�
printf("O valor do maior e : %.2f\n",res.maior);
}
struct resultado calculaMenor(float *n1,float *n2)
{
struct resultado numeros;
if (*n1>*n2)
{
numeros.maior=*n1;
numeros.menor=*n2;
}
else
{
numeros.maior=*n2;
numeros.menor=*n1;
}
return numeros;
}
REFERÊNCIAS BIBLIOGRÁFICAS
Ascencio,Ana	Fernanda	Gomes;Campos,	Edilene	Aparecida	Veneruchi;
Fundamentos da Programação de Computadores: Algoritmos, Pascal e
C/C++.São Paulo: Prentice Hall, 202.
Forbellone, André Luiz; Lógica de Programação: A Construção de Algoritmos e Estruturas de Dados, Ed. Pearson; 3ª edição; 2011.
Ziviani, Nivio; Projeto de Algoritmos: Com Implementações Em Pascal e C; Ed. Cengage Learning; 3ª edição; 2011.

Outros materiais