Module: sub-rotinas. recursão


Problem

1/8

Recursão. O que é isso?

Theory Click to read/hide

Um procedimento ou função pode conter uma chamada para outro procedimento dentro dele. Inclusive, a sub-rotina pode chamar a si mesma. Nesse caso, o computador não se importa. Ele também, como sempre, executa consistentemente os comandos que conhece de cima para baixo.

Se você se lembra da matemática, pode encontrar o princípio da indução matemática. É o seguinte:

Uma certa afirmação é verdadeira para todo natural n se
    1. é válido para n = 1 e
    2. da validade da afirmação para qualquer natural arbitrário n = k  segue-se que é verdade para n = k+1.

Na programação, essa técnica é chamada de recursão

Recursão é uma forma de definir um conjunto de objetos em termos do próprio conjunto, com base em casos básicos simples fornecidos.


Recursivo também será chamado de procedimento (função) que chama a si mesmo diretamente ou por meio de outros procedimentos e funções
Exemplo de procedimento recursivo: procedimento Rec(a: inteiro); começar     se um > 0 então         Rec(a - 1);     escreva(a); fim; Esquematicamente, o trabalho de recursão pode ser representado por um fluxograma


 
O procedimento Rec() é executado com o parâmetro 3. Em seguida, dentro do procedimento com o parâmetro 3, é chamado o procedimento com o parâmetro 2, e assim sucessivamente, até que seja chamado o procedimento com o parâmetro 0. Quando o procedimento com o parâmetro parâmetro 0 for chamado, a chamada recursiva já não acontecerá e o procedimento com parâmetro 0 imprimirá o número 0 e terminará. Em seguida, o controle é transferido de volta para o procedimento com o parâmetro 1, ele também termina seu trabalho imprimindo o número 1 e assim por diante. antes do procedimento com o parâmetro 3. 

Todos os procedimentos chamados são armazenados na memória até que concluam seu trabalho. O número de procedimentos simultâneos é chamado de profundidade de recursão.

Problem

Usando o procedimento analisado, adicione as linhas necessárias ao programa principal.
Entenda porque o programa dá tal resposta