Mer 21 Agosto, 09:17:35 - 2019

Autore Topic: Secondo Assignment: il correttore automatico dei risultati :D  (Letto 10810 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Tom89

  • Professore Ordinario
  • **
  • Post: 703
  • FeedBack: +145/-79
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #15 il: Sab 07 Novembre, 13:14:10 - 2009 »
Se hai chiamato anche runtests, si  :asd:
Ti dovrebbe mostrare l'output nella console, anche nel caso che non trovasse il file  :sisi:

Offline Crabro

  • Direttore di Dipartimento
  • ***
  • Post: 1044
  • FeedBack: +118/-61
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #16 il: Sab 07 Novembre, 13:22:53 - 2009 »
L'ho chiamato, ma non mi fa comunque vedere nulla.
E' l'ultima istruzione
Codice: [Seleziona]
public class Prova {
public static void main(String ... args){
char[] c={'a','b'};
ASFND asfnd=new ASFNDSolver(3,c);
asfnd.aggiungiStatoFinale(2);
asfnd.aggiungiTransizioneND(0,'a',0);
asfnd.aggiungiTransizioneND(0,'b',0);
asfnd.aggiungiTransizioneND(0,'b',1);
asfnd.aggiungiTransizioneND(1,'a',2);
asfnd.aggiungiTransizioneND(1,'b',2);
char[] sequenza={'b','b','b','b'};
//System.out.println(asfnd.isFinale(2));
System.out.println(asfnd.accettaSequenza(sequenza)+" :<TRUE");

char[] d={'a','b'};
ASFND a2=new ASFNDSolver(3,d);
a2.aggiungiStatoFinale(2);
a2.aggiungiStatoFinale(0);
a2.aggiungiTransizioneND(0,'a',1);
a2.aggiungiTransizioneND(1,'a',2);
char[] seq={'a','a'};
char[] sequenzaVuota={};

ASFND a3=new ASFNDSolver(0,d);

System.out.println(a2.accettaSequenza(seq)+" :<TRUE");
System.out.println(a2.accettaSequenza(sequenzaVuota)+" :<TRUE - sequenzaVuota");


ASFND rip=asfnd.costruisciAutomaConcatenazione(a2);
char[] se={'b','b','b','b','a','a','a'};
System.out.println(rip.accettaSequenza(se)+" :<TRUE - concatenazione");

ASFND cnc=a2.costruisciAutomaIterazione();
char[] s={'a','a','a','a','a','a','a','a','a','a','a','a'};
System.out.println(cnc.accettaSequenza(s)+" :<TRUE - iterazione");
System.out.println(cnc.accettaSequenza(sequenzaVuota)+" :<TRUE - iterazione stringa vuota");

char[] e={'c','d'};
ASFND a4=new ASFNDSolver(3,e);
a4.aggiungiStatoFinale(2);
a4.aggiungiStatoFinale(0);
a4.aggiungiTransizioneND(0,'c',1);
a4.aggiungiTransizioneND(1,'c',2);

ASFND unione=asfnd.costruisciAutomaUnione(a4);
char[] u={'c','c','c'};
System.out.println(unione.accettaSequenza(u)+" :<FALSE - unione ");
char[] v={'a','b','a'};
System.out.println(unione.accettaSequenza(v)+" :<TRUE - unione ");
char[] z={};
System.out.println(unione.accettaSequenza(z)+" :<FALSE - unione ");

TestSuite suite = new TestSuite( "script.txt" );
suite.runTests();


}
}
« Sono convinto che l'informatica abbia molto in comune con la fisica. Entrambe si occupano di come funziona il mondo a un livello abbastanza fondamentale. La differenza, naturalmente, è che mentre in fisica devi capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confini del computer, sei tu il creatore. Controlli – almeno potenzialmente – tutto ciò che vi succede. Se sei abbastanza bravo, puoi essere un dio. Su piccola scala. »
   
(Linus Torvalds)

Offline Tom89

  • Professore Ordinario
  • **
  • Post: 703
  • FeedBack: +145/-79
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #17 il: Sab 07 Novembre, 13:33:55 - 2009 »
Boh, sicuro che il file esiste nella cartella dove lo va a cercare?

Mapperò almeno quello te lo dovrebbe dire,
Codice: [Seleziona]
               FileReader reader;
try {
reader = new FileReader( filename );
} catch (FileNotFoundException e) {
System.out.println( "*" + filename + ": file non trovato!*");
return;
}

Strano, guarda meglio l'output... magari ti sei perso una riga  :sisi:
« Ultima modifica: Sab 07 Novembre, 13:37:56 - 2009 da Tom89 »

Offline Crabro

  • Direttore di Dipartimento
  • ***
  • Post: 1044
  • FeedBack: +118/-61
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #18 il: Sab 07 Novembre, 13:41:45 - 2009 »
Codice: [Seleziona]
true :<TRUE
true :<TRUE
true :<TRUE - sequenzaVuota
true :<TRUE - concatenazione
true :<TRUE - iterazione
true :<TRUE - iterazione stringa vuota
false :<FALSE - unione
true :<TRUE - unione
true :<FALSE - unione

Process completed.

Questo è l'output...stranamente non fa nulla....
Una domanda: nello script non specifici il numero di stati, ma metti direttamente le transizioni. Come fa il programma, vede da solo qual'è lo stato massimo?
« Sono convinto che l'informatica abbia molto in comune con la fisica. Entrambe si occupano di come funziona il mondo a un livello abbastanza fondamentale. La differenza, naturalmente, è che mentre in fisica devi capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confini del computer, sei tu il creatore. Controlli – almeno potenzialmente – tutto ciò che vi succede. Se sei abbastanza bravo, puoi essere un dio. Su piccola scala. »
   
(Linus Torvalds)

Offline Tom89

  • Professore Ordinario
  • **
  • Post: 703
  • FeedBack: +145/-79
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #19 il: Sab 07 Novembre, 14:06:58 - 2009 »
Si, vedo qual'è lo stato più alto tra finali e transizioni... uno stato mai usato è inutile  :sisi:

Offline Crabro

  • Direttore di Dipartimento
  • ***
  • Post: 1044
  • FeedBack: +118/-61
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #20 il: Sab 07 Novembre, 14:55:54 - 2009 »
Però lo è anche uno mai raggiunto, quindi potresti anche prendere semplicemente il più alto tra le transizioni e ugnorare i finali più alti...

PS:Qualcuno ha già provato ad inviare l'homework? a me da errore(dice che i dati non sono corretti)
« Ultima modifica: Sab 07 Novembre, 15:03:37 - 2009 da Crabro »
« Sono convinto che l'informatica abbia molto in comune con la fisica. Entrambe si occupano di come funziona il mondo a un livello abbastanza fondamentale. La differenza, naturalmente, è che mentre in fisica devi capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confini del computer, sei tu il creatore. Controlli – almeno potenzialmente – tutto ciò che vi succede. Se sei abbastanza bravo, puoi essere un dio. Su piccola scala. »
   
(Linus Torvalds)

Offline alex.sera

  • Studente di Dottorato
  • ***
  • Post: 120
  • FeedBack: +6/-2
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #21 il: Sab 07 Novembre, 18:36:15 - 2009 »
ragazzi un informazione ma in media quanto vi e venuto lungo il programma

io ho finito il prog senza la parte dell'iterazione unione concatenazione e gia e lunghissimo

una domanda vi volevo fare

ma i dizionari in java esistono gia fatti

i due test iniziali che sono stati postati mi funzionano ovviamente senza contare l'iterazione unione e concatenazione

Offline Jok_T-RooNz

  • Ricercatore
  • ****
  • Post: 288
  • FeedBack: +5/-28
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #22 il: Sab 07 Novembre, 19:10:51 - 2009 »
Ragazzi ho fatto il test m a mi lancia questo errore?
Codice: [Seleziona]
[test case Base]
Exception in thread "main" java.lang.RuntimeException: ATTENZIONE!!! La sottoclasse deve avere un solo costruttore che prende int numeroStati e char[] alfabeto
at ASFND.<init>(ASFND.java:25)
at ASFNDSolver.<init>(ASFNDSolver.java:13)
at TestSuite.automa(TestSuite.java:368)
at TestSuite.testcase(TestSuite.java:192)
at TestSuite.runTests(TestSuite.java:146)
at Main.main(Main.java:6)
Ora..no riesco a capire perchè... cioè il costruttore deve restare identico o basta che di input prende gli stessi paramentri?
Queste sono le mie varibili globali e il mio costruttore
Codice: [Seleziona]
private Dictionary<Character,Integer>[]transizioni;
private boolean[]statiFinali;
private int statoCorrente;

protected ASFNDSolver(int numeroStati, char[] alfabeto) {
super(numeroStati, alfabeto);
transizioni=new Dictionary[numeroStati];
for(int i=0; i<numeroStati; i++){
this.transizioni[i]=new Hashtable<Character,Integer>();
}
this.statiFinali=new boolean[this.numeroStati];
statoCorrente=0;
        }
     
« Ultima modifica: Sab 07 Novembre, 19:12:53 - 2009 da Jok_T-RooNz »

Offline dream

  • Ricercatore
  • ****
  • Post: 428
  • FeedBack: +22/-6
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #23 il: Sab 07 Novembre, 19:18:29 - 2009 »
Prova a mettere il costruttore public
...L'amore altro non è, che un pesce rosso che hai vinto al Luna Park...Non puoi pretendere che ti duri in eterno...

<E così ricopro la mia nuda perfidia con antiche espressioni a me estranee rubate ai sacri testi e sembro un santo quando faccio la parte del diavolo>


                            Now you can call me Big Boss

Offline Jok_T-RooNz

  • Ricercatore
  • ****
  • Post: 288
  • FeedBack: +5/-28
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #24 il: Sab 07 Novembre, 19:27:08 - 2009 »
ragazzi un informazione ma in media quanto vi e venuto lungo il programma

io ho finito il prog senza la parte dell'iterazione unione concatenazione e gia e lunghissimo

una domanda vi volevo fare

ma i dizionari in java esistono gia fatti

i due test iniziali che sono stati postati mi funzionano ovviamente senza contare l'iterazione unione e concatenazione

Si la classe dizionario è Dictionary
No per ora anche io non ho fatto iterazione,unione e concatenazione..e mi sembra abbastanza corto
Prova a mettere il costruttore public
Sono un cretino! :D Grazie dream

Offline dream

  • Ricercatore
  • ****
  • Post: 428
  • FeedBack: +22/-6
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #25 il: Sab 07 Novembre, 19:55:56 - 2009 »
Nada  ;D
...L'amore altro non è, che un pesce rosso che hai vinto al Luna Park...Non puoi pretendere che ti duri in eterno...

<E così ricopro la mia nuda perfidia con antiche espressioni a me estranee rubate ai sacri testi e sembro un santo quando faccio la parte del diavolo>


                            Now you can call me Big Boss

Agilulfo

  • Visitatore
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #26 il: Sab 07 Novembre, 20:13:48 - 2009 »

Codice: [Seleziona]
this.transizioni[i]=new Hashtable<Character,Integer>();
     

ho notato che usi Hashtable (come implementazione di un Dictionary) e, dopo aver fatto alcune prove, mi sembra che il suo put(k,v) sia come quello di Map: ovvero sostituisce il vecchio valore se la chiave è già presente

giusto per avvertirti se ti verrà qualche errore  :)

Offline Crabro

  • Direttore di Dipartimento
  • ***
  • Post: 1044
  • FeedBack: +118/-61
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #27 il: Sab 07 Novembre, 20:18:45 - 2009 »
senza iterazione/concatenazione/unione una sessantina di righe, e in totale un 160...
« Sono convinto che l'informatica abbia molto in comune con la fisica. Entrambe si occupano di come funziona il mondo a un livello abbastanza fondamentale. La differenza, naturalmente, è che mentre in fisica devi capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confini del computer, sei tu il creatore. Controlli – almeno potenzialmente – tutto ciò che vi succede. Se sei abbastanza bravo, puoi essere un dio. Su piccola scala. »
   
(Linus Torvalds)

Agilulfo

  • Visitatore
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #28 il: Sab 07 Novembre, 20:22:55 - 2009 »
44 di base
134 in totale (e sono pure andato abbastanza a capo stavolta :P )
4,84 KB

Offline Tom89

  • Professore Ordinario
  • **
  • Post: 703
  • FeedBack: +145/-79
    • Mostra profilo
Re: Secondo Assignment: il correttore automatico dei risultati :D
« Risposta #29 il: Sab 07 Novembre, 20:25:08 - 2009 »
235  :asd:

E mi falliscono i test di agilulfo  :asd:

PS: sicuro che siano giusti?