Buscar

Função recursiva

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 8 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 8 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

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

Continue navegando