Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Recursão e Passagem de Parâmetros em C++, Notas de aula de Informática

Este documento contém uma aula sobre recursão e passagem de parâmetros em c++, incluindo exemplos de código e explicações sobre a passagem por valor e por referência. Além disso, é apresentado o conceito de sobrecarga de funções e gabaritos de funções.

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 14/04/2010

ygor-dos-santos-luz-3
ygor-dos-santos-luz-3 🇧🇷

4.7

(3)

55 documentos

1 / 32

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Funções
Aula nº 11
Recursão (continuação)
Referência
Sobrecarga de funções
Gabarito de funções
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20

Pré-visualização parcial do texto

Baixe Recursão e Passagem de Parâmetros em C++ e outras Notas de aula em PDF para Informática, somente na Docsity!

Funções

Aula nº 11

Recursão (continuação)

Referência

Sobrecarga de funções

Gabarito de funções

Recursão – Exemplo 1 - Fatorial

  • (^) Para chegar a uma definição

recursiva da função fatorial deve-

se observar o relacionamento:

n! = n. (n-1)!

  • (^) Por exemplo:

...

int fat (int)

int main( ) {

int x=5;

cout<<x <<“! = ”<<fat(x)<<endl;

return 0;

}

int fat (int n) {

if (n <= 1)

return 1;

else

return n * fat (n – 1);

}

n! = n * (n-1)!

x

int fat (int n) {

if (n <= 1)

return 1;

else

return n *

Em execução:

int fat (int)

int main( ) {

int x=5;

x 5

int fat (int n) {

if (n <= 1)

return 1;

else

return n *

cout<<x<<“! = ”<< fat(x) << endl;

fat (n – 1);

n 5

n 4

int fat (int)

int main( ) {

int x=5;

cout<<x<<“! = ”<<

n 3

n 2

n 1

int fat (int n) {

if (n <= 1)

return 1;

fat(x)

Em execução:

int fat (int)

int main( ) {

int x=5;

x 5

int fat (int n) {

if (n <= 1)

return 1;

else

return n *

cout<<x<<“! = ”<< fat(x)<< endl;

fat (n – 1);

n 5

n 4

int fat (int)

int main( ) {

int x=5;

cout<<x<<“! = ”<<

n 3

n 2 3 2 2

Em execução:

int fat (int)

int main( ) {

int x=5;

x 5

int fat (int n) {

if (n <= 1)

return 1;

else

return n *

cout<<x<<“! = ”<< fat(x)<< endl;

fat (n – 1);

n 5

n 4

int fat (int)

int main( ) {

int x=5;

cout<<x<<“! = ”<<

n 3

Em execução:

int fat (int)

int main( ) {

int x=5;

x 5

int fat (int n) {

if (n <= 1)

return 1;

else

return n *

cout<<x<<“! = ”<< fat(x)<< endl;

fat (n – 1);

n 5

int fat (int)

int main( ) {

int x=5;

cout<<x<<“! = ”<<

Referências

  • (^) Passagem de parâmetros por valor;
    • (^) É feita uma cópia do argumento;
  • (^) Passagem por referência;
    • (^) A função chamada tem acesso à

variável da função chamadora;

  • (^) Passagem por referência evita o

overhead de criar uma cópia;

  • (^) Um parâmetro passado por referência

é um alias do seu correspondente.

14/10/2008 Aula 11 - Funções (4) 13 - 32

int main( ) {

int x = 2, z = 4;

cout << "x = " << x <<“antes de quadValor\n”;

cout<< "Valor retornado por quadValor:”

<< quadValor( x ) << endl ;

cout << "x = “ << x << " depois de quadValor\n“ ;

cout << "z = " << z << " antes de quadRef\n“;

quadRef ( z );

cout << "z = " << z << " depois de quadRef\n";

return 0;

}

int main( ) {

int x = 2, z = 4;

cout << "x = " << x <<“antes de quadValor\n”;

cout<< "Valor retornado por quadValor:”

<< quadValor( x ) << endl ;

cout << "x = “ << x << " depois de quadValor\n“ ;

// argumento da chamadora não é modificado

int quadValor( int a ) {

return (a =a*a);

} x 2

z 4

x 2

z 4

a 2

x 2

z 4

a 4

quadValor( x )

x = 2 antes de quadValor

Valor retornado por quadValor: 4;

x = 2 depois de quadValor

Referências

  • (^) Referências também podem ser

usadas como alíases para outras

variáveis dentro de uma função

#include

using namespace std;

int main()

{

int x = 3, &y = x; // y é agora um alias para x

cout << "x = " << x << endl << "y = " << y << endl;

x = 10;

cout << "x = " << x << endl << "y = " << y << endl;

return 0;

}

x = 3

y = 3

x = 10

y = 10

Pressione qualquer tecla para continuar...

Uma referência deve

ser inicializada

cout << “\nvolume de uma caixa com

comprimento 10 , largura 5 e altura 1

= ”<< volumeCaixa( 10 , 5 );

cout << “\nvolume de uma caixa com

comprimento 10 , largura 5 e altura 2

= ” << volumeCaixa( 10 , 5 , 2 );

return 0;

int volumeCaixa( int comp=1; int larg=1; int altura=1)

return comp * larg * altura;