Ho cercato un pò sul forum ma non ho trovato niente che faccia al caso mio, vi espongo il mio problema.
Definire una classe DataSet che calcoli la somma e la media di una sequenza di numeri interi con i metodi: void addValue(int x), int getSum(), double getAverage(); Suggerimento: memorizzate la somma e il conteggio dei valori.
Allora io ho fatto così:
/**
*
* Calcola la somma e la media di una sequenza di numeri interi.
*
*/
public class DataSet
{
public DataSet()
{
valori = 0;
somma = 0;
}
/**
* Aggiunge un valore
* @param x valore da aggiungere alla sequenza
*/
public void addValue(int x)
{
numero = x;
valori++;
}
/**
* Calcola la somma dei valori della sequenza
* @return la somma dei valori della sequenza
*/
public int getSum()
{
return somma = somma + numero;
}
/**
* Calcola la media dei valori della sequenza
* @return la media della sequenza
*/
public double getAverage()
{
return somma / valori;
}
private int valori;
private int somma;
private int numero;
}
poi ho fatto il programma di collaudo:
public class DataSetTester
{
public static void main(String[] args)
{
DataSet sequenza = new DataSet();
sequenza.addValue(5);
sequenza.addValue(5);
sequenza.addValue(6);
sequenza.addValue(6);
System.out.println(sequenza.getSum());
System.out.println("Valore previsto: 22");
System.out.println(sequenza.getAverage());
System.out.println("Valore previsto: 5");
}
}
che mi ha dato il seguente risultato: 6
Valore previsto: 22
1.0
Valore previsto: 5
Ovviamente c'è un errore e io credo che sia nel fatto che non memorizza la somma, ma come posso fare per tenerne conto ad ogni addValue? Grazie anticipatamente per le risposte e la pazienza nel leggere il mio problema.