Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Problema ricorsione

a
andreaamici (1740 points)
11 12 21
in HW8 obbligatorio by (1.7k points)
Buonasera ragazzi/e ho un problema sulla ricorsione.Provo ad illustrarvelo :ho messo la ricorsione nella ricerca delle lettere,quindi una volta scoperta l posizione della prima lettere inizio con questa funzion e che deve tracciare il 'giro' che fa la parola...esempio pratico (esempio disney) ho la parola PLUTO che so che inizia alla riga 2 colonna 13 inizio attraverso la ricorsione a cercare il percorso segnandomi con dei print ogni giro che ,noto che è tutto corretto mi stampa GGGG ma poi mi returna solo 'G' come mai?ho notato inoltre che è come se tornasse indietro(ho inserito un print subito prima del return per capire che valore è prima di returnare come risultato ottengo:

GGGG

GGG

GG

G

e poi giustamente mi rertuna solo G

Sapete come mai mi torna indietro?
446 views
closed

1 Answer

Best answer
E
Edward (25950 points)
4 4 172
by (26.0k points)
selected by
È difficile dirti come mai 'ti torna indietro' senza leggere il tuo codice.

Probabilmente accade perchè una volta trovata la parola, quando esci dall'ultima chiamata ricorsiva (quella che ha trovato la parola), il percorso che hai trovato non viene correttamente salvato.
Questo probabilmente perchè invece di restituire il percorso trovato dalla chiamata ricorsiva, restituisci il percorso attuale.
a
andreaamici (1740 points)
11 12 21
by (1.7k points)
fa esattamente questo,ma come mai non lo salva in automatico da solo,so che senza vedere il codice è difficile,però se richiamo la funzione ricorsiva esse non dovrebbe sovrascrivere quel dato?
E
Edward (25950 points)
4 4 172
by (26.0k points)
Dipende cosa intendi...
Se tu passi il percorso come parametro, quando vai a modificarlo, essendo una stringa (oggetto immutabile), non vai a modificarla all'esterno della funzione.
Se vuoi fare una cosa del genere puoi usare una lista con un solo elemento, ossia ['STRINGA'], in questo modo le modifiche saranno presenti all'esterno della funzione.
Senza sapere cosa restituisce la tua funzione e come intendi salvare il percorso non mi viene in mente altro.
a
andreaamici (1740 points)
11 12 21
by (1.7k points)
grazie mille per adesso ho 'fixato' in questo modo per proseguire.