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 final perché 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 for si 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();
    }
}