Page under construction!!

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.

  1. Il programma rainfall.go attraverso quale canale riceve i dati da elaborare?

  2. Di che tipo sono i dati ricevuti in input dal programma?

  3. È necessario memorizzare l’intera sequenza di dati ricevuti in input dal programma? Giustificate la risposta.

  4. Cosa deve avvenire affinché il ciclo for termini?

  5. I dati ricevuti da input sono pronti da elaborare o è necessario manipolarli prima in qualche modo (calcolarne/derivarne/estrarne altri dati)?

  6. 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?

  7. 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.