Recursão — Informática, 11–13
A recursão resolve um problema grande aplicando a mesma regra a uma versão mais pequena, até chegar a um ponto simples de paragem.
Uma regra que se chama a si própria
Na recursão, uma instrução trata de uma parte e depois pede à mesma instrução que trate de uma parte mais pequena. Também tem de saber quando parar: esse é o caso-base. O desenho de um ramo mostra a ideia: cada ramo divide-se em ramos menores, mas o galho mais pequeno já não se divide.
Por que usar recursão?
Algumas coisas são feitas de cópias mais pequenas do mesmo tipo: pastas contêm pastas, árvores genealógicas dividem-se em ramos e mapas contêm regiões dentro de regiões. Uma lista longa de instruções separadas seria difícil de escrever e alterar. A recursão nasceu do problema de descrever estas estruturas encaixadas com uma só regra clara, em vez de repetir código semelhante.
Fazer uma contagem decrescente
Usa uma regra chamada conta(n): se n for 0, para; caso contrário, escreve n e chama conta(n−1). Começa com conta(3). Escreve 3, depois chama conta(2), que escreve 2 e chama conta(1). Esta escreve 1 e chama conta(0); o caso-base para tudo, por isso o resultado final é 3, 2, 1.
Esquecer a paragem
Uma regra recursiva pode parecer elegante, por isso é tentador deixá-la chamar-se sem verificar um caso-base. É um erro compreensível: as tarefas mais pequenas parecem acabar por desaparecer. Sem uma paragem, porém, o valor pode nunca chegar ao fim, e o computador continua a criar chamadas inacabadas até ficar sem espaço ou indicar um erro.
Pastas e formas ramificadas
Os exploradores de ficheiros podem procurar numa pasta e depois em cada pasta dentro dela, mesmo que estejam muito encaixadas. Os programas de desenho também usam recursão para plantas ramificadas, formas parecidas com flocos de neve e caminhos de labirintos. Não precisas de recursão para todas as acções repetidas; é mais útil quando cada parte contém partes menores com a mesma estrutura.
Continua a explorar
Outras línguas
A carregar o MyLeoNes™…