Module: subroutine. ricorsione


Problem

1/12

Ricorsione. Cos'è questo?

Theory Click to read/hide

Una procedura o funzione può contenere al suo interno una chiamata a un'altra procedura. Compreso, la subroutine può chiamare se stessa. In questo caso, al computer non importa. Lui, come sempre, esegue costantemente i comandi che ha incontrato dall'alto verso il basso.

Se ricordi la matematica, allora lì puoi incontrare il principio dell'induzione matematica. È come segue: qualche affermazione è vera per ogni naturale n if
    1) è valido per n = 1;
    2) dalla validità dell'affermazione per ogni naturale arbitrario n = k ne consegue che è vera per n = k+1.

In programmazione, questa tecnica è chiamata ricorsione.

La ricorsione è un modo per definire un insieme di oggetti in termini dell'insieme stesso, basato su dati casi base semplici.

Ricorsivo è una procedura (funzione) che richiama se stessa direttamente o tramite altre procedure e funzioni.
Esempio di procedura ricorsiva:

void Rec(int a)
{
  if (a>0) { Rec(a-1); }
  Console.WriteLine(a);
}

Schematicamente, il lavoro di ricorsione può essere rappresentato come un diagramma di flusso.

 
Rec() la procedura viene eseguita con parametro 3 Poi, all'interno della procedura con parametro 3, viene chiamata la procedura con parametro 2, e così via, fino a quando viene chiamata la procedura con parametro 0. work. Poi il controllo viene ritrasferito alla procedura con il parametro 1, anch'essa termina il suo lavoro stampando il numero 1, e così via. prima della procedura con parametro 3. 

Tutte le procedure chiamate vengono archiviate in memoria finché non completano il loro lavoro. Il numero di procedure concorrenti è chiamato profondità di ricorsione.

Problem

Utilizzando la procedura parsed, aggiungi le righe necessarie al programma principale.
Comprendi perché il programma fornisce una tale risposta.