Definizione funzione ricorsiva

di il
4 risposte

Definizione funzione ricorsiva

Salve a tutti.
Premetto che mi sto avvicinando al C da circa un mesetto... e avrei bisogno di un aiuto nel definire una funzione così fatta:

F(i,t1,t2), dove:
i è un indice che va da 1 a n;
t1 e t2 sono degli interi che vanno da 0 a un numero.

La formula di F al generico passo i è:
F(i,t1,t2) = F(i-1, t1 - elemento, t2) + elemento*coefficiente

dove con elemento ho indicato il valore preso da un array che ho già definito precedentemente nel mio codice. Anche "coefficiente" l'ho già precedentemente definito nel codice. Il processo si dichiara concluso quando i=n.

La mia difficoltà principale sta nel definire la F in funzione dei tre elementi; poi credo che dovrei usare due cicli for per far variare i t1 e t2 e un ciclo while per la i. O sbaglio?

Qualcuno mi potrebbe aiutare?
Grazie mille.

4 Risposte

  • Re: Definizione funzione ricorsiva

    Ciao durden86. Ti serve sapere la teoria per la ricorsione? Qui quando definisci F(...)=… metti F1... anziché F...dovrebbe essere F...=F…+costante... quindi nn richiami se stessa e quindi nn é ricorsione. Dentro F dovrai mettere dei controlli per il passo base e per gli altri passi (alcuni if) scusa sta finendo la batt del cell mi sto sbrigando. Usa google cerca di capire il passo base della ricorsione e poi verrà da se esplicitare gli altri. Bye G

    Inviato dal mio LG-E440 utilizzando Tapatalk
  • Re: Definizione funzione ricorsiva

    Gincum ha scritto:


    Ciao durden86. Ti serve sapere la teoria per la ricorsione? Qui quando definisci F(...)=… metti F1... anziché F...dovrebbe essere F...=F…+costante... quindi nn richiami se stessa e quindi nn é ricorsione. Dentro F dovrai mettere dei controlli per il passo base e per gli altri passi (alcuni if) scusa sta finendo la batt del cell mi sto sbrigando. Usa google cerca di capire il passo base della ricorsione e poi verrà da se esplicitare gli altri. Bye G

    Inviato dal mio LG-E440 utilizzando Tapatalk

    Si scusami, hai ragione per quanto riguarda la definizione di F. Ora ho corretto. Grazie
  • Re: Definizione funzione ricorsiva

    Devi affrontare due step:
    - scrivere la funzione F()
    - richiamare la funzione F() facendo variare t1 e t2.
    Ti anticipo che per il secondo step, secondo me, ti basterà fare due cicli for, così come già prevedevi; pertanto ti suggerirei di concentrarti sulla scrittura della funzione F().
    Prova a buttare giù un flowchart di come dovrebbe lavorare, oppure scrivi su carta l'elenco di passi che deve seguire; considera che, come ti suggeriva Gincum, solitamente vi è un passo base che in pratica ferma la ricorsione.
    Ad esempio potresti scrivere qualcosa del genere:
    F(i,t1,t2)
    - se i == 1 allora risultato = elemento*coefficiente (questo è il passo base, non so se sia corretto)
    - altrimenti risultato = F(i-1, t1 - elemento, t2) + elemento*coefficiente
    - esci ritornando risultato
  • Re: Definizione funzione ricorsiva

    Ragazzi, grazie a entrambi.
    Ci provo.
Devi accedere o registrarti per scrivere nel forum
4 risposte