/** 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;
}
}