Module: (C++) Ricorsione


Problem

2/12

Ricorsione. Simulazione del ciclo

Theory Click to read/hide

Ricorsione. Simulazione del ciclo
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 lavoro del ciclo for

Il ciclo for contiene una variabile contapassi. In una subroutine ricorsiva, tale variabile può essere passata come parametro. // Procedura LoopImitation() con due parametri. // Primo parametro – contapassi, secondo parametro – numero totale di passi. void LoopImitation(int i, int n) { cout << "Ciao N" << io << finel; // Operatore da ripetere per qualsiasi valore di i if (i < n) // Fino a quando il contatore del ciclo è uguale a n, { // chiama una nuova istanza della procedura, con il parametro i+1 (passa al valore successivo i). LoopImitation(i + 1, n); } }

Problem

Studia il programma sottostante e organizza nel programma principale una chiamata di procedura con i parametri i=1, n=10. #include <iostream> utilizzando lo spazio dei nomi std; //Procedura LoopImitation() con due parametri. //Primo parametro – contapassi, secondo parametro – numero totale di passi. void LoopImitation(int i, int n) { cout << "Ciao N" << io << finel; // Operatore da ripetere per qualsiasi valore di i. if (i < n) // Fino a quando il contatore del ciclo è uguale a n, { // chiama una nuova istanza della procedura, con il parametro i+1 (passa al valore successivo i). LoopImitation(i+1, n); } } principale() { // qui è necessario emettere una chiamata di procedura con parametri i=1, n=10. }