Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    esercizio in c++ sulla ricorsione

    ragazzi nn riesco a capire la ricorsione.

    per esempio ho quest'esercizio.
    Scrivere una funzione ricorsiva che dato un array a di n numeri reali calcola la somma
    a[0]-a[1]+a[2]-a[3]+...a[n-1]
    (sara' ...+a[n-1] se n e' dispari, ...-a[n-1] se n e' pari).

    come posso fare??

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    grazie

  4. #4
    si, questa spiegazione me l'ha fatta anke il prof.
    pero' per esempio come faccio ad applicarla a questo esercizio??
    Scrivere una funzione ricorsiva che dato un array A di n numeri interi ed un numero
    intero x restituisce il numero di elementi di A che sono maggiori di x. Ad esempio se
    A vale (1,6,3,7,8) e x=5 la funzione deve restituire 3, perchè ci sono 3 elementi
    maggiori di 5.

    ????

  5. #5
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    così:
    codice:
    int fun(int v[], int dim, int x)
    {
    	if(dim<0) return 0;
    	if(v[dim-1]>x) return 1 + fun(v, dim-1, x);
    	return fun(v, dim-1, x);
    }
    Non l'ho compilato quindi non assicuro niente che vada, ma credo comunque che basta modificare qualcosa.

    P.S. Non so che scuola tu faccia, ma questi esercizi(inutili) si trovano dalla prima superiore all'esame universitario e si risolvono tutti uguali, quindi se capisci l'approccio alla ricorsione poi diventano tutti uguali.

  6. #6
    il problema e' ke io faccio l'universita'.
    ma la ricorsione nn riesco proprio a capirla.
    ogni volta ke vedo come e' risolto il problema di fibonacci e provo ad applicarlo agli altri esercizi ho sempre problemi

  7. #7
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Bè se posso darti qualche dritta io seguirei questa strada:

    1)Cerca il caso in cui si ferma la ricorsione: nel caso di array e liste in genere quando le hai scorse tutte o si è verivicata una determinata condizione. Il caso in cui si ferma la ricorsione deve essere la prima istruzione di controllo all'interno della funzione.

    2)Cerca di gestire le condizioni in modo tale da richiamare la funzione stessa.

    Sembra banale ma credo che con questi due punti si risolvono una grossa fetta di problemi ricorsivi.

    P.S. Che università fai?Se naturalmente puoi/vuoi dirlo

  8. #8
    studio informatica a perugia.
    quindi prima trovo il caso base
    e poi provo a richiamare la funz stessa

  9. #9
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Sì, io le ho sempre approciate in quel modo, però aspetta anche il parere di qualche esperto perchè sono un tuo collega.

  10. #10
    ok grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.