/** Un oggetto di classe Osservazioni può rappresentare un insieme di valori, permettendo * di aggiungere un valore double all'insieme, ottenere il numero di valori aggiunti dal momento * della creazione dell'oggetto, ottenere il massimo, il minimo e la media dei valori aggiunti. * Nel caso venga invocato uno dei metodi che restituiscono media, massimo o minimo prima dell'inserimento di almeno un valore, * i metodi restituiscono NaN, che è una costante della classe Double che indica un valore * privo di significato. */ public class Osservazioni { // le variabili membro seguenti dovrebbero avere tutte accesso private int numValori; double sommaValori; double max; double min; /** Questo costruttore crea un nuovo oggetto, al quale non è stato ancora aggiunto * alcun valore */ public Osservazioni() { numValori=0; sommaValori=0; min=Double.MAX_VALUE; max=-Double.MAX_VALUE; } /** Aggiunge un double all'oggetto. * * @param val il valore da aggiungere */ public void aggiungi(double val) { numValori++; sommaValori += val; if(numValori == 1) { max=val; min=val; } else { if(val>max) max=val; if(valNaN (Not a Number). */ public double getMedia() { if(numValori > 0) return sommaValori/numValori; else return Double.NaN; } /** Permette di conoscere il minimo dei valori aggiunti a partire dalla creazione dell'oggetto. * * @return il minimo dei valori aggiunti a partire dalla creazione dell'oggetto. Se invocato su un oggetto * al quale non è stato ancora aggiunto alcun valore restituisce NaN (Not a Number). */ public double getMin() { if(numValori > 0) return min; else return Double.NaN; } /** Permette di conoscere il massimo dei valori aggiunti a partire dalla creazione dell'oggetto. * * @return il massimo dei valori aggiunti a partire dalla creazione dell'oggetto. Se invocato su un oggetto * al quale non è stato ancora aggiunto alcun valore restituisce NaN (Not a Number). */ public double getMax() { if(numValori > 0) return max; else return Double.NaN; } }