Salve a tutti, mi trovo un pò in difficoltà con un progetto Java universitario che devo consegnare a breve,
Devo rappresentare un'ipotetica macchina in grado di cambiare stato in base ai caratteri di una stringa in input con i quali opera confronti:
le regole di cambio di stato sono definite da delle terzine (o triplette) formate da stato corrente, lettera, stato successivo, a tal proposito le ho create
come oggetti con i relativi 3 parametri (int,char,int), le ho inserite in un array di oggetti e ho creato appositi metodi per farmi restituire i valori contenuti
nell'array stesso iterandolo, ora devo scrivere un algoritmo che, a partire dallo stato iniziale = 1, fa transitare la macchina dallo stato corrente a quello successivo confrontando i parametri "lettera" degli oggetti triple nell'array con quelli della stringa in input (che ho inserito in un array "carattere per carattere"
col metodo toCharArray) senza dimenticare dello stato corrente della macchina che viene aggiornato ad ogni confronto, ogni valore degli oggetti triple è stato letto e caricato in memoria (almeno questo con successo) da un file di testo così come la stringa in input, lo stato a cui arriva la macchina alla fine del "confronto" con l'input viene salvato su un file txt di output (anche qui ci siamo peccato non sia il risultato esatto), c'è qualcuno che potrebbe aiutarmi cortesemente? so che sicuramente è una stupidaggine, ma mi sono goffamente incartata su questa questione
questo è il ""codice"" che ho buttato giù:
P.s (in termini di costi computazionali mi è stato detto che la struttura dati utilizzata su cui operare non consente algoritmi ottimali, usare una matrice o una lista concatenata avrebbe abbassato la complessità dei calcoli ma per questione di tempo non mi resta che andare avanti con questa soluzione,colgo anche l'occasione di salutare tutti i membri del forum essendo questo il mio primo post,grazie anticipatamentecodice:public int statoRaggiunto () { for (int j=0; j<stringa.length; j++) { for (int i=0; i<size; i++) /* con size = capienza array di oggetti triple*/ { firstStatus = 1; do { firstStatus = nextStatus; } while(stringa[j] == test[i].getLetter()); } } return firstStatus; })


)
Rispondi quotando