Correzione prova pratica del 18 giugno 2003
Correzione prova pratica del 18 giugno 2003
Istruzioni:
il commento iniziale rappresenta il giudizio complessivo sul programma. Nei commenti trovate:
- FIXME: segnalazione di un errore, non necessariamente sono tutti segnalati e non necessariamente sono tutti presi in considerazione
per il voto finale
- TODO: segnala l'assenza di parti di codice
- XXX: segnala qualcosa di non chiaro o inutile ai fini del codice, commenti di ordine generale, errori di battitura o suggerimenti
Il codice presentato non è necessariamente identico a quello consegnato in quanto possono essere state effettuate modifiche per
renderlo compilabile e/o per la corretta indentazione.
//XXX sbaglia aggiornamento dei dati in ciclo principale e calcolo pendenza
//Nome: Christian Cognome: Nardi Matricola: 149822
//e-mail: cri30783@libero.it Postazione: stud05 Ambiente di lavoro: Visula c++
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
int main()
{
int a;
ifstream infile("percorso.txt");
if (!infile) {
cout << "Errore: file input non puo' venire aperto.\n";
exit(1);
}
int met, dis;
int penmax=0, penmin=0, metpre=1, dispre=0, dissal=0, disdis=0;
int upone, uptwo, downone, downtwo;
int mupone, muptwo, mdownone, mdowntwo;
int pen;
infile>>metpre>>dispre;
while (infile >>met>>dis) {
float(pen)=float(dis-dispre)/float(met-metpre); //FIXME cast con un lvalue?
// era molto piu' semplice definire pen (e anche penmax e penmin) come float!!!!
if (dispre<dis)
{ if(penmax<pen)
{penmax=pen; //FIXME penmax andava float
mupone=met;
muptwo=metpre;
upone=dis;
uptwo=dispre;}
dissal+=(dis-dispre);
dispre=dis; //FIXME questa istruzione e' ripetuta anche nell'altro blocco, portarla fuori?
}
else
{if(penmin<pen)
{penmin=pen;//FIXME penmin andava float
mdownone=met;
mdowntwo=metpre;
downone=dis;
downtwo=dispre;}
disdis+=(dispre-dis);
dispre=dis;
}
//FIXME metpre non viene piu' aggiornato
}
infile.close();
cout << "Dislivello in salita: " << dissal << endl;
cout << "Dislivello in discesa: " << disdis << endl;
cout << "maggior pendenza in salita tra " <<muptwo <<"("<<uptwo<<")"<<" e "<<mupone <<"("<<upone<<")"<< endl;
cout << "maggior pendenza in discesa tra " <<mdowntwo <<"("<<downtwo<<")"<<" e " <<mdownone <<"("<<downone<<")"<< endl;
cin>>a;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT