Array in Java: moltiplicazione elementi per costante
Spiegazione del programma Moltiplica5
Scopo del programma
Questo programma Java chiede all'utente di inserire 10 numeri interi, li moltiplica tutti per 5 e poi mostra i risultati in una tabella formattata.
Analisi del codice
Dichiarazione delle costanti
static final int DIM = 10;
static final int FATTORE = 5;
- DIM: definisce quanti numeri il programma deve gestire (10)
- FATTORE: il numero per cui moltiplicare ogni valore inserito (5)
- Sono dichiarate come
static finalperché sono costanti che non cambiano durante l'esecuzione
Dichiarazione delle variabili principali
Scanner sc = new Scanner(System.in);
int[] numeri = new int[DIM];
int[] moltiplicati = new int[DIM];
- sc: oggetto Scanner per leggere l'input da tastiera
- numeri: array che contiene i 10 numeri inseriti dall'utente
- moltiplicati: array che conterrà i risultati delle moltiplicazioni
Le tre fasi del programma
1. Fase di inserimento
for (int i = 0; i < DIM; i++) {
System.out.print("Inserisci il numero " + (i + 1) + ": ");
numeri[i] = sc.nextInt();
}
- Il ciclo
forsi ripete 10 volte (da 0 a 9) - Per ogni iterazione chiede all'utente di inserire un numero
- I numeri vengono salvati nell'array
numeri
2. Fase di elaborazione
for (int i = 0; i < DIM; i++) {
moltiplicati[i] = numeri[i] * FATTORE;
}
- Altro ciclo che scorre tutti gli elementi dell'array
numeri - Ogni numero viene moltiplicato per 5 (FATTORE)
- I risultati vengono salvati nell'array
moltiplicati
3. Fase di output
System.out.println("----+--------+------");
for (int i = 0; i < DIM; i++) {
System.out.printf("Il numero" + (i + 1) + " moltiplicato per 5 è: ", moltiplicati[i]);
}
⚠️ Errore nel codice
C'è un errore nella parte di output! La riga con printf non è corretta. Dovrebbe essere:
System.out.printf("Il numero %d moltiplicato per 5 è: %d%n", (i + 1), moltiplicati[i]);
oppure più semplicemente:
System.out.println("Il numero " + (i + 1) + " moltiplicato per 5 è: " + moltiplicati[i]);
Esempio di esecuzione
Se l'utente inserisce i numeri: 2, 4, 6, 8, 10, 1, 3, 5, 7, 9
L'output dovrebbe mostrare:
- Il numero 1 moltiplicato per 5 è: 10
- Il numero 2 moltiplicato per 5 è: 20
- Il numero 3 moltiplicato per 5 è: 30
- E così via...
Concetti chiave utilizzati
- Array: per memorizzare sequenze di dati
- Cicli for: per ripetere operazioni
- Costanti: per valori che non cambiano
- Input/Output: per interagire con l'utente
public class Moltiplica5 {
static final int DIM = 10;
static final int FATTORE = 5;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] numeri = new int[DIM];
int[] moltiplicati = new int[DIM];
// Inserimento
for (int i = 0; i < DIM; i++) {
System.out.print("Inserisci il numero " + (i + 1) + ": ");
numeri[i] = sc.nextInt();
}
// Elaborazione: moltiplicazione per 5
for (int i = 0; i < DIM; i++) {
moltiplicati[i] = numeri[i] * FATTORE;
}
// Output
System.out.println("----+--------+------");
for (int i = 0; i < DIM; i++) {
System.out.printf("Il numero" + (i + 1) + " moltiplicato per 5 è: ", moltiplicati[i]);
}
sc.close();
}
}