Percorso matrice c++

di il
17 risposte

Percorso matrice c++

Dovrei risolvere questo esercizio:

Si scriva un programma che legga in input una matrice e verifichi se esiste un percorso sulla matrice dalla prima all'ultima riga, formato tutto da elementi pari a 1.
Il percorso deve passare esattamente una volta per ciascuna riga.

Dopo aver fatto l'inserimento della matrice mi son bloccato...non so come andare avanti :/
Dovrei svolgerlo senza usare le funzioni, help me!!

EDIT: cercando su internet ho trovato soluzioni solo con le funzioni..ma essendo che non le ho ancora fatte non le capisco..ad esempio questo codice
int percorso(int mat[N][M], int i, int j) 
{
  int risp;

  if (mat[i][j] == 1) 
  {
     if (i==N-1) 
     {
      risp = 1;
     } 
     else if ((j>0 && percorso(mat, i+1, j-1)) || percorso(mat, i+1, j) || (j<M-1 && percorso(mat, i+1, j+1)))
     {
      risp = 1;
     }
     else
     {
      risp = 0;
     }
  } 
  else 
  {
    risp = 0;
  }
  return(risp);
}
tradotto in un codice normale senza funzione come diventa?

17 Risposte

  • Re: Percorso matrice c++

    Sei sulla prima cella in alto a sinistra

    Finché non sei sull'ultima cella in alto a destra + 1{
    Se la cella sotto a destra contiene '1'{
    Spostati su quella cella
    }
    Se invece la cella sotto in centro contiene '1'{
    Spostati su quella cella
    }
    Stessa cosa per quella in basso a destra
    }Altrimenti{
    Se sei sulla prima riga : spostati a destra
    Altrimenti : spostati sopra
    }

    Se sei sull'ultima riga ritorna VERO

    }

    Ritorna FALSO



    EDIT: ho visto adesso la tua aggiunta, la mia idea non rispetta il codice appena scritto
  • Re: Percorso matrice c++

    La tua è una funzione ricorsiva, tradurla è abbastanza complesso...
  • Re: Percorso matrice c++

    ale99 ha scritto:


    La tua è una funzione ricorsiva, tradurla è abbastanza complesso...
    ah ok...anche trovando altri metodi mi va bene lo stesso..l'importante è che riesca a risolvere sto esercizio senza le funzioni
  • Re: Percorso matrice c++

    Il fatto è che questo tipo di problemi si risolvono con funzioni ricorsive ...
  • Re: Percorso matrice c++

    oregon ha scritto:


    Il fatto è che questo tipo di problemi si risolvono con funzioni ricorsive ...
    Quindi anche la spiegazione di ale99 va messa come una funzione ricorsiva se trasformata in algoritmo?
  • Re: Percorso matrice c++

    No, non serve.

    PS: devi stare attento quando ti trovi sulla prima e ultima colonna...
  • Re: Percorso matrice c++

    ale99 ha scritto:


    No, non serve.

    PS: devi stare attento quando ti trovi sulla prima e ultima colonna...
    ale ti ho mandato un mp
  • Re: Percorso matrice c++

    Non ci continua in privato una discussione di un forum ...
  • Re: Percorso matrice c++

    oregon ha scritto:


    Non ci continua in privato una discussione di un forum ...
    Ah sorry non lo sapevo, excuse me .. siccome riguardava il suo codice pensavo che potevo scrivergli direttamente a lui...
  • Re: Percorso matrice c++

    Intanto ho sbagliato : nello pseudocodice il primo controllo è in basso a sinistra

    Con "ti trovi in alto a sinistra" intendo dire che le coordinate di partenza sono [0,0], non che ci sono due for()

    Poi ti dico il resto
  • Re: Percorso matrice c++

    Leoni ha scritto:


    oregon ha scritto:


    Non ci continua in privato una discussione di un forum ...
    Ah sorry non lo sapevo, excuse me .. siccome riguardava il suo codice pensavo che potevo scrivergli direttamente a lui...
    E allora il forum a cosa serve? Gli altri utenti che leggono se tutti si scrivono in privato?
  • Re: Percorso matrice c++

    oregon ha scritto:


    Leoni ha scritto:


    oregon ha scritto:


    Non ci continua in privato una discussione di un forum ...
    Ah sorry non lo sapevo, excuse me .. siccome riguardava il suo codice pensavo che potevo scrivergli direttamente a lui...
    E allora il forum a cosa serve? Gli altri utenti che leggono se tutti si scrivono in privato?
    Hai ragione
  • Re: Percorso matrice c++

    Ooooooooooooooooooooopppppppppppssssssssssssssssssssssssssssssssssssss...

    Ora che l'ho provato mi sono reso conto di aver scritto una cacchiata colossale ... ovvio che non funziona! Adesso non mi viene in mente niente magari Oregon ti saprà aiutare

    Dinuovo sorry
  • Re: Percorso matrice c++

    ale99 ha scritto:


    ooooooooooooooooooooopppppppppppssssssssssssssssssssssssssssssssssssss...

    Ora che l'ho provato mi sono reso conto di aver scritto una cacchiata colossale ... ovvio che non funziona! Adesso non mi viene in mente niente magari Oregon ti saprà aiutare

    Dinuovo sorry
    ... quindi per forza la funzione ricorsiva mi rimane come unica possibilità....
Devi accedere o registrarti per scrivere nel forum
17 risposte