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: 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