Buscar

Função recursiva somatória

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Função recursiva somatória
Função recursiva para soma. Fonte: elaborado pela autora.
Customização Dúvidas ao tutorUnidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências

Fe
ed
ba
ck
Vamos implementar uma função recursiva que faz a somatória dos antecessores de
um número inteiro positivo, informado pelo usuário, ou seja, se o usuário digitar 5, o
programa deverá retornar o resultado da soma 5 + 4 + 3 + 2 + 1 + 0. 
Com base nesse exemplo, você consegue determinar quando a função deverá parar
de executar? Veja, a função deverá somar até o valor zero, portanto esse será o
critério de parada.
Veja a implementação da função no código – Função recursiva para soma –, e a
seguir sua explicação.
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
Função recursiva para soma. Fonte: elaborada pelos autores.
Teste o código - Função recursiva para soma, utilizando a ferramenta Paiza.io.
A execução do programa no código – Função recursiva para soma –, começará na
linha 11, pela função principal (main). Na linha 15, a função somar() é invocada,
passando como parâmetro um número inteiro digitado pelo usuário. 
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
https://paiza.io/projects/JHmisvI9I6sg8TeniVvjrw
Nesse momento, a execução “salta” para a linha 2, onde a função é criada. Observe
que ela foi criada para retornar e receber um valor inteiro.
Na linha 3, o condicional foi usado como critério de parada; veja que, se o valor for
diferente (!=) de zero, a execução passa para a linha 8, na qual a função é invocada
novamente, mas dessa vez passando como parâmetro o valor menos 1. Quando o
valor for zero, retorna-se o próprio valor, isto é, 0.
_______
📝 Exemplificando
A figura – Exemplo função somar() –, exemplifica o funcionamento na memória do
computador da função somar(). Nessa ilustração, o usuário digitou o valor 2, então a
função main() invocará a função somar(2), criando a primeira instância e passando
esse valor. 
O valor 2 é diferente de zero na primeira instância, então, o critério de parada não é
satisfatório e a função chama a si própria, criando a segunda instância, mas, agora,
passando o valor 1 como parâmetro somar(1).
Veja que, na primeira instância, o valor a ser retornado é 2 + ?, pois ainda não se
conhece o resultado da função. Na segunda instância o valor também é diferente de
zero, portanto a função chama a si mesma novamente, agora passando como
parâmetro zero (valor – 1). 
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
Veja que o retorno fica como 1 + ?, pois também não se conhece, ainda, o resultado
da função. Na terceira instância, o critério de parada é satisfeito, nesse caso a função
retorna zero.
Esse valor será usado pela instância anterior que, após somar 1 + 0, retornará seu
resultado para a instância 1, que somará 2 + 1 e retornará o valor para a função
principal, fechando o ciclo de recursividade.
Exemplo função somar(). Fonte: elaborada pelos autores.
_______
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
Uma das grandes dúvidas dos programadores é quando utilizar a recursividade em
vez de uma estrutura de repetição. A função somar(), criada no código - Função
recursiva para soma -, poderia ser substituída por uma estrutura de repetição usando
for?
No exemplo dado, poderia ser escrito algo como:
Exemplo de substituição de estrutura de repetição. Fonte: elaborado pelo autor.
A verdade é que poderia, sim, ser substituída. A técnica de recursividade pode
substituir o uso de estruturas de repetição, tornando o código mais elegante do ponto
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
de vista das boas práticas de programação. 
Entretanto, como você viu, funções recursivas podem consumir mais memória que
as estruturas iterativas. Para ajudar a elucidar quando optar por essa técnica, veja o
que diz um professor da Universidade de São Paulo (USP):
Muitos problemas têm a seguinte propriedade: cada instância do problema contém
uma instância menor do mesmo problema. Dizemos que esses problemas têm
estrutura recursiva. Para resolver um tal problema, podemos aplicar o seguinte
método:
se a instância em questão for pequena, 
resolva-a diretamente (use força bruta se necessário);
senão
reduza-a a uma instância menor do mesmo problema, 
aplique o método à instância menor, 
volte à instância original.
[...] A aplicação desse método produz um algoritmo recursivo. (FEOFILOFF, 2017,
p. 1, grifo do original)
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
Portanto, a recursividade usada para indicar quando um problema maior pode ser
dividido em instâncias menores do mesmo problema, porém considerando a
utilização dos recursos computacionais que cada método empregará.
Não poderíamos falar de funções recursivas sem apresentar o exemplo do cálculo do
fatorial, um clássico no estudo dessa técnica. O fatorial de um número qualquer N
consiste em multiplicações sucessivas até que N seja igual ao valor unitário, ou seja,
que resulta em 120.
Observe o código – Função recursiva para fatorial –, que implementa essa solução
usando uma função recursiva. Em seguida, observe a explicação.
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
Função recursiva para fatorial - Fonte: elaborada pelos autores.
Teste o código - Função recursiva para fatorial, utilizando a ferramenta Paiza.io.
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
https://paiza.io/projects/-fgDrdXCrWQRPzZQbKn0Yw
A execução do código - Função recursiva para fatorial -, inicia pela função principal,
a qual solicita um número ao usuário e, na linha 15, invoca a função fatorial(),
passando o valor digitado como parâmetro. 
Dentro da função fatorial(), enquanto o valor for diferente de 1, a função chamará a
si própria, criando instâncias na memória, passando a cada vez como parâmetro o
valor decrementado de 1.
Quando o valor chegar a 1, a função retorna o próprio valor, permitindo assim o
retorno da multiplicação dos valores encontrados em cada instância. É importante
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
entender bem o funcionamento.
Observe a figura – Exemplo de função fatorial() –, que ilustra asinstâncias quando
o usuário digita o número 3. Veja que os resultados só são obtidos quando a função
chega no caso base e, então, começa a “devolver” o resultado para a instância
anterior.
Exemplo de função fatorial(). Fonte: elaborada pelos autores.
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck
Conteúdo anterior Próximo conteúdo
Avalie este conteúdo Escolha de 1 a 5 estrelas
Unidade 1 / Aula 3
Recursividade
100%
Introdução da aula
Função recursiva
Função recursiva somatória
Recursividade em cauda
Vídeoaula: Recursividade
Vídeoaula: Exercício Funções e
Recursividade
Conclusão
Referências
Fe
ed
ba
ck

Continue navegando