Programmi Ricorsivi e iterativi

di
Anonimizzato7212
il
1 risposte

Programmi Ricorsivi e iterativi

Salve a tutti, ho appena trovato il vostro forum che trovo parecchio interessante, essendo un newbie in fatto di programmazione. Per ora infatti mi sto solo concentrando (essendo ancora alle superiori) nella programmazione c/c++ vi lascio quindi immaginare che tipo di programmi faccio...

Ok quindi, non avendo mai fatto a scuola questa parte di programma, ed essendo curioso e appassionato, il mio primo quesito consiste nel sapere:

Che differenza c'e tra un Programma Iterativo e uno Ricorsivo?

Sicuramente avranno a che fare con funzioni e procedure, ma proprio non riesco a capire quali sono queste differenze, se qualcuno magari ha voglia di provare a farmelo capire o di fare qualche esempio gli e ne sarò grato.

Saluti a tutti, il nuovo iscritto Jackal

1 Risposte

  • Re: Programmi Ricorsivi e iterativi

    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
Devi accedere o registrarti per scrivere nel forum
1 risposte