Você está na página 1de 12

20/08/2019

Algoritmos II

Funções

Funções
A maioria dos programas de computador são muito maiores do que os programas
apresentados até agora.

A experiência tem mostrado que a melhor maneira de desenvolver e manter um


programa grande é construí-lo a partir de pequenas partes ou componentes, sendo
cada uma delas mais fácil de manipular que o programa original.

Essa técnica é chamada de dividir para conquistar.

1
20/08/2019

Funções
Essas partes ou módulos, em C++, são chamadas de funções.

Existem funções pré-programadas, disponibilizadas em bibliotecas e existem as


funções definidas pelo programador.

 A biblioteca padrão C++ oferece uma rica coleção de funções para executar
cálculos matemáticos, manipular strings, entrada/saída, etc.

Funções Matemáticas
Funções Matemáticas Predefinidas

• #include <cmath>

• As variáveis x e y são do tipo double.

2
20/08/2019

Funções Matemáticas
Exemplo: Os argumentos de funções podem ser variáveis ou expressões.

Se c1 = 13.0, d = 3.0 e f = 4.0, o comando:

cout << sqrt (c1 + d * f);

calcula e imprime a raiz quadrada de:


13.0 + (3.0 * 4.0) == 25.0, ou seja, 5.

Funções Definidas pelo Programador


O programador escreve funções para definir tarefas específicas que podem ser
usadas em muitos pontos de um programa. Estas são chamadas de funções
definidas pelo programador.

Uma função é invocada (chamada para executar a tarefa designada por ela) por
uma chamada de função.

A chamada de função especifica o nome da função e provê informações (como


argumentos) que a função chamada precisa para executar seu trabalho.

3
20/08/2019

Sintaxe
tipo-valor-retorno nome-função (lista-parâmetros)
{
variáveis locais;
declarações e comandos;
return valor ou expressão;
}

Sintaxe
Onde:
 tipo-valor-retorno: é o tipo de dado do resultado devolvido pela função que fez a
chamada.
 nome-função: qualquer identificador válido.
 lista-parâmetros: contém as declarações dos parâmetros recebidos pela função quando
ela é chamada.

Se a função não recebe nenhum valor a lista é vazia.

Deve ser listado um tipo para cada parâmetro.

4
20/08/2019

Sintaxe
Há 3 maneiras de retornar controle para o ponto no qual uma função foi chamada.

a) Se a função não fornecer um valor como resultado, o controle é retornado quando a


chave de fim de função é encontrada.

b) Ou a se executar o comando sozinho:


return;

c) Ou se a função fornecer um valor como resultado. O comando:


return valor ou expressão;
retorna o valor da expressão para a função que realizou a chamada.

Exemplo

Exemplo sem Função Exemplo com Função

5
20/08/2019

Exemplo

Exemplo

Procedimentos
Funções que não retornam valor para o ponto
de chamada.

6
20/08/2019

Funções
Definição da função

Funções que
retornam valor para
o ponto de chamada.

Chamada à função

Funções que Chamam Outras Funções

7
20/08/2019

Sobrecarga de Funções
Sobrecarregar uma função significa criar uma família de funções, todas com o
mesmo nome, mas com a lista de parâmetros diferentes, seja em número ou em
tipo.

Quando uma função é chamada, é a lista de parâmetros passada para ela que
permite ao compilador identificar qual é o código-fonte deverá ser executado.

Exemplo: suponhamos que você queira criar uma função que calcule o cubo de seu
argumento e que o argumento possa ser um número inteiro, um float ou double.
Para resolver este problema, pode-se criar uma família de funções chamadas
cubo() com parâmetros diferentes.

Sobrecarga de Funções

8
20/08/2019

Protótipo de Funções
Se a função for definida depois de main( ), é preciso introduzir um protótipo dela
antes da função principal.

Também chamada de Declaração de Função.

Protótipo de Funções
int soma(int a, int b); // prototipo da função

int main() {
int x, y;
cout << “Digite dois numeros: \n”);
cin >> x >> y;
cout << “A soma eh: \n” << soma(x, y); }

int soma(int a, int b) {


int resultado;
resultado = a + b;
return resultado; }

9
20/08/2019

Passagem de Vetor para Funções


É necessário declarar um segundo parâmetro (em geral uma variável inteira) para
passar para a função o tamanho do array separadamente.

Passagem de Vetor para Funções

10
20/08/2019

Variáveis Globais e Locais: Escopo


Funções também estão sujeitas ao escopo de variáveis.

O escopo é o conjunto de regras que determinam o uso e a validade de variáveis


nas diversas partes do programa.

• Variáveis Locais
• Variáveis Globais

Variáveis Locais
Variáveis Locais

Variáveis locais são aquelas que só têm validade dentro do bloco no qual são
declaradas.

Um bloco começa quando abrimos uma chave e termina quando fechamos a chave.

Exemplo: variáveis declaradas dentro da função

11
20/08/2019

Variáveis Globais
Variáveis Globais

Variáveis globais são declaradas fora de todas as funções do programa.

Elas são conhecidas e podem ser alteradas por todas as funções do programa.

Quando uma função tem uma variável local com o mesmo nome de uma variável
global a função dará preferência à variável local.

Exemplo

Dica: Evite usar variáveis globais

12

Você também pode gostar