As Funções – Passagem de Parâmetro por Valor e Referência
Por: Thiago Cruz • 30/11/2017 • Trabalho acadêmico • 1.199 Palavras (5 Páginas) • 329 Visualizações
Sistemas de Informação
3ª Série
Programação Estruturada II
Capítulo 1 – Funções – Passagem de Parâmetro por Valor e Referência
Nome:
Nome:
Nome:
Nome:
Funções
Função é um conjunto de códigos agrupados em uma área determinada do programa, que recebe um nome, e pode ser chamada através dele.
As vantagens de criar funções são:
• Praticidade, pois se precisarmos executar uma tarefa várias vezes dentro do mesmo programa, podemos criar uma função e usar sempre que necessário, economizando tempo e código, além de ficar mais fácil a manutenção no código já que qualquer alteração necessária será feita apenas na função.
• Entendimento, se algum dia outra pessoa precisar fazer alguma alteração em alguma rotina específica, basta encontrar a função correspondente.
Exemplo:
O resultado da execução do exemplo acima seria:
Declarando uma função
Dependendo da funcionalidade da função, será necessário colocar algumas informações em sua declaração. A função deve ter um nome, pode ter um tipo (que define o tipo do valor retornado pela função, se esse retorno existir), e pode ter uma série de parâmetros passados na chamada da função que seriam necessários para a execução da rotina.
Exemplo:
Onde:
Resultado – Variável que receberá o retorno
Somar (a, b) – Chamada da função, com passagem de parâmetros
Int – Tipo do retorno
Somar – Nome da função
Int a, int b – parâmetros da função
Return soma – Retorno do valor inteiro definido na declaração.
Passagem de parâmetros
Parâmetros são dados passados ás funções na chamada, e que são necessários para realizar as tarefas designadas á função corretamente.
Existem dois tipos de passagem de parâmetros: por valor, e por referência.
Passagem de parâmetros por valor
Os parâmetros são recebidos como variáveis locais, atribuindo apenas o valor das variáveis informadas na chamada da função, sendo assim, a função não consegue alterar o conteúdo original das informações passadas através de parâmetro.
Exemplo:
No exemplo demonstrado, a função “main” chama a função “somar” passando os parâmetros “a” e “b”, destacados de amarelo, e já na função “somar”, ela recebe os valores informados na variável local “a”.
O resultado da execução do programa é:
Tanto na função “main” quando na “somar” existe a variável local chamada “a”, porém como elas são LOCAIS, cada função só consegue acessar a sua. Se dentro da função “somar” for alterado o valor de “a”, na função “main” o valor de “a” permanecerá o mesmo.
No programa acima, existe uma função para realizar os calculos necessários, e a função principal para a leitura e chamada da função com a passagem de parâmetros. Na execução desse programa, ele irá ler os 2 valores a serem somados, passará como parâmetro para a função “somar”, essa função retornará o valor da soma, que será imprimido na tela. Note que nessa função é alterado o valor da variavel local “a” para 1. Na ultima parte da função principal, e imprimido o valor de a, que permanece o mesmo valor do digitado, já que se trata de uma variavel diferente.
Passagem de parâmetro por referencia
Diferente dos parâmetros explicados anteriormente, na passagem de parâmetros por referencia a função recebe o endereço da posição na memória da variável passada, fazendo com que o parâmetro se torne um “ponteiro”.
Exemplo:
No programa acima, temos a declaração de um parâmetro com “*” antes, isso indica que aquela variável é um ponteiro, e que quando a função for chamada, deverá ser passado o endereço de memória da variável, e não o valor dela.
Se o valor de “b” for alterado dentro da função “somar”, ele será alterado dentro da função “main” também será alterado.
O resultado da execução do programa acima será:
Exercicios:
1)Construa um programa utilizando funções que sirva para somar 2 números lidos do teclado.
#include <stdio.h>
#include <stdlib.h>
void somar(); // declaração da função
main()//função principal do programa
{
somar(); //chamada da função de soma
}
void somar()//função para fazer a soma de dois numeros
{
int a, b, soma = 0; ;//declaração de variaveis
printf("Digite o primeiro numero a ser somado: \n");");//exibindo instruções ao usuario
scanf("%d", &a); );//lendo
...