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 lacune in utilizzo variabili
//AGNESE ROSI 143280
//whippet59@hotmail.com
//dis12
//18/06/03 - esame di Fondamenti di Informatica
//corso di laurea in ing.elettronica
#include <iostream.h>
#include <fstream.h>
float massima(float,float);
int main()
{
ifstream fin("percorso.txt");
if(!fin)//gestione errore apertura file
{cout<<"Impossibile aprire il file\n"<<endl;} //FIXME e quindi magari dovevo uscire dal programma!
int punto;
int quota;
int discesa;
int salita;
int prec_quota;
int prec_pt;
float pendenza0,pendenza1;
float pendenza2,pendenza3;
float max_pend_sal;
float max_pend_disc;
while(fin>>punto)
{
fin>>quota;
prec_pt=punto;
prec_quota=quota;
++punto; //XXX ????
++quota;
if(quota>prec_quota) //XXX lo sara' sempre visto le 4 righe precedenti
{
salita+=quota-prec_quota;
pendenza0=(quota-prec_quota)/(punto-prec_pt+0.0);
int pp_quota=prec_quota;
int pp_pt=prec_pt;
++prec_quota; //XXX sembra quasi che lei stia confondendo indici di array e variabili!
++prec_pt;
pendenza1=(prec_quota-pp_quota)/(prec_pt-pp_pt+0.0);
max_pend_sal=massima(pendenza0,pendenza1);
}
else if(quota<prec_quota)
{
discesa+=prec_quota-quota;
pendenza2=(quota-prec_quota)/(punto-prec_pt+0.0);
int pp_quota=prec_quota;
int pp_pt=prec_pt;
++prec_quota;
++prec_pt;
pendenza3=(prec_quota-pp_quota)/(prec_pt-pp_pt+0.0);
max_pend_disc=massima(pendenza2,pendenza3);
}
}
cout<<"Dislivello in salita = "<<salita<<" metri."<<endl;
cout<<"Dislivello in discesa = "<<discesa<<" metri."<<endl;
cout<<"Massima pendenza rilevata in salita = "<<max_pend_sal<<endl;
cout<<"Massima pendenza rilavata in discesa = "<<max_pend_disc<<endl;
fin.close();
return 0;
}
float massima (float p0,float p1)//funz.che restituisce la massima pendenza
{ //fra le due confrontate
if (p0>p1) return p0;
else return p1;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT