Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    7

    [C] funzione ricorsiva con liste

    salve a tutti
    stavo facendo una lista e poi sommarne gli elementi con una funzione ricorsiva.
    il problema è che non capisco neanche l'algoritmo di come fare la funzione ricorsiva.

    il caso base sarà:
    se la lista è vuota la somma vale zero.

    altrimenti la somma è: ???

    qua non ho idee

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché ricorsiva? Ha più senso un programma che scorra la lista in maniera iterativa.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Hai 2 possibilità:
    codice:
    sum([]) = 0
    sum([H|T]) = H + sum(T)
    codice:
    sum'([], A) = A
    sum'([H|T], A) = sum'(T, H+A)
    
    sum(L) = sum'(L, 0)
    è pseudo-codice:

    [] -> lista vuota
    [H|T] -> H:Head, T:Tail
    A -> Accumulator
    function(parameter_1, parameter_2, ..., parameter_n) -> parameter rappresenta un caso (un po' come lo switch in C o il pattern matching nei linguaggi funzionali)
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    7
    Originariamente inviato da oregon
    Perché ricorsiva? Ha più senso un programma che scorra la lista in maniera iterativa.
    purtroppo l'esercizio prevede l'uso della ricorsione...

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da amse
    purtroppo l'esercizio prevede l'uso della ricorsione...
    Ho pensato dopo che fosse un esercizio ...

    Hai già impostato la lista ? Hai scritto del codice per l'input dei dati ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    7
    Originariamente inviato da oregon
    Ho pensato dopo che fosse un esercizio ...

    Hai già impostato la lista ? Hai scritto del codice per l'input dei dati ?

    il codice per l'inserimento dei numeri numeri nella lista l'ho fatto, anche la somma con un ciclo while, mi mancava proprio l'algoritmo per la ricorsione.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    7
    Originariamente inviato da Scara95

    codice:
    sum([]) = 0
    sum([H|T]) = H + sum(T)
    per poterla fare in questo modo dovrei quindi implementare anche una funzione che elimini il primo elemento della lista?

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    7
    Originariamente inviato da oregon
    Studia questo documento

    http://twiki.di.uniroma1.it/pub/Prog...rog1Luc12b.pdf
    grazie mille! c'è proprio l'esercizio che cercavo, pure col disegno!!

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da amse
    grazie mille! c'è proprio l'esercizio che cercavo, pure col disegno!!
    Ma non ne approfittare senza studiarlo bene ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.