Cap05 Recurs O1
1078 palavras
5 páginas
Recursãoslide 1
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
Os programas que discutimos geralmente são estruturados como funções que chamam umas às outras de maneira disciplinada, hierárquica.
Para alguns tipos de problemas, é útil ter funções que chamam a si mesmas.
Uma função recursiva é uma função que chama a si mesma direta ou indiretamente, por meio de outra função.
slide 2
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
Uma função recursiva é chamada para resolver um problema. Na verdade, a função sabe somente como resolver os casos mais simples, ou os chamados casos básicos.
Se a função é chamada com um caso básico, ela simplesmente retorna um resultado.
Se uma função é chamada com um problema mais complexo, ela divide o problema em duas partes conceituais: uma parte que ela sabe como fazer e uma parte que ela não sabe como fazer.
Para tornar a recursão viável, a segunda parte precisa ser semelhante ao problema original, mas uma versão ligeiramente mais simples ou ligeiramente menor.
slide 3
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
Como esse novo problema se parece com o problema original, a função inicia (chama) uma nova cópia de si mesma para atuar sobre o problema menor — esse processo é conhecido como chamada recursiva, e também como etapa de recursão.
A etapa de recursão também inclui a palavra-chave return, pois seu resultado será combinado com a parte do problema que a função sabia como resolver para formar um resultado que será passado de volta a quem a chamou originalmente, possivelmente, main.
A etapa de recursão é executada enquanto a chamada original à função está aberta, ou seja, enquanto sua execução ainda não foi concluída.. slide 4
© 2011 Pearson Prentice Hall. Todos os direitos reservados.
A etapa de recursão pode resultar em muito mais dessas chamadas recursivas, pois a função continua dividindo cada problema com que é chamada em duas