Ho usato il codice che non controlla l'input e ora mi sembra che funzioni
Grazie per avermi aiutato VincenzoTheBestcodice:public class DataSet { private double sommaValori; private double sommaQuadrati; private int numValori; private double media; private double deviazioneStandard; public DataSet(){ this.numValori = 0; this.media = 0; this.deviazioneStandard = 0; } public void setAddValue(double valoreDecimale){ numValori++; this.sommaValori = sommaValori + valoreDecimale; this.media = sommaValori/numValori; this.sommaQuadrati = Math.pow(sommaValori, 2) + Math.pow(valoreDecimale, 2); this.deviazioneStandard = Math.sqrt(((sommaQuadrati)-(1/numValori)*(Math.pow(sommaValori, 2)))/ (numValori -1)); } public int getNumValori(){ return numValori; } public double getMedia(){ return media; } public double getDeviazioneStandard(){ return deviazioneStandard; } } import java.util.Scanner; public class DataSetTester { public static void main(String[] args) { Scanner in = new Scanner(System.in); DataSet ds = new DataSet(); String input = null; System.out.println("Digita Q per terminare la sequenza di input."); System.out.print("Valore: "); while( !(input = in.next()).equalsIgnoreCase("Q") ) { // case-sensitive ds.setAddValue( Double.parseDouble(input) ); System.out.print("Valore: "); } System.out.println("Numero di valori inseriti : "+ds.getNumValori()); System.out.println("Media dei valori inseriti : "+ds.getMedia()); System.out.println("Deviazione standard dei valori inseriti : "+ds.getDeviazioneStandard()); } }

Rispondi quotando