Page under construction!!

Exercise: Electricity

Vogliamo leggere una sequenza di N interi (almeno 3), che descrivono il consumo di elettricità in N giorni, e stampare i giorni in cui il consumo è stato inferiore rispetto sia al giorno prima che al giorno dopo. I giorni sono numerati a partire da 1.

Siccome si deve confrontare il consumo di ogni giorno con quello del giorno successivo è utile usare il piano per l’elaborazione su valori adiacenti. Lo stesso confronto deve avvenire anche tra un giorno e il precedente, per cui lo stesso piano andrà applicato due volte.

I due piani possono essere fusi e realizzati con un solo ciclo, come nella funzione main seguente. Servono due coppie di variabili con ruolo di prev-curr; poiché le due coppie di variabili non sono indipendenti tra loro, ma si sovrappongono, il programma usa tre variabili oggi, ieri e dueGiorniFA.

La funzione main contiene un errore. Correggete il programma andando a rivedere, se necessario, quali sono le componenti del piano per l’elaborazione su valori adiacenti; quindi compilate il programma e testatelo.

package main

import (
    "fmt"
)

func main() {
    const N = 10
    var dueGiorniFa, ieri, oggi int

    fmt.Scan(&ieri)
    fmt.Scan(&oggi)

    for i := 3; i <= N; i++ {
        ieri = oggi
        fmt.Scan(&oggi)
        fmt.Println("oggi: ", oggi, "ieri: ", ieri, "dueGiorniFa: ", dueGiorniFa)
        if ieri < dueGiorniFa && ieri < oggi {
            fmt.Println("il consumo nel giorno", i, "e` stato inferiore",
             "rispetto sia al giorno prima che al giorno dopo")
        }
    }
}