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; } * * *