Logo Passei Direto
Buscar

Função recursiva

User badge image
Valmir lima

em

Ferramentas de estudo

Questões resolvidas

Olá estudante! Você se lembra do algoritmo que calcula o fatorial de um número, o qual vimos na aula sobre estruturas de repetição?

Toda função recursiva deve ter uma instância com um caso que interromperá a chamada a novas instâncias. Essa instância é chamada de caso base, pois representa o caso mais simples, que resultará na interrupção. Um programador que implementa de maneira equivocada o critério de parada, acarretará um erro somente na sua aplicação, ou tal erro poderá afetar outras partes do sistema?


Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Olá estudante! Você se lembra do algoritmo que calcula o fatorial de um número, o qual vimos na aula sobre estruturas de repetição?

Toda função recursiva deve ter uma instância com um caso que interromperá a chamada a novas instâncias. Essa instância é chamada de caso base, pois representa o caso mais simples, que resultará na interrupção. Um programador que implementa de maneira equivocada o critério de parada, acarretará um erro somente na sua aplicação, ou tal erro poderá afetar outras partes do sistema?


Prévia do material em texto

Função recursiva
Olá estudante! Você se lembra do algoritmo que calcula o fatorial de um número, o
qual vimos na aula sobre estruturas de repetição?
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
Para implementar computacionalmente uma solução desse tipo, há as estruturas de
repetição, como o for, entretanto essa técnica não é a única opção, já que você
também pode utilizar a recursividade, assunto central desta aula. 
Nesta unidade, apresentamos as funções. Vimos como criar uma função, qual sua
importância dentro de uma implementação e estudamos a saída de dados de uma
função, bem como a entrada, feita por meio dos parâmetros.
Entre as funções existe uma categoria especial chamada de funções recursivas. Para
começarmos a nos apropriar dessa nova técnica de programação, primeiro vamos
entender o significado da palavra recursão. 
Ao consultar diversos dicionários, como o Houaiss ou o Aulete, temos como
resultado que a palavra recursão (ou recursividade) está associada à ideia de
recorrência de uma determinada situação.
Quando trazemos esse conceito para o universo da programação, deparamo-nos com
as funções recursivas.
Nessa técnica, uma função é dita recursiva quando ela chama a si própria ou, nas
palavras de Soffner: “Recursividade é a possibilidade de uma função chamar a si
mesma” (SOFFNER, 2013, p. 107).
A sintaxe para implementação de uma função recursiva nada difere das funções
gerais, ou seja, deverá ter um tipo de retorno, o nome da função, os parênteses e os
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
parâmetros quando necessário. A diferença estará no corpo da função, pois a função
será invocada dentro dela mesma.
Observe a figura - Algoritmo para função recursiva. Nela, ilustramos a construção da
função, bem como a chamada dela, primeiro na função principal e depois dentro
dela mesma.
Algoritmo para função recursiva. 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
🔁 Assimile
Em termos de sintaxe, uma função recursiva difere de outras funções simplesmente
pelo fato de apresentar, em seu conjunto de comandos, uma chamada a si própria.
_______
Embora a sintaxe da função recursiva seja similar à das não recursivas, o
funcionamento de ambas é bastante distinto e o mau uso dessa técnica pode acarretar
uso indevido de memória, muitas vezes chegando a travar a aplicação e o sistema
(MANZANO, 2015). 
Para entender o processo, vamos estabelecer alguns pontos de atenção:
a função recursiva chama a si própria até que um ponto de parada seja
estabelecido. O ponto de parada poderá ser alcançado por meio de uma
estrutura condicional ou por meio de um valor informado pelo usuário.
uma função apresenta em seu corpo variáveis e comandos, os quais são
alocados na memória de trabalho. No uso de uma função recursiva, os recursos
(variáveis e comandos) são alocados (instanciados) em outro local da memória,
ou seja, para cada chamada da função, novos espaços são destinados à
execução do programa. E é justamente por esse motivo que o ponto de parada é
crucial.
as variáveis criadas em cada instância da função na memória são
independentes, ou seja, mesmo as variáveis tendo nomes iguais, cada uma tem
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
seu próprio endereço de memória e a alteração do valor em uma não afetará a
outra.
Para te auxiliar na compreensão desse mecanismo observe a figura – Mecanismo da
função recursiva. A instância 1 representa a primeira chamada à função
funcaoRecursiva(), esta, por sua vez, tem em seu corpo um comando que invoca a si
mesma; nesse momento é criada a segunda instância dessa função na memória de
trabalho.
Veja que um novo espaço é alocado, com variáveis e comandos, e, como a função é
recursiva, novamente ela chama a si mesma, criando, então, a terceira instância da
função. 
Dentro da terceira instância, uma determinada condição de parada é satisfeita, nesse
caso, a função deixa de ser instanciada e passa a retornar valores.
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
Mecanismo da função recursiva. Fonte: elaborada pelos autores.
a partir do momento que a função recursiva alcança o ponto de parada, cada
instância da função passa a retornar seus resultados para a instância anterior (a
que fez a chamada). 
No caso da figura – Mecanismo da função recursiva –, a instância três retornará para
a dois, e a dois retornará para a um. Veja que, se o ponto de parada não fosse
especificado na última chamada, a função seria instanciada até haver um estouro de
memória.
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
Toda função recursiva deve ter uma instância com um caso que interromperá a
chamada a novas instâncias. Essa instância é chamada de caso base, pois representa
o caso mais simples, que resultará na interrupção.
_______
💭 Reflita
Toda função recursiva tem que dispor de um critério de parada. A instância da
função que atenderá a esse critério é chamada de caso base. 
Um programador que implementa de maneira equivocada o critério de parada,
acarretará um erro somente na sua aplicação, ou tal erro poderá afetar outras partes
do sistema?
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
Conteúdo anterior Próximo conteúdoUnidade 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

Mais conteúdos dessa disciplina