[SOL] Java - Esercizio nr. 60
Programma per il Monitoraggio delle Temperature Settimanali
Questo programma Java serve per registrare le temperature di una settimana e trovare il giorno più caldo e quello più freddo.
Struttura del Programma
Importazione e Dichiarazioni Iniziali
import java.util.Scanner;
public class Temperature {
Il programma inizia importando la classe Scanner che ci permette di leggere input da tastiera, e definisce una classe chiamata Temperature.
Preparazione dei Dati
String[] giorni = {"lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica"};
double[] temperature = new double[giorni.length];
Vengono creati due array:
giorni: contiene i nomi dei giorni della settimana come stringhetemperature: un array di numeri decimali (double) per memorizzare le temperature, con la stessa lunghezza dell'array dei giorni (7 elementi)
Raccolta delle Temperature
for (int i = 0; i < giorni.length; i++) {
System.out.print("Temperatura di " + giorni[i] + ": ");
temperature[i] = in.nextDouble();
}
Questo ciclo for esegue le seguenti operazioni:
- Scorre tutti i giorni della settimana (da 0 a 6)
- Per ogni giorno, chiede all'utente di inserire la temperatura
- Salva la temperatura inserita nell'array
temperaturealla posizione corrispondente
Ricerca del Giorno più Caldo e più Freddo
int max = 0;
int min = 0;
for (int i = 1; i < temperature.length; i++) {
if (temperature[i] > temperature[max]) {
max = i;
}
if (temperature[i] < temperature[min]) {
min = i;
}
}
Questa parte del codice:
- Inizializza le variabili
maxemina 0 (assumendo che il primo giorno sia sia il più caldo che il più freddo) - Scorre l'array delle temperature partendo dal secondo elemento (indice 1)
- Confronta ogni temperatura con quella attualmente considerata massima e minima
- Aggiorna gli indici
maxeminquando trova temperature più alte o più basse
Visualizzazione dei Risultati
System.out.println("Giorno più caldo: " + giorni[max] + " (" + temperature[max] + "°)");
System.out.println("Giorno più freddo: " + giorni[min] + " (" + temperature[min] + "°)");
Infine, il programma stampa:
- Il nome del giorno più caldo e la sua temperatura
- Il nome del giorno più freddo e la sua temperatura
Esempio di Esecuzione
Se l'utente inserisce le temperature:
- Lunedì: 15.5°
- Martedì: 18.2°
- Mercoledì: 12.1°
- Giovedì: 20.3°
- Venerdì: 17.8°
- Sabato: 22.1°
- Domenica: 19.4°
Il programma mostrerà:
Giorno più caldo: sabato (22.1°)
Giorno più freddo: mercoledì (12.1°)
Concetti Chiave
- Array paralleli:
giornietemperaturesono collegati tramite gli indici - Ricerca lineare: il programma esamina tutti gli elementi per trovare massimo e minimo
- Gestione degli indici: si utilizzano gli indici per collegare giorni e temperature corrispondenti
import java.util.Scanner;
public class Temperature {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] giorni = {"lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica"};
double[] temperature = new double[giorni.length];
for (int i = 0; i < giorni.length; i++) {
System.out.print("Temperatura di " + giorni[i] + ": ");
temperature[i] = in.nextDouble();
}
int max = 0;
int min = 0;
for (int i = 1; i < temperature.length; i++) {
if (temperature[i] > temperature[max]) {
max = i;
}
if (temperature[i] < temperature[min]) {
min = i;
}
}
System.out.println("Giorno più caldo: " + giorni[max] + " (" + temperature[max] + "°)");
System.out.println("Giorno più freddo: " + giorni[min] + " (" + temperature[min] + "°)");
in.close();
}
}