
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
.Print("mm of rain: ")
fmtfor {
.Scan(&dayRain)
fmtif dayRain == STOP {
break
}
++
count += dayRain
totRain }
if count == 0 {
.Println("no data entered")
fmt} else {
:= float64(totRain) / float64(count)
averageRainfall .Println("average:", averageRainfall)
fmt}
}
Analizzate il codice sorgente e rispondete per iscritto alle seguenti domande.
Il programma
rainfall.go
attraverso 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
.