Ciao,
Le iterazioni sono una sequenza di operazioni che vengono eseguite ciclicamente per certo numero di volte oppure fino una certa condizione.
Esempio:
FUNCTION TURNOFF
...
WHILE (c'è una luce accesa in casa?==TRUE)
[istruzione] --> spengo la luce
LOOP
...
END
Anche le ricorsioni sono cicliche ma richiamando loro stesse. Solitamente vengono usate per spezzare o dividere
blocchi di dati per darli in pasto alla stessa funzione. Il vantaggio che ne deriva è una minor scrittura del codice.
Un esempio:
FUNCTION SEARCH (array, start, end, value)
...
IF (end < start) RETURN -1
...
n= BLA BLA BLA
IF (value < array[n]) RETURN SEARCH(array,start,n-1,value)
ELSE IF (value == array[n]) RETURN n
...
BLA BLA BLA SEARCH(array,n+1,end,value)
...
END
Benchè alcuni algoritmi siano espressamente nati ricorsivi sarebbe bene utilizzare dove possibile le iterazioni.
Le ricorsioni infatti hanno lo svantaggio di mangiare memoria dallo STACK ed essere più lente rispetto alle iterazioni.
Saluti,
Max