4AI – Verifica di recupero OOP – 14 maggio - Classe Frazione CALAFATO (*)
Errori sintattici e di scrittura in compilazione
lettura file ifstream in("misure.txt"){ dopo la tonda ci deve essere ; if(in) , correggendo funziona Frazione operator==(Frazione fr) deve essere bool operator==(Frazione fr)
Funzioni membro operator* e inversa sintatticamente corrette ma non seguono le richieste del testo Main: menù in ciclo infinito perché non leggi scelta scelta
Case 1 vett[n].scrivi(); deve essere vett[i].scrivi();
case 2 if (vett[i] == fr) deve essere if (vett[i] == f), in questo caso funziona case 3 e 4 non svolti
FERRARIS
Errori in compilazione mancano graffe, tipo delle funzioni…
Funzione membro inversa sintatticamente corretta ma non segue le richieste del testo
Funzioni membro operator* e operator== errate sintatticamente e logicamente, inoltre non seguono le richieste del testo
Hai dichiarato vettf di tipo string, deve essere di tipo Frazione Inizializzazione del vettore sbagliata
Case 1 sbagliato , cout<<vettf[i]<<endl; deve essere vettf[i].scrivi();
Case 2 sbagliato, f=numer+"/"+denom; non ha senso, errori anche nel ciclo for case 3 e 4 non svolti
GALLI (*)
Errori in compilazione
Frazione operator==(Frazione fr) deve essere bool operator==(Frazione fr)
Funzioni membro operator* e inversa sintatticamente corrette ma non seguono le richieste del testo Dopo il ciclo di lettura dal file devi salvare il valore di i ad esempio in una variabile n1, non puoi nel menù fare i cicli basandoti sulla costante 5
Case 1 e case 2 ok se al posto di 5 usi n1 Case 3 ok
Case 4 ok ma nel file non devi scrivere / tra num e den GANGURA (*)
Errori in compilazione
Funzione membro inversa sintatticamente corretta ma non segue le richieste del testo
Funzioni membro operator* sintatticamente corrette ma non segue le richieste del testo, infatti avendo tipo Frazione deve fare una return e non deve modificare l’oggetto alla quale viene applicata
Frazione operator==(Frazione fr) deve essere bool operator==(Frazione fr) main: non leggi la scelta
case 1 sbagliato, vettf è un vettore pertanto deve essere indicizzato vettf.scrivi(); deve essere vett[i].scrivi();
case 2 ok
case 3 ok se operator* fosse corretta
case 4 sbagliato, apre il file in scrittura nel ciclo LAPIETRA
Ok compilazione ma inizialmente non esegue il menù, dopo aver scritto una cout esegue Funzione membro scrivi non deve avere parametri
Funzioni membro operator* e operator== errate sintatticamente e logicamente, inoltre non seguono le richieste del testo e non devono modificare l’oggetto alla quale vengono applicate
Dopo il ciclo di lettura dal file devi salvare il valore di i ad esempio in una variabile n1, non puoi nel menù fare i cicli basandoti sulla costante N
Manca la close del file
Case 1 il ciclo non può essere ripetuto N volte inoltre non funziona perché scrivi riceve come parametro sempre gli ultimi valori salvati in numeratore e denominatore, ma sarebbe corretto se scrivi fosse stata senza parametri
Case 2 sbagliato, avresti dovuto usare l’operatore ==
Case 3 sbagliato, cin>>f; non si può fare inoltre cout<<vettfrazione<<endl; deve essere vettfrazione.scrivi();
Case 4 non svolto MARQUEZ
Errori in compilazione
Funzioni membro operator== e operator* non implementate
Funzione membro inversa sintatticamente corretta ma non segue le richieste del testo
Il ciclo di lettura del file è sbagliato invece di while (in << num << den) deve essere while (in >> num >> den)
vettf[num] = Vvettf; è sbagliato, num conterrebbe il numeratore, non può essere l’indice nel vettore, devi usare n come indice ed incrementarlo nel while
in.close(); deve essere dentro all’if case 1 ok
case 2 funzionerebbe se operator== fosse implementato case 3 funzionerebbe se operator* fosse implementato
case 4 funzionerebbe se inversa fosse corretta, il file viene creato ma dovrebbe essere dichiarato ofstream
MAZZALI
Ok compilazione
Funzione membro inversa totalmente sbagliata, ha tipo Frazione e restituisci un int, non deve fare la cout , inoltre non non segue le richieste del testo
Funzione membro operator* sbagliata, non deve modificare l’oggetto al quale si applica
Dopo il ciclo di lettura dal file devi salvare il valore di i ad esempio in una variabile n, non puoi nel menù fare i cicli basandoti sulla costante N
Manca il do while per il menù
Case 1 2 e 3 il ciclo non può essere ripetuto N, con n funzionano
Case 4 questi assegnamenti non hanno senso perché f deve contenere già i valori invertiti int num_ = f.getDen(); int den_ = f.getNum();
MEDINA
Ok compilazione ed esecuzione main manca cont=0;
case 4 non funziona non deve esser fx = vettf->Inversa(); ma deve essere fx = vettf[i].Inversa();
non puoi usare la funzione membro scrivi per visualizzare il file nuovo.txt RANZINI (*)
Ok compilazione
Funzione membro inversa sintatticamente corretta ma non segue le richieste del testo
Funzione membro operator* totalmente sbagliata, ha tipo frazione , deve quindi restituire un oggetto frazione, tu fai due return (cosa di per sé impossibile) di tipo int
in.close(); deve essere dentro all’if
Errore nella dichiarazione del vettore, come l’hai dichiarato alloca un solo elemento inizializzato male Frazione *vettf = new Frazione(N); deve essere Frazione *vettf = new Frazione[N];
case 1 ok se il vettore fosse dichiarato correttamente case 2 k=0; non deve essere fuori dal menù ma nel case 2 case 3 sbagliato
case 4 non svolto SAMPIETRO (*)
Ok compilazione
Funzione membro inversa sintatticamente corretta ma non segue le richieste del testo
Funzione membro operator* totalmente sbagliata, deve avere tipo Frazione e quindi fare una return di un oggetto frazione e non deve modificare l’oggetto alla quale è applicata
in.close(); deve essere dentro all’if
Errore nella dichiarazione del vettore, come l’hai dichiarato alloca un solo elemento inizializzato male Frazione *vettf = new Frazione(N); deve essere Frazione *vettf = new Frazione[N];
case 1 ok se il vettore fosse dichiarato correttamente
case 2 cont=0; non deve essere fuori dal menù ma nel case 2 case 3 sbagliato
case 4 for(int j = 0; j < 1; j++) ??? ma anche correggendo 1 con i è sempre sbagliato STECCATO (*)
Errori numerosi e vari in compilazione
Funzione membro inversa ha tipo Frazione invece che frazione ma comunque non segue le richieste del testo
Funzione membro operator* totalmente sbagliata, deve avere il parametro di tipo frazione e non frazione operator*(fraz f), deve fare una return di un oggetto frazione e non deve modificare l’oggetto alla quale è applicata
invece di bool frazione operator==(frazione f) hai riscritto frazione operator*(frazione f)
errore di sintassi nella lettura dal file while(in>> num >> den>>) deve essere while(in>> num >> den) main: non leggi la scelta e quindi termina subito
case 1 sbagliato, vett[n].scrivi(); deve essere vett[i].scrivi();
case 2 e 3 ok
case 4 sbagliato, apre il file in scrittura nel ciclo e comunque non scrive nel file VEGLIA (*)
OK compilazione, esecuzione non provata
Funzione membro inversa sintatticamente corretta ma non segue le richieste del testo
Funzioni membro operator* sintatticamente corrette ma non segue le richieste del testo, infatti avendo tipo Frazione deve fare una return e non deve modificare l’oggetto alla quale viene applicata
main: non leggi la scelta e quindi termina subito
case 1 sbagliato, vett[n].scrivi(); deve essere vett[i].scrivi();
case 2 ok
case 3 ok se operator* fosse corretta
case 4 sbagliato, apre il file in scrittura nel ciclo