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
Scarica

Presentazione ppt