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