Esempio Java n.3 – Classe per il calcolo della media e della somma di un array

L’esercizio proposto è una classe in Java per la creazione di un array di N elementi, e dopo aver inserito gli elementi nell’array attraverso dei metodi calcola la somma e la media degli elementi dell’Array. E’ sempre un progetto che gestisce l’input da Console cn la classe Scanner del package util. L’uso di strutture dati in Java avviene allo stesso modo che in altri linguaggi di programmazione. con la differenza che per definire un array monodimensionale è possibile utilizzare la sintassi:
tipo dati[] nome array = new tipo dati[dimensione];
ad esempio:
int[] x= new int[30]; dichiara un array di interi di 30 elementi, altro esempio:
float[] y = new float[50]; dichiara un array di 50 elementi reali in singola precisione.
Nella definizione della classe è possibile anche dichiarare l’array e non definire la dimensione, trattando la struttura dati come dinamica. In un secondo momento è possibile definire la dimensione.
Per chiarire utilizziamo un esempio:
int x[];
int dimensione=30;
x=new int[dimensione];
Un piccolo cenno anche agli array bidimensionali o matrici la dichiarazione di una matrice prevede un numero di righe e un numero di colonne. Posto ad esempio p e q le dimensioni della matrice per definire una matrice in java è possibile utilizzare una sintassi del tipo:
tipo dati[,] nome matrice = new tipo dati[p,q];
Anche qui è possibile utilizzare e spezzare la dichiarazione della matrice dalla sua allocazione. Per accedere ad un singolo elemento della matrice la sintassi generica è nome matrice[riga, colonna].
Il codice della nostra classe Java di nome “ArrayNumeri” è stata creata con l’ambiente di sviluppo Apache Netbeans che è fortemente consigliato. Per poterlo utilizzare devi prima installare JDK e JRE. Il consiglio è di utilizzare sempre le ultime versioni di tali pacchetti a meno che non si abbiamo qualche esigenza specifica tipo un sistema più obsoleto.
Ecco il codice della classe
Link per acquistare un prodotto su Amazon

import java.util.Scanner;
public class ArrayNumeri {
    private int n;
    private int[] vettore;
    private float media;
    private float somma;
    public ArrayNumeri(int x)
    {
        this.n=x;
        this.vettore=new int[n];
        Scanner sc = new Scanner (System.in);
        int k;
        for (k=0;k<n;k++)
        {
            try {
                System.out.println("Inserisci elemento array di posto:"+k+1);
                vettore[k]=sc.nextInt();
            }
            catch (Exception e)
            {
                System.out.println("Errore di inserimento riprova !");
                vettore[k]=sc.nextInt();
            }
                        
        }
    }
    public float CalcolaMedia()
    {
        float x=0;
        int k;
        for (k=0;k<n;k++)
            somma=somma+vettore[k];
        media=somma/n;
        x=media;
        return media;
    }
    public void Stampa()
    {
        System.out.println("La somma e la media dell'array sono:");
        System.out.println("Somma:"+somma);
        System.out.println("Media:"+media);
    }
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int dim=0;
        System.out.println("Avvio Programma");
        try
        {
            System.out.println("Digita la dimensione dell'array;");
            dim= sc.nextInt();
          
                    
        }
        catch (Exception e)
        {
             System.out.println("Errore nell'inserimento della dimensione esco ...");
        }
          ArrayNumeri onum= new ArrayNumeri(dim);
            float m=onum.CalcolaMedia();
            onum.Stampa();
        }
}

La classe prevede un costruttore che inizializza il vettore mediante la lettura della sua dimensione e i relativi elementi. Per la gestione dell’input è utilizzata la classe Scanner e la gestione delle eccezioni.
Poi è stato creato un metodo per il calcolo della media e un metodo per la stampa. Nel metodo main è richiesto l’inserimento da tastiera della variabile dim che è la dimensione dell’array. Un’altra considerazione nel costruttore di classe il ciclo for è esterno al costrutto try e catch in quanto per ogni elemento che viene inserito da tastiera deve essere controllata e gestita l’eccezione.
Se vuoi approfondire le strutture dati in Java ecco un video