Mostre, através do teste de mesa, o resultado da seguinte função:
Considere a entrada .
Passo 1
Considerando que a função recebe como parâmetro o valor 5, a primeira coisa que o programa executa é a verificação de igualdade entre (que armazena o valor 5) e 0. Como a condição é falsa, uma nova instância da função é criada, mas dessa vez com o parâmetro 4 ().
Passo 2
Sendo igual a 4 nessa nova instância, a mesma verificação será executada (já que é a mesma função) e como ainda é diferente de 0, outra instância é criado passando como parâmetro o valor 3.
Passo 3
Essas novas instâncias serão criadas até que o caso básico seja verdadeiro, ou seja, . Mas para isso, além das instâncias onde é igual a 5 e 4 (descritas nos passos anteriores) outras foram criadas, mais precisamente aquelas em que é igual a 3, 2, 1 e por fim 0.
Passo 4
Considerando que estamos na instância em que , a verificação de caso básico será verdadeira e a palavra “Fim” será impressa na tela com uma quebra de linha.
Passo 5
Após a impressão, está na hora da função retornar em suas instâncias, nesse caso o primeiro retorno será para a instância em que . Essa por sua vez, simplesmente imprimirá o valor de (que é 1).
Passo 6
Mais retornos recursivos ocorrerão, dessa vez estamos na instância em que , logo, o valor 2 será impresso e depois o 3, 4 e por fim 5 (primeira instância criada).
Resposta
Fazendo uma analise do algoritmo, o mesmo se trata de um código capaz de realizar uma contagem em ordem crescente utilizando de funções recursivas.