2. Funções Inline
As funções inline servem como
códigos a serem copiados ao lugar
que são chamados.
Quando chamamos uma função inline
em um programa, o compilador
substitui a chamada de função pelo
próprio código da função, adaptando
automaticamente os parâmetros e
retorno da função.
3. Sintaxe de declaração de uma
função Inline
Para criar uma função inline basta fazer
a mesma coisa que faríamos para criar
uma função normal, a única diferença é
que antes de começar a escrever a
função devemos utilizar a palavra
reservada inline.
Palavra _chave tipo_de_retorno nome_da_função (parâmetros)
Exemplo:inline int kaddy(){
}
4. Funções Inline
A palavra-chave inline é usada em
C++ e aplicada a uma função. Ela
indica ao compilador que cada
chamada para a função inline deve
ser substituída pelo corpo desta
função.
5. Exemplo de uso de Funções Inline
#include <iostream>
#include <math.h>
using namespace std;
long int quadrado (int x);
inline void opcao();
main() {
int y,z;
cout<<"Introduza o numero para calcular o seu
quadradon";
cin>>y;
cout<<"O quadrado de "<<y<<" e
t"<<quadrado(y)<<"nn";
opcao();
return 0;
}
6. Exemplo de uso de Funções Inline
long int quadrado (int x){
return(x=pow(x,2));
}
inline void opcao(){
int k;
cout<<"Pretende efectuar mais um
calculo?n1.Simt2.Naon";
cin>>k;
switch(k){
case 1:
main();
break;
7. Exemplo de uso de Funções Inline
case 2:
cout<<"Obrigado!!!";
break;
default:
cout<<"Opcao invalidann";
main();}
}
8. Vantagem/Desvantagem do uso de
Funções Inline
A vantagem é o aumento de
desempenho (ganha-se velocidade
com as funções inline), pois o
programa não precisa se deslocar até
achar a função.
Mas esse aumento de desempenho
vem com um aumento no custo de
espaço em memória.
9. Funções Recursivas
Uma função é recursiva se um
comando no corpo da função chama
ela mesma.
Qualquer função em linguagem C/C++
pode ser chamada de um modo
recursivo, isto é, uma função pode
chamar-se a si própria.
Para uma linguagem ser recursiva,
uma função deve estar apta a chamar
a si própria.
10. Criar Funções Recursivas
Para criar uma função recursiva basta
escrever no código da função, a
função que está sendo criada como
se ela já tivesse sido criada antes, isto
é, por exemplo, temos um programa
em que sabemos que o código do
programa está todo dentro da função
main, se quisermos reiniciar o
programa basta chamarmos a função
main novamente.
11. Funcionamento da função
recursiva
Início do programa: Chama
automaticamente a função MAIN
Processos e comandos dentro do
código: Contas com variáveis,
condições, atribuições, etc...
Chama-se a função MAIN: Sem
fechar o programa, ele chama ele
mesmo de novo (reinicia).
12. Funções Recursivas
Dada uma função recursiva, sempre é
possível escrever uma função
equivalente, sem recursão.
13. Comparação entre função recursiva e a função
equivalente sem recursão
Função recursiva Código equivalente sem recursão
#include <iostream>
#include <math.h>
using namespace std;
long int quadrado (int x);
main() {
int y;
cout<<"Introduza o numero para
calcular o seu quadradon";
cin>>y;
cout<<"O quadrado de "<<y<<" e
t"<<quadrado(y);
return 0; }
long int quadrado (int x){
return x=pow(x,2); }
#include <iostream>
#include <math.h>
using namespace std;
long int quadrado (int x);
main() {
int y;
cout<<"Introduza o numero para
calcular o seu quadradon";
cin>>y;
cout<<"O quadrado de "<<y<<" e
t"<<quadrado(y);
return 0; }
long int quadrado (int x){
x=pow(x,2);
return x; }
14. Exemplo de uso de Funções Recursivas
#include <iostream>
using namespace std;
int main() {
int x;
cout<<"Veiculo:n1.Ligeiron2.Ligeiro de
Cargan3.Pesado de passageiro e cargan4.Pesado de
carga com atreladonn";
cin>>x;
switch(x){
case 1:
cout<<"Ligeiro:t10,00 meticais";
break;
15. Exemplo de uso de Funções
Recursivas
case 2:
cout<<"Ligeiro de carga:t20,00 meticais";
break;
case 3:
cout<<"Pesado de passageiro e carga:t40,00 meticais";
break;
case 4:
cout<<"Pesado de carga e atrelado:t100,00
meticais";
break;
default:
cout<<"Operacao invalidannnn";
main(); }
cout<<"nnttObrigado!!!n";
cout<<"ttBoa viagem!";
return 0; }
16. Vantagem/Desvantagem do uso de
Funções Recursivas
Usar a função recursiva torna o
algoritmo simples. Quem faz toda a
conta é a função.
Mas toda facilidade tem seu custo.
Apesar de nosso algoritmo estar
curto, toda vez que chamamos uma
função leva um certo tempo para ser
processada (a chamada de uma
função consome tempo de
processamento).