T
tds76f98s7fds78
Gast
In Zeile 126 bekomm ich eine NullPointerExceptoin geliefert.
In der Konsole wird nach der Exception allerdings der korrekte Wert an der Stelle 0 im Array ausgegeben.
Woran liegt das?
P.S: Ein- und Ausgabe MÜSSEN in einer extra klasse stehen
In der Konsole wird nach der Exception allerdings der korrekte Wert an der Stelle 0 im Array ausgegeben.
Woran liegt das?
P.S: Ein- und Ausgabe MÜSSEN in einer extra klasse stehen
Java:
package paket;
class Benutzerschnittstelle {
public static double[] eingabeVariablen;
public static void Ausgabe (double[] eingabeVariablen) {
for (int i=0; i<10; i++) {
System.out.println(Benutzerschnittstelle.eingabeVariablen[i]);
}
}
public static void Ausgabe_groß_klein (double[] eingabeVariablen) {
for (int i=10; i>0; i--) {
System.out.println(Benutzerschnittstelle.eingabeVariablen[i]);
}
}
public static double[] Eingabe () {
double[] eingabeVariablen = new double [10];
for (int i=0; i<10; i++) {
String eingabeWert = javax.swing.JOptionPane.showInputDialog("Bitte geben Sie Wert " + i + " ein");
eingabeVariablen[i] = Double.parseDouble(eingabeWert);
}
System.out.println(eingabeVariablen[0]);
return Benutzerschnittstelle.eingabeVariablen;
}
}
public class Messdatenerfassung {
public static double[] Sortierverfahren (double[] eingabeVariablen) {
double dreieck = 0;
for (int i=0; i<9; i++) {
if (eingabeVariablen[i] > eingabeVariablen[i+1]) {
eingabeVariablen[i+1] = dreieck;
eingabeVariablen[i+1] = eingabeVariablen[i];
eingabeVariablen[i] = dreieck;
}
}
return eingabeVariablen;
}
public static double Arithmetisches_Mittel (double[] eingabeVariablen) {
double arithmetischesMittel = 0;
for (int i=0; i<eingabeVariablen.length; i++) {
arithmetischesMittel = arithmetischesMittel + eingabeVariablen[i];
}
arithmetischesMittel = arithmetischesMittel / eingabeVariablen.length;
return arithmetischesMittel;
}
public static double Minimum (double[] eingabeVariablen) {
double minimalwert = Benutzerschnittstelle.eingabeVariablen[0];
for (int i=0; i<Benutzerschnittstelle.eingabeVariablen.length; i++) {
if (Benutzerschnittstelle.eingabeVariablen[i] < minimalwert) {
minimalwert = Benutzerschnittstelle.eingabeVariablen[i];
}
}
return minimalwert;
}
public static double Maximum (double[] eingabeVariablen) {
double maximalwert = eingabeVariablen[0];
for (int i=0; i<eingabeVariablen.length; i++) {
if (eingabeVariablen[i] > maximalwert) {
maximalwert = eingabeVariablen[i];
}
}
return maximalwert;
}
public static double Standardabweichung (double[] eingabeVariablen) {
double summe = 0;
for (int i=0; i<eingabeVariablen.length; i++) {
summe = summe + (eingabeVariablen[i]-Arithmetisches_Mittel(eingabeVariablen))*(eingabeVariablen[i]-Arithmetisches_Mittel(eingabeVariablen));
}
double standardabweichung = Math.sqrt(((1.0/9)*summe));
return standardabweichung;
}
public static double Median (double[] eingabeVariablen) {
Sortierverfahren(eingabeVariablen);
double Median = (eingabeVariablen[5] + eingabeVariablen[6])/2;
return Median;
}
public static double[] Messwerte_aendern (double[] eingabeVariablen) {
String Messwert = javax.swing.JOptionPane.showInputDialog("Welchen Messwert möchten Sie ändern?");
int Messwert_int = Integer.parseInt(Messwert);
String Wert = javax.swing.JOptionPane.showInputDialog("Bitte geben Sie den Wert für Wesswert " + Messwert + " ein");
double Wert_double = Double.parseDouble(Wert);
eingabeVariablen[Messwert_int] = Wert_double;
return eingabeVariablen;
}
public static void Messwerte_aufsteigend_sortieren (double[] eingabeVariablen) {
Sortierverfahren(eingabeVariablen);
Benutzerschnittstelle.Ausgabe(eingabeVariablen);
}
public static void Messwerte_absteigend_sortieren (double[] eingabeVariablen) {
Sortierverfahren(eingabeVariablen);
Benutzerschnittstelle.Ausgabe_groß_klein(eingabeVariablen);
}
public static void main(String[] args) {
String rechenfunktion_string = javax.swing.JOptionPane.showInputDialog("Bitte wählen Sie eine der folgenden Rechenoperationen aus:\n- 1 - Arithmetisches Mittel\n- 2 - Minimum\n- 3 - Maximum\n- 4 - Standardabweichung\n- 5 - Median\n- 6 - Messwerte aufsteigend sortiert ausgeben\n- 7 - Messwerte absteigend sortiert ausgeben\n- 8 - Messwerte ändern\n- 9 - Prgramm neu starten\n- 0 - Programm beenden");
int rechenfunktion_int = Integer.parseInt(rechenfunktion_string);
System.out.print("Sie haben folgende Rechenfunktion gewählt: ");
switch (rechenfunktion_int) {
case 1: System.out.println("arithmetischer Mittelwert\n");
Benutzerschnittstelle.Eingabe();
System.out.println("arithmetischer Mittelwert: " + Arithmetisches_Mittel(Benutzerschnittstelle.eingabeVariablen));
break;
case 2: System.out.println("Minimum\n");
Benutzerschnittstelle.Eingabe();
System.out.println(Benutzerschnittstelle.eingabeVariablen[0]);
System.out.println("Minimum: " + Minimum(Benutzerschnittstelle.eingabeVariablen));
break;
case 3: System.out.println("Maximum\n");
Benutzerschnittstelle.Eingabe();
System.out.println("Maximum: " + Maximum(Benutzerschnittstelle.eingabeVariablen));
break;
case 4: System.out.println("Standardabweichung\n");
Benutzerschnittstelle.Eingabe();
System.out.println("Standardabweichung: " + Standardabweichung(Benutzerschnittstelle.eingabeVariablen));
break;
case 5: System.out.println("Median\n");
Benutzerschnittstelle.Eingabe();
System.out.println("Median: ");
for (int i=0; i<10; i++) {
System.out.println(Sortierverfahren(Benutzerschnittstelle.eingabeVariablen)[i]);
}
break;
case 6: System.out.println("Messwerte aufsteigend sortieren\n");
Benutzerschnittstelle.Eingabe();
Messwerte_aufsteigend_sortieren(Benutzerschnittstelle.eingabeVariablen);
break;
case 7: System.out.println("Messwerte absteigend sortieren\n");
Benutzerschnittstelle.Eingabe();
break;
case 8: System.out.println("Messwerte ändern\n");
break;
case 9: System.out.println("Programm neustarten");
break;
case 0: System.out.println("Programm beenden");
System.exit(0);
default: System.out.println("Ungültigen Befehl eingegeben!");
System.out.println("Programm wird beendet!");
System.exit(0);
}
}
}