Come chiamare una subroutine da se stesso in Visual Basic

August 20

La ricorsione è uno dei più potenti idee in tutta la scienza del computer. Spesso definito come un approccio "divide et impera" per risolvere i problemi, la ricorsione permette di risolvere un problema da risolvere uno o più "piccoli" versioni dello stesso problema, e poi facendo una piccola quantità di lavoro supplementare o la combinazione. In questo modo, molti problemi molto complessi possono essere risolti con algoritmi incredibilmente eleganti.

istruzione

1 Creare una nuova funzione di Visual Basic. Per esempio:

GCD Function (ByVal x As Integer, ByVal y as Integer) As Integer
End Function

Questa funzione calcola il massimo comun divisore di due numeri.

2 Aggiungere un test tra la funzione e End Function linee di distinguere tra il "caso base" e il "caso ricorsivo". casi di base sono molto importanti per le funzioni ricorsive - senza uno, il codice di solito causare un ciclo infinito e probabilmente crash il programma. Ad esempio, il caso base per la funzione "GCD" si presenta così:

Se y = 0 Then
'Questo sarà il caso base
Altro
'Questo sarà il caso ricorsivo
Finisci se

3 Aggiungere un caso base. Questo è il valore che la funzione restituisce quando incontra un problema così piccolo da non poter abbattere ulteriormente. Per la funzione "GCD", sembra che questo:

Rientro x

4 Aggiungere un caso ricorsivo. Quando la funzione è ricorrente, si invoca con un problema più semplice che lo aiuterà a risolvere il problema più grande. Nel caso della funzione "gcd", il problema più semplice è scelto in modo che il risultato è in realtà il risultato dell'intero problema complesso. Ecco come si presenta:

GCD Return (Y, X Mod y)

5 Metti alla prova la vostra funzione. E 'sempre importante per testare le funzioni ricorsive utilizzando il caso base e alcuni casi ricorsivi come input. Provate a pensare di test che potrebbero essere al di fuori della norma, come i numeri negativi.

Consigli e avvertenze

  • A volte la funzione ricorsiva avrà bisogno di risolvere diversi problemi più semplici al fine di costruire una soluzione ad un problema più complesso. Se questo è il caso, essere consapevoli della velocità del vostro algoritmo - ricorsione multipla può spesso portare a volte molto lento.