Buscar

Funções em Programação

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

*
*
ESTRUTURAS DE DADOS – AULA 2
ANITA MACIEL
Rio de Janeiro, 05 de AGOSTO de 2011
*
*
FUNÇÕES “Dividir para facilitar”
Os códigos estão ficando enormes
*
*
Vários comandos
idênticos seguidos
*
*
Vários comandos
idênticos seguidos
*
*
Vários comandos
idênticos separados
*
*
Vários comandos
idênticos separados
*
*
 Conceito de função 
“Função é um conjunto de comandos que executam uma determinada tarefa.”
(SAADE, Joell, 2003, 99)
*
*
Um programa pode ser formado por uma ou mais funções.
A função main sempre estará presente.
*
*
*
*
 Definição da função
*
*
 Cabeçalho da função
 Corpo da função
(escopo)
*
*
 Cabeçalho da função
*
*
 Cabeçalho da função
*
*
 Cabeçalho da função
*
*
 Protótipo da função
*
*
 Chamada da função
PELO NOME
Se for uma função com retorno, precisará de um comando. 
*
*
 Fluxo do programa após o término da Função
No lugar em que é chamada - com 
retorno
Na instrução seguinte - void
*
*
Tipos
void
int
float
double
char
*
*
PASSAGEM POR REFERÊNCIA &
PASSAGEM POR VALOR
Exemplo: Você empresta seu caderno para xerocar.
Exemplo: Você entrega os originais da sua monografia para um revisor.
*
*
Exemplo 1
Função que exibe a mensagem : Estruturas de Dados
tipo?
parâmetros?
retorno?
quantos?
passagem por valor ou referência?
*
*
void
Exemplo 1
Função que exibe a mensagem : Estruturas de Dados
*
*
void msg
Exemplo 1
Função que exibe a mensagem : Estruturas de Dados
*
*
void msg()
Exemplo 1
Função que exibe a mensagem : Estruturas de Dados
*
*
void msg()
{
Exemplo 1
Função que exibe a mensagem : Estruturas de Dados
*
*
void msg()
{
 cout<<“Estruturas de Dados”;
Exemplo 1
Função que exibe a mensagem : Estruturas de Dados
*
*
void msg()
{
 cout<<“Estruturas de Dados”;
}
Exemplo 1
Função que exibe a mensagem : Estruturas de Dados
*
*
Exemplo 2
Função que recebe uma mensagem e exibe
parâmetros?
quantos?
passagem por valor ou referência?
tipo?
retorno?
*
*
void
Exemplo 2
Função que recebe uma mensagem e exibe
*
*
void msgRecebe
Exemplo 2
Função que recebe uma mensagem e exibe
*
*
void msgRecebe()
Exemplo 2
Função que recebe uma mensagem e exibe
*
*
void msgRecebe(char msg[ ])
Exemplo 2
Função que recebe uma mensagem e exibe
*
*
void msgRecebe(char msg[ ])
{
 
Exemplo 2
Função que recebe uma mensagem e exibe
*
*
void msgRecebe(char msg[ ])
{
 cout<<msg<<endl;
Exemplo 2
Função que recebe uma mensagem e exibe
*
*
void msgRecebe(char msg[ ])
{
 cout<<msg<<endl;
}
Exemplo 2
Função que recebe uma mensagem e exibe
*
*
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
parâmetros?
quantos?
passagem por valor ou referência?
tipo?
retorno?
*
*
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
*
*
int
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
*
*
int data
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
*
*
int data()
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
*
*
int data(int d)
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
*
*
int data(int d)
{
 
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
*
*
int data(int d)
{
 return d %10000;
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
*
*
int data(int d)
{
 return d %10000;
}
Exemplo 3
Função que recebe uma data no formato ddmmaaaa e retorna o ano
*
*
Função
Programa
*
*
 Localização da função
ANTES DA main()
DEPOIS DA main()
*
*
Programa com erro
*
*
*
*
 Eu pensei que, se colocássemos antes da main, nunca teria problemas. E agora?
 A primeira solução, para esse problema, seria colocar a função dobra(...) antes da função soma(...).
*
*
 A segunda solução, para esse problema, seria declarar(protótipos) das funções antes de definí-las e, preferencialmente, posicioná-las depois da main, embora, nesse exemplo, tenha mantido antes.
*
*
*
*
*
*
Variável global x variável local
*
*
Variável global x variável local
*
*
Variável global x variável local
*
*
Variável global x variável local
*
*
Variável global x variável local
*
*
Exemplo de programa usando funções e variável global
*
*
*
*
*
*
Passagem por Referência
*
*
*
*
*
*
Passando vetor para a função
*
*
*
*
*
*
double soma(double n[], int tam);
void media(double nt1[], double nt2[], double m[], int tam);
Exemplos
*
*
double soma(double n[], int tam)
{
 int x; double somaVet=0;
 for(x=0;x<tam; x++)
 somaVet += n[x];
 return somaVet;
}
*
*
void media(double nt1[], double nt2[], double m[], int tam)
{
 int x;
 for(x=0;x<tam; x++)
 m[x]=(nt1[x] + nt2[x])/2;
}
*
*
*

Teste o Premium para desbloquear

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

Outros materiais