Problem

2/8

Ricorsione. Simulazione del ciclo

Theory Click to read/hide

Abbiamo visto che la ricorsione è l'esecuzione ripetuta di istruzioni contenute in una subroutine. E questo, a sua volta, è simile al lavoro del ciclo. Esistono linguaggi di programmazione in cui il costrutto loop è del tutto assente, ad esempio Prolog. 
Proviamo a simulare il funzionamento del ciclo for. 
Il ciclo for contiene una variabile contapassi. In una subroutine ricorsiva, tale variabile può essere passata come parametro.

//LoopImitation() procedura con due parametri
//Primo parametro – contapassi, secondo parametro – numero totale di passi
procedura LoopImitation(i, n: intero);
inizio
    writeln('Ciao N ', io); // Operatore da ripetere per qualsiasi valore di i
    se io < n then //Fino a quando il contatore del ciclo diventa uguale al valore n,
        LoopImitation(i + 1, n); //chiama una nuova istanza della procedura, con il parametro i+1 (transizione al valore successivo i)
FINE; 

Problem

Studia il programma seguente ed emetti una chiamata di procedura con parametri i=1, n=10 nel programma principale
//LoopImitation() procedura con due parametri
//Primo parametro – contapassi, secondo parametro – numero totale di passi
procedura LoopImitation(i, n: intero);
inizio
    writeln('Ciao N ', io); // Operatore da ripetere per qualsiasi valore di i
    se io < n then //Fino a quando il contatore del ciclo diventa uguale al valore n,
        LoopImitation(i + 1, n); //chiama una nuova istanza della procedura, con il parametro i+1 (transizione al valore successivo i)
FINE;

inizio
    // qui è necessario emettere una chiamata di procedura con parametri i=1, n=10
FINE.