C14 #5 I cicli FOR e WHILE Piero Scotto - C14 1 Finalità del corso Finalità del corso Finalità del corso Finalità del corso http://www.edmodo.com/home#/join/083f801ea2b9378ae50bd9457ae4ac95 Finalità del corso Password: x77vto Edmodo, gruppo C14 Piero Scotto - C14 2 Esercizio 6. Scrivere un programma per calcolare la media delle temperature registrate in un certo periodo. Non sappiamo a priori quanti sono i valori. Vediamo 2 situazioni differenti: nella prima il numero di temperature è noto, ma sempre diverso; nella seconda situazione il numero non è noto e l’utente inserisce i valori dal primo all’ultimo. Piero Scotto - C14 3 Ma quante variabili devo definire? Diciamo n variabili. Non è possibile scrivere un programma con un numero variabile di variabili! Nella prima situazione abbiamo detto che il numero di valori è noto all’utente. Chiediamo questo numero n e poi richiediamo n valori. Calcoliamo la somma dei valori, man mano che vengono letti e alla fine dividiamo per n. Media = somma di n valori/n Se ad es. i valori sono 35, avremo: Media = Somma dei 35 valori/35 Piero Scotto - C14 4 #include <stdio.h> int main(void) { float T, Tcumulativo=0.0, Tmedia; short NT, i; printf("Quante temperature vuoi inserire? "); scanf("%d",&NT); printf(" Inserire le %d temperature separate da spazio ",NT); for (i=1;i<=NT;i++) { scanf("%f",&T); Tcumulativo=Tcumulativo+T;} Tmedia = Tcumulativo/NT; printf("La media delle temperature inserite e' %.2f ",Tmedia); printf(" Inserire 0 per chiudere "); scanf("%d",&i); return 0; } Piero Scotto - C14 5 Piero Scotto - C14 6 Esercizio 6. Scrivere un programma per calcolare la media delle temperature registrate in un certo periodo. Non sappiamo a priori quanti sono i valori. Vediamo la seconda situazione: il numero non è noto e l’utente inserisce i valori dal primo all’ultimo. Piero Scotto - C14 7 #include <stdio.h> int main(void) { float T, Tcumulativo=0.0, Tmedia; int i, NT=0; printf(" Inserire le temperature separate da spazio. 1000 per finire. "); while (T<500.0) { scanf("%f",&T); if (T<500.0) {Tcumulativo=Tcumulativo+T;NT=NT+1;} } Tmedia = Tcumulativo/NT; printf("La media delle %d temperature inserite e' %.2f ",NT,Tmedia); printf(" Inserire 0 per chiudere "); scanf("%d",&i); return 0; } Piero Scotto - C14 8 Piero Scotto - C14 9 Piero Scotto - C14 10 Piero Scotto - C14 11 Il Ciclo “infinito” Piero Scotto - C14 12 Esercizio 7. Aggiungere al programma per calcolare la media delle temperature registrate in un certo periodo, l’indicazione della temperatura più alta e più bassa. Non sappiamo a priori quanti sono i valori. Usiamo la seconda soluzione (quella con while). Abbiamo bisogno di altre due variabili per Tmax e Tmin. Piero Scotto - C14 13 #include <stdio.h> int main(void) { float T, Tcumulativo=0.0, Tmedia, Tmin, Tmax; int i, NT=0; printf(" Inserire le temperature separate da spazio. 1000 per finire. "); while (T<500.0) { scanf("%f",&T); if (NT==0) {Tmin=Tmax=T;} if (T<500.0) {Tcumulativo=Tcumulativo+T;NT=NT+1; if (T>Tmax) Tmax=T; if (T<Tmin) Tmin=T; } } Tmedia = Tcumulativo/NT; printf("La media delle %d temperature inserite e' %.2f Tmax= %.2f Tmin=%.2f ",NT,Tmedia,Tmax,Tmin); printf(" Inserire 0 per chiudere "); scanf("%d",&i); return 0; } Piero Scotto - C14 14