Rainfall - IN ITALIAN
Considerate il seguente programma rainfall.go che legge una serie di numeri non negativi da standard input (mm di pioggia caduti giorno per giorno), fino a incontrare il numero 9999, e stampa la media delle precipitazioni.
package main
import "fmt"
const STOP = 9999
func main() {
var dayRain , totRain , count int
fmt.Print("mm of rain: ")
for {
fmt.Scan(&dayRain)
if dayRain == STOP {
break
}
count ++
totRain += dayRain
}
if count == 0 {
fmt.Println("no data entered")
} else {
averageRainfall := float64(totRain) / float64(count)
fmt.Println("average:", averageRainfall)
}
}Analizzate il codice sorgente e rispondete per iscritto alle seguenti domande.
Il programma
rainfall.goattraverso quale canale riceve i dati da elaborare?Di che tipo sono i dati ricevuti in input dal programma?
È necessario memorizzare l’intera sequenza di dati ricevuti in input dal programma? Giustificate la risposta.
Cosa deve avvenire affinché il ciclo for termini?
I dati ricevuti da input sono pronti da elaborare o è necessario manipolarli prima in qualche modo (calcolarne/derivarne/estrarne altri dati)?
Se si vuole un programma che stampi il numero di giorni in cui le precipitazioni sono state sopra la media e quale è stato l’ultimo giorno di pioggia, per quali delle domande qui sopra deve cambiare la risposta e come cambia?
Modificate ora il programma in modo che stampi il numero di giorni in cui le precipitazioni sono state sopra la media e quale è stato l’ultimo giorno di pioggia. Chiamatelo
rainfall_V2.go.
