Module: sub-rotinas. recursão


Problem

2/8

Recursão. Simulação de ciclo

Theory Click to read/hide

Vimos que a recursão é a execução repetida de instruções contidas em uma sub-rotina. E isso, por sua vez, é semelhante ao trabalho do ciclo. Existem linguagens de programação nas quais a construção do loop está ausente, por exemplo, Prolog. 
Vamos tentar simular o funcionamento do loop for. 
O loop for contém uma variável de contador de passos. Em uma sub-rotina recursiva, tal variável pode ser passada como um parâmetro. //procedimento LoopImitation() com dois parâmetros //Primeiro parâmetro – contador de passos, segundo parâmetro – número total de passos procedimento LoopImitation(i, n: inteiro); começar     writeln('Olá N', i); // Operador a ser repetido para qualquer valor de i     se eu < n então //Até que o contador de loop se torne igual ao valor n,         LoopImitation(i + 1, n); //chama uma nova instância do procedimento, com o parâmetro i+1 (transição para o próximo valor i) fim;

Problem

Estude o programa abaixo e emita uma chamada de procedimento com os parâmetros i=1, n=10 no programa principal //procedimento LoopImitation() com dois parâmetros //Primeiro parâmetro – contador de passos, segundo parâmetro – número total de passos procedimento LoopImitation(i, n: inteiro); começar     writeln('Olá N', i); // Operador a ser repetido para qualquer valor de i     se eu < n então //Até que o contador de loop se torne igual ao valor n,         LoopImitation(i + 1, n); //chama uma nova instância do procedimento, com o parâmetro i+1 (transição para o próximo valor i) fim; começar     // aqui é necessário emitir uma chamada de procedimento com parâmetros i=1, n=10 fim.