Problema java

di il
3 risposte

Problema java

Alcuni insiemi di parole hanno proprietà interessanti; in particolare, le parole possono essere scritte nelle celle di un quadrato nxn in modo tale che tutte le parole possono essere lette sia orizzontalmente sia verticalmente. Allo stesso tempo, la parola sulla prima riga deve essere presente sulla prima colonna, quella della seconda riga essere anche sulla seconda colonna e così via per ogni parola presente sulla riga i deve essere presente sulla colonna i. Un esempio di un tale insieme è dato da S = {"DATE", "FIND", IDEA", NEXT"}. Questo insieme può essere inserito nella seguente griglia quadrata:
F I N D
I D E A
N E X T
D A T E
Queste griglie sono dette quadrati di parole.
Data una griglia 4 x 4, con una lettera maiuscola dell'alfabeto latino in ciascuna cella, determinare se questa griglia rappresenta un quadrato di parole.
a = new char[4][4];
      for (i=0; i<4; i++) {
         for (j=0; j<4; j++) {
            a[i][j] = Lettore.in.leggiChar();
            Lettore.in.leggiChar();
         }
      }
Creo l'array a che mi rappresenta una matrice quadrata 4 x 4, poi attraverso il Lettore che è un oggetto che mi permette di leggere da input un singolo carattere ricevo l'input, solo che siccome devo alternare carattere alfabetico-spazio, anche lo spazio mi viene riconosciuto come carattere ovviamente e quindi la dimensione dell'array 4 x 4 sarebbe troppo piccola, allora ho pensato di leggere il primo carattere ed assegnarlo all'array, e poi il secondo carattere non assegnarlo a nessuna variabile, in modo tale che viene letto lo spazio, ma la dimensione dell'array rimane giusta. Solo non funziona...

3 Risposte

  • Re: Problema java

    Fab996 ha scritto:


    solo che siccome devo alternare carattere alfabetico-spazio, anche lo spazio mi viene riconosciuto come carattere ovviamente e quindi la dimensione dell'array 4 x 4 sarebbe troppo piccola, allora ho pensato di leggere il primo carattere ed assegnarlo all'array, e poi il secondo carattere non assegnarlo a nessuna variabile, in modo tale che viene letto lo spazio, ma la dimensione dell'array rimane giusta. Solo non funziona...
    Basta una semplice logica del tipo: continuo a chiedere un char fino a quando trovo qualcosa diverso da spazio.
  • Re: Problema java

    andbin ha scritto:


    Fab996 ha scritto:


    solo che siccome devo alternare carattere alfabetico-spazio, anche lo spazio mi viene riconosciuto come carattere ovviamente e quindi la dimensione dell'array 4 x 4 sarebbe troppo piccola, allora ho pensato di leggere il primo carattere ed assegnarlo all'array, e poi il secondo carattere non assegnarlo a nessuna variabile, in modo tale che viene letto lo spazio, ma la dimensione dell'array rimane giusta. Solo non funziona...
    Basta una semplice logica del tipo: continuo a chiedere un char fino a quando trovo qualcosa diverso da spazio.
    Non posso fare che dato che lo spazio bianco viene subito dopo un carattere alfabetico, leggo da input lo spazio però non lo assegno ad alcuna variabile?
  • Re: Problema java

    Fab996 ha scritto:


    Non posso fare che dato che lo spazio bianco viene subito dopo un carattere alfabetico, leggo da input lo spazio però non lo assegno ad alcuna variabile?
    Scusa ma basta:
    do {
        a[i][j] = Lettore.in.leggiChar();
    } while (a[i][j] == ' ');
Devi accedere o registrarti per scrivere nel forum
3 risposte