Funções são os blocos de construção da linguagem C++,com os quais podemos construir programas melhores e maisfacilmente co...
Dividindo o programa em funções separadas, deixando paraa função main somente a tarefa de organizar as chamadasdas demais ...
Basicamente, uma função funciona da seguinte forma:   • é feita uma chamada para esta função durante a   execução do progr...
Uma função pode receber dados do programa para executarseus comandos (estes dados são chamados de parâmetrosou argumentos)...
Declarando uma FunçãoAntes de utilizar uma função em um programa é precisodeclará-la, ou seja, especificar para o compilad...
Protótipo de uma FunçãoO protótipo de uma função tem a mesma função de umadeclaração de variáveis: dizer ao compilador qua...
O tipo da função denominará qual será o tipo de valor queesta função retorna.Uma função pode retornar qualquer tipo de val...
O tipo de parâmetro serve para determinar o tipo de variáveisque a função receberá como parâmetros.Assim como o tipo da fu...
Alguns exemplos de protótipo de função:int livro (unsigned int paginas);float divide (float dividendo, float divisor);void...
Definição de uma FunçãoO protótipo de uma função diz para o compilador quais ostipos de variáveis ela usará.Já a definição...
A primeira linha da definição de uma função é idêntica ao protótipo, com aexceção de que somos obrigados a declarar nomes ...
Retorno de uma funçãoO comando return é utilizado para terminar a execução deuma função e retornar um valor para o program...
O comando return aceita qualquer constante, variável ouexpressão geral que o programador precise retornar para oprograma p...
Por exemplo, considere a função compara_valores, mostradaa seguir:int compara_valores(int primeiro, int segundo){       if...
Variáveis LocaisA Linguagem C++ permite declarar variáveis dentro de suasfunções. Essas variáveis são chamadas de variávei...
Chamada por ValorOs programas passam informações para funções usandoparâmetros. Quando um parâmetro é passado a uma função...
Chamada por ReferênciaUsando a chamada por valor, as funções não podemmodificar o valor de uma variável passada para uma f...
A diferença entre chamada por valor e chamada porreferência é que, usando a chamada por valor, as funçõesrecebem uma cópia...
Para usar a chamada por referência, seu programa precisarusar ponteiros.Por ora tudo o que precisamos saber é que um ponte...
Sobrecarga de Função Em C ++, uma vez que o mecanismo de prototipagempermite identificar uma função por seu nome e seusarg...
Ex.:int soma(int, int);float soma(float, float);int soma(int, float);
Parâmetros Padrão (Default)Outra novidade introduzida por C++ no manuseio de funçõesé a possibilidade de definir-se um val...
Quando chamamos a função e enviamos um valor comoparâmetro para ela, a função é executada normalmente,utilizando o valor d...
Automaticamente a função substituiria x por 1, comoespecificamos no protótipo da função.Caso não tivéssemos definido um va...
Próximos SlideShares
Carregando em…5
×

Aula 4

229 visualizações

Publicada em

  • Seja o primeiro a comentar

Aula 4

  1. 1. Funções são os blocos de construção da linguagem C++,com os quais podemos construir programas melhores e maisfacilmente compreensíveis.Quando os programas tornam-se maiores e mais complexos,pode-se melhorar a clareza e compreensão do trabalhodividindo-o em partes menores, que chamamos de funções.Todo programa possui ao menos uma função: a função main,a qual podemos chamar de “corpo” do programa, onde estãolocalizados todos os comandos e chamadas de outrasfunções que são executadas pelo programa.
  2. 2. Dividindo o programa em funções separadas, deixando paraa função main somente a tarefa de organizar as chamadasdas demais funções, podemos trabalhar mais facilmente como programa, modificando e corrigindo funçõesindividualmente.À medida que o tamanho e a complexidade do programaaumentam, aumenta também a possibilidade de erros, já se omesmo for dividido em blocos menores e organizados, ficamais fácil encontrar e evitar erros.
  3. 3. Basicamente, uma função funciona da seguinte forma: • é feita uma chamada para esta função durante a execução do programa; • o programa é interrompido temporariamente, e “pula” para esta função executando seus comandos; • quando a função termina, ou seja, quando seus comandos acabam (ou quando o comando return é encontrado), o programa volta ao ponto onde foi interrompido para continuar sua execução normal.
  4. 4. Uma função pode receber dados do programa para executarseus comandos (estes dados são chamados de parâmetrosou argumentos), e pode também retornar dados para oprograma (o que chamamos de retorno de função).
  5. 5. Declarando uma FunçãoAntes de utilizar uma função em um programa é precisodeclará-la, ou seja, especificar para o compilador exatamenteo que faz esta função e que tipo de dados ela recebe eretorna.Podemos dividir o processo de declarar uma função em duasetapas distintas: o protótipo da função e a definição dafunção.
  6. 6. Protótipo de uma FunçãoO protótipo de uma função tem a mesma função de umadeclaração de variáveis: dizer ao compilador quais tipos devariáveis estarão envolvidos na função.Isso permite que o compilador saiba trabalhar corretamentecom os valores que entram e saem da função, fazendoconversões de tipos sempre que necessário.A sintaxe da declaração de um protótipo de função é aseguinte:<tipo_da_função> <nome> ( <tipo_de_parâmetro> <nome_da_variável>);
  7. 7. O tipo da função denominará qual será o tipo de valor queesta função retorna.Uma função pode retornar qualquer tipo de valor, seja inteiro,fracionário ou nenhum valor. Quando uma função não retornanenhum valor para o programa, seu tipo é void. Esse tipo de função executará seus comandos normalmente,mas não retornará nenhum valor para o programa quandoterminar.
  8. 8. O tipo de parâmetro serve para determinar o tipo de variáveisque a função receberá como parâmetros.Assim como o tipo da função, qualquer tipo de variável podeser utilizado como parâmetro. Uma função que não recebeparâmetros de entrada deve ter a palavra chave void entreparênteses.É possível ter vários parâmetros na mesma função,separando-os com vírgulas.
  9. 9. Alguns exemplos de protótipo de função:int livro (unsigned int paginas);float divide (float dividendo, float divisor);void imprime ( void );float divide (float, float)
  10. 10. Definição de uma FunçãoO protótipo de uma função diz para o compilador quais ostipos de variáveis ela usará.Já a definição de uma função diz ao compilador exatamenteo que a função faz. A sintaxe da definição de uma função é aseguinte:<tipo da função> <nome> ( <tipo do parâmetro> <nome do parâmetro>){comandos da função;}
  11. 11. A primeira linha da definição de uma função é idêntica ao protótipo, com aexceção de que somos obrigados a declarar nomes para as variáveis deparâmetro e que a linha não termina em um ponto-e-vírgula, e sim emuma abre-chaves.Dentro das chaves estarão todos os comandos pertencentes a função,inclusive declaração de variáveis locais, chamadas para outras funções echamadas de retorno. Por exemplo:int cubo ( int valor) { int resultado; resultado = valor*valor*valor; return resultado;}
  12. 12. Retorno de uma funçãoO comando return é utilizado para terminar a execução deuma função e retornar um valor para o programa. Sua sintaxeé a seguinte:return <variável ou expressão>;
  13. 13. O comando return aceita qualquer constante, variável ouexpressão geral que o programador precise retornar para oprograma principal, desde que este valor seja igual ouconvertível para o tipo da função (já estabelecido no protótipoda função).É importante notar que o valor retornado não pode ser umamatriz; porém, é possível retornar uma matriz indiretamente,desde que ela faça parte de uma estrutura ou objeto (tipos dedados que serão estudados mais adiante).
  14. 14. Por exemplo, considere a função compara_valores, mostradaa seguir:int compara_valores(int primeiro, int segundo){ if (primeiro == segundo) return (0); else if (primeiro > segundo) return (1); else if (primeiro < segundo) return (2);}
  15. 15. Variáveis LocaisA Linguagem C++ permite declarar variáveis dentro de suasfunções. Essas variáveis são chamadas de variáveis locais,pois seus nomes e valores somente têm significado dentro dafunção que contém a declaração da variável.
  16. 16. Chamada por ValorOs programas passam informações para funções usandoparâmetros. Quando um parâmetro é passado a uma função, aLinguagem C++ usa uma técnica conhecida como chamada porvalor para fornecer à função uma cópia dos valores dosparâmetros.Usando a chamada por valor, quaisquer modificações que a funçãofizer nos parâmetros existem apenas dentro da própria função.Quando a função termina, o valor das variáveis que a funçãochamadora passou para a função não é modificada dentro dafunção chamadora.
  17. 17. Chamada por ReferênciaUsando a chamada por valor, as funções não podemmodificar o valor de uma variável passada para uma função.Quando as funções alteram o valor de um parâmetro, osprogramas precisam passar o parâmetro para a funçãousando chamada por referência.
  18. 18. A diferença entre chamada por valor e chamada porreferência é que, usando a chamada por valor, as funçõesrecebem uma cópia do valor de um parâmetro.Por outro lado, com a chamada por referência, as funçõesrecebem o endereço de memória da variável.Portanto, as funções podem alterar o valor armazenado naposição de memória específica (em outras palavras, o valorda variável); alterações essas que permanecem após afunção terminar.
  19. 19. Para usar a chamada por referência, seu programa precisarusar ponteiros.Por ora tudo o que precisamos saber é que um ponteiroarmazena um endereço de memória, assim como umavariável armazena um valor.Mais adiante (quando forem alunos menos bobinhos),aprenderemos sobre ponteiros e suas aplicações em C++,incluindo o funcionamento de uma chamada de função porreferência.
  20. 20. Sobrecarga de Função Em C ++, uma vez que o mecanismo de prototipagempermite identificar uma função por seu nome e seusargumentos (assinatura da função), é possível criar funçõescom mesmo nome (sobrecarga).Este mecanismo é frequentemente utilizado na programaçãoorientada a objetos.
  21. 21. Ex.:int soma(int, int);float soma(float, float);int soma(int, float);
  22. 22. Parâmetros Padrão (Default)Outra novidade introduzida por C++ no manuseio de funçõesé a possibilidade de definir-se um valor padrão paraparâmetros de uma função.Isto é, podemos definir um parâmetro para uma função eestabelecer um valor padrão para ele, da seguinte forma:void mensagem (int x = 1);
  23. 23. Quando chamamos a função e enviamos um valor comoparâmetro para ela, a função é executada normalmente,utilizando o valor de x que enviamos.Porém, caso não enviássemos um valor x como parâmetropara esta função, isto é, fizéssemos a seguinte declaração noprograma:mensagem( );
  24. 24. Automaticamente a função substituiria x por 1, comoespecificamos no protótipo da função.Caso não tivéssemos definido um valor padrão para oparâmetro x, o compilador nos retornaria um erro deparâmetros insuficientes para que a função seja executada

×