E
Egon
Gast
Hallo Java-Experten, also ich bin es nicht :cry: !!
Ich muss ein Programm schreiben das die Standardabweichung und Mittelwert berechnet. Die Zahlen kommen aus einer Datei, die eingelesen wird. Ich weiß nicht, irgendwie läuft das Programm nicht und ich weiß absolut nicht warum. Bitte um Hilfe
Das ist mein Code
Ich muss ein Programm schreiben das die Standardabweichung und Mittelwert berechnet. Die Zahlen kommen aus einer Datei, die eingelesen wird. Ich weiß nicht, irgendwie läuft das Programm nicht und ich weiß absolut nicht warum. Bitte um Hilfe
Das ist mein Code
Code:
package package7;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.StreamTokenizer;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Statistik {
protected double [] x;
/*
* Der Konstruktor.
* xv das Double-Array
*/
public Statistik(double [] xv)
{
x = new double[xv.length];
for(int i = 0; i < x.length; i++) x[i] = xv[i];
}
/*
* Berechnet den Mittelwert
* return den Mittelwert
*/
public double mittelwert()
{
double mittel = 0.0;
for(int i = 1; i < x.length; i++) mittel += x[i];
mittel /= x.length;
return mittel;
}
/*
* Berechnet die Standardabweichung
* return die Standardabweichung
*/
public double standardabweichung()
{
double standardabweichung = 0.0;
double mean = mittelwert();
for(int i = 1; i < x.length; i++) standardabweichung += (x[i] - mean) * (x[i] - mean);
standardabweichung = Math.sqrt(standardabweichung / (x.length - 1.0));
return standardabweichung;
}
public double[] readFile(String fileName) {
BufferedReader br;
String line;
LinkedList numbers = new LinkedList();
/* Lesen der Datei */
try{
br = new BufferedReader(new FileReader("C:\\Zahlen.txt"));
/* jede Zeile wird als String in eine Liste geschrieben */
while( (line = br.readLine()) != null){
numbers.add(line);
}
br.close();
}
catch( FileNotFoundException fnfe){
System.out.println(fnfe.toString());
}
catch( IOException ioe){
System.out.println(ioe.toString());
}
/* Array mit der Lände der Liste anlegen */
double[] values = new double[numbers.size()];
/* Liste durchlaufen, Strings in Zahlen umwandeln
* und in Array schreiben */
Iterator it = numbers.iterator();
int i = 0;
while(it.hasNext()){
line = (String) it.next();
values[i] = Double.parseDouble(line);
i++;
}
/* Array mit Zahlen zurück geben*/
return values;
}
public static void main(String[] args) {
double [] x = new double[140];
for(int i = 0; i < x.length; i++) x[i] = Math.random();
Statistik statistik = new Statistik(x);
System.out.println("Mittelwert: " + statistik.mittelwert());
System.out.println("Standardabweichung: " + statistik.standardabweichung());
}}