Do you need any help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 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 2021-22 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.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

La ricorsione inversa aggiunge elementi estranei alla sequenza da ricercare

IvanC (940 points)
5 12 19
asked Dec 18, 2019 in HW8 obbligatorio by IvanC (940 points)
edited Dec 18, 2019 by IvanC

Ciao ragazzi, ho un problema con le matrici di numeri: 

Per fare un esempio nel caso del file esempio4 la prima sequenza da ricercare è 517833.... e il programma deve ritornare -1;

Il problema nasce qui,  il mio algoritmo rileva che non c'è la sequenza corretta però nella ricorsione a scalare lui trova un carattere uguale a quello della sequenza e mi aggiunge 'G'  ( che non c'entra assolutamente nulla) , così facendo la len del mio percorso raggiunge la len della sequenza e me la salva come  output da restituire !! ... spero di essermi spiegato... so che sto sbagliando qualcosa, ma non capisco cosa o come  fissare il problema ..qualcuno sa illuminarmi su una probabile soluzione o ragionamento da fare in questi casi.. Grazie

233 views

2 Answers

a
a.pietroluongo (11250 points)
15 38 131
answered Dec 18, 2019 by a.pietroluongo (11,250 points)
edited Dec 18, 2019 by a.pietroluongo
Il problema nasce qui,  il mio algoritmo rileva che non c'è la sequenza corretta

- Cosa ritorna alla funzione precedente? usa rtrace

però nella ricorsione a scalare lui trova un carattere uguale a quello della sequenza e mi aggiunge 'G'

- Come fa a trovare un carattere se la ricorsione è finita?


.
IvanC (940 points)
5 12 19
commented Dec 18, 2019 by IvanC (940 points)
infatti.. per finire completamente e uscire, mediante il debug, ho visto che la funzione ricorsiva và all' indietro !!! E' vero che la ricorsione la sto imparando ora.. ma è un comportamento anomalo ??
a
a.pietroluongo (11250 points)
15 38 131
commented Dec 18, 2019 by a.pietroluongo (11,250 points)
No perché quando la funzione converge al
caso base, alla fine il caso base viene risolto ed il valore viene utilizzato all’indietro fino a quello iniziale.
plm (18850 points)
7 15 118
answered Dec 18, 2019 by plm (18,850 points)

Devi rivederti bene il caso base.

Devi essere sicuro che se il carattere che controlli passo passo è uguale al carattere in posizione [x,y] sulla quale ti trovi in quel momento sulla matrice sia uguale. SE E SOLO SE QUEL CASO E' VERO puoi continuare la ricorsione finchè non ti troverai al caso base

a
a.pietroluongo (11250 points)
15 38 131
commented Dec 18, 2019 by a.pietroluongo (11,250 points)
*con ciao dovrebbe ritornare DGG