PDA

View Full Version : Salve mi servirebbe una pseudo soluzione di questo testo in c++


Ube91
12-02-2015, 11:44
La struttura dati è una lista dinamica dove ogni nodo descrive il nome della località(50 caratteri) la data (aaaa-mm-gg) la temperatura minima e la temperatura massime rilevate nel giorno.
Si scriva una funzione che riceva come parametri una lista chiamata temps ( che descrive le temperature misurate in un periodo, di diverse località), un vettore di caratteri chiamato loc che indica la località, un vettore di caratteri chiamato data_max e un vettore di caratteri denominato nomefile che contiene il nome del file percorso incluso. La funzione cerca il giorno con la temperatura massima più elevata per la località indicata da loc, scrive sul file il cui nome è riportato nel parametro nomefile i dati completi della rilevazione corrispondente, riporta nel vettore data_max la data della rilevazione trovata. La funzione restituisce -1 in caso di errore o mancanza di rilevazioni altrimenti 0.

WarDuck
12-02-2015, 11:49
Da regolamento non si danno soluzioni a compiti vari.

Per cui posta la tua soluzione e poi si vedrà...

Ube91
12-02-2015, 13:57
posto la mia soluzione in allegato

WarDuck
12-02-2015, 14:20
Sono dati binari, ti suggerisco di postare il codice che hai realizzato direttamente sul forum tra i tag "code" e "/code" (al posto degli apici metti delle parentesi quadre).

Ube91
12-02-2015, 14:26
typedef struct st_rilevazione{

char localit‡[50]:
char data[11];
double temp_min;
double temp_max;

} RILEVAZIONE;

typedef struct st_nodo{

RILEVAZIONE giorno;
st nodo *next;
} NODO;

int TemperaturaMassima ( char loc[], char data_max[], char nomefile[], NODO *temps){

NODO * t1= temps;
NODO *t2;

ofstream file;

file.open(nomefile::out);
if (fout.fail()){
return -1;
}

int max=0;

while (t1!=NULL){
t2=temps;
while(t2!=NULL){
if (strcmp (t2->giorno.localit‡, loc)==0 && t2->giorno.temp_max>max){
max = t2->giorno.temp_max;
t2=t2->next;
}
if (strcmp(t1->giorno.localit‡, loc)==0 && t1->temp_max >=max){
strcpy(t1->giorno.data, data_max);
file<< t1->giorno.localit‡<<endl;
file<<t1->giorno.data<<endl
file<<t1->giorno.temp_min<<endl;
file<<t1->giorno.temp_max<<endl;
}

else return -1;
t1=t1->next;
}

file.close();
return 0;

}