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 una piccola imprecisione nel ciclo principale, non controlla l'apertura corretta del file
//autore: Ferramola Camilla, 118534, dis06
// 18 giugno 2003 - esame di fondamenti di informatica,corso di
// laurea in Ingegneria delle Telecomunicazioni
#include <iostream.h>
#include <fstream.h>
int main() {
int dist;
int dist1;
int h;
int h1;
int discesa=0;
int salita=0;
int deltaD=0;
int deltah=0;
float pends1=0;
float pends;
float pendd1=0;
float pendd;
int inizs, fines, inihs, finehs;
int inizd, fined, inihd, finehd;
ifstream fin("percorso.txt"); //FIXME controllare sempre il buon esito dell'operazione
fin >> dist1;
fin >> h1;
while( fin ) { //FIXME in questa maniera se nel file ci sono righe vuote il suo programma non funziona
fin >> dist;
fin >> h;
deltaD= dist - dist1;
deltah= h - h1;
if (deltah>0) {
salita+=deltah;
pends=(float)deltah/deltaD;
if (pends>pends1) {
pends1=pends;
inizs=dist1; fines=dist;
inihs=h1; finehs=h;
}
}
if (deltah<0) {
discesa-=deltah;
pendd=(float)(-deltah)/deltaD;
if (pendd>pendd1) {
pendd1=pendd;
inizd=dist1; fined=dist;
inihd=h1; finehd=h;
}
}
dist1=dist;
h1=h;
}
fin.close();
cout << "dislivello in salita: " << salita << " metri\n";
cout << "dislivello in discesa: " << discesa << " metri\n";
cout << "maggior pendenza in salita tra " << inizs << " (" << inihs << ")"
" e " << fines << " (" << finehs << ")" << " metri\n";
cout << "maggior pendenza in discesa tra " << inizd << " (" << inihd << ")"
" e " << fined << " (" << finehd << ")" << " metri\n";
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT