C14 #6 I VETTORI (#define e const) Piero Scotto - C14 1 Finalità del corso Finalità del corso Finalità del corso Finalità del corso Finalità del corso Piero Scotto - C14 2 Esercizio 8. Un sistema automatico di acquisizione della temperatura registra ogni giorno dell’anno la temperatura massima e minima e invia i dati ad un calcolatore. Scrivere un programma che fornisca, mese per mese la massima e la minima e i relativi giorni. Per semplicità si consideri solo il mese di gennaio, si inseriscano le temperature (max e min per ogni giorno) e si visualizzi la massima e la minima e i giorni in cui sono state registrate. Si stampi inoltre tutte le temperature al di sotto dello 0 e i relativi giorni. Piero Scotto - C14 3 Pensare di creare tutte le variabili (365 x 2) è assurdo! Occorre utilizzare una struttura che faciliti la memorizzazione dei dati e la relativa ricerca di minimi e massimi. Immaginiamo di lavorare su un mese (31 x 2 valori), il concetto non cambia. L’utilizzo di vettori permette di memorizzare per ogni “casella” un valore di temperatura Piero Scotto - C14 4 Piero Scotto - C14 5 Piero Scotto - C14 6 Piero Scotto - C14 7 Piero Scotto - C14 8 Piero Scotto - C14 9 Piero Scotto - C14 10 Inoltre se volessi cambiare e al posto di 10 mettere 20 dovrei andare a sostituire il valore in tutti i punti del programma dove compare. Piero Scotto - C14 11 Piero Scotto - C14 12 Piero Scotto - C14 13 Piero Scotto - C14 14 Piero Scotto - C14 15 Piero Scotto - C14 16 Piero Scotto - C14 17 Piero Scotto - C14 18 Piero Scotto - C14 19 Piero Scotto - C14 20 Piero Scotto - C14 21 Piero Scotto - C14 22 Piero Scotto - C14 23 Piero Scotto - C14 24 Versione temperature con l'introduzione dei vettori Scrivere un programma che memorizzi per il mese di gennaio le temperature (max e min per ogni giorno) e che visualizzi la massima e il giorno in cui e' stata registrata. Piero Scotto - C14 25 #include <stdio.h> int main(void) { const int NT=63; /* costante per le temperature mensili */ float T, Tmin, Tmax; int i, day=1; float temperature[NT]; printf(" Inserire le temperature di gennaio Max e min separate da spazio. "); for (i=1;i<NT;i++) { scanf("%f", &T); temperature[i]=T; } Tmax = temperature[1]; for (i=2;i<NT;i++) { if (Tmax < temperature[i]) {Tmax = temperature[i]; day=i/2+i%2;}; } printf("La temperatura massima e' %.2f registrata il %d gennaio",Tmax,day); printf(" Inserire 0 per chiudere "); scanf("%d",&i); return 0; } Piero Scotto - C14 26