Module: subroutine. ricorsione


Problem

2/12

Ricorsione. Simulazione del ciclo

Theory Click to read/hide

Abbiamo scoperto che la ricorsione è l'esecuzione ripetuta di comandi contenuti 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.

// proceduraLoopImitation() con due parametri
// primo parametro – contapassi, secondo parametro – numero totale di passi
static void LoopImitation(int i, int n)
{
  Console.WriteLine("Ciao N" + i); // istruzione da ripetere per qualsiasi valore i 
  if (i < n) // finché il contatore del ciclo non è uguale a n,
  {
    LoopImitation(i+1, n); // chiamando un nuovo procedura di istanza, con parametro i+1 (vai al valore i successivo)
  }
} 

Problem

Esamina il programma seguente e imposta una chiamata di procedura nel programma principale con i parametri i = 1 , n = 10.