4
43q7sdaf9t8
Gast
Hallo, liebe Community!
Wenn ich Messwerte unsortiert eingebe, diese dann sortieren und ausgeben lasse, sind alle Werte bis auf den letzten = 0.0.
Ich weiß leider nicht woran es liegt.
P.S: Ich möchte keinen fertigen Sortieralgorithmus verwenden, sonernen meinen eigenen.
Hier der Code:
DANKE FÜR EURE HILFE!
Wenn ich Messwerte unsortiert eingebe, diese dann sortieren und ausgeben lasse, sind alle Werte bis auf den letzten = 0.0.
Ich weiß leider nicht woran es liegt.
P.S: Ich möchte keinen fertigen Sortieralgorithmus verwenden, sonernen meinen eigenen.
Hier der Code:
Java:
package paket;
import java.io.*;
public class Projekt {
public static void menue() {
int auswahl;
System.out.println("\n_______________________________________________");
System.out.println("Menü:");
System.out.println("[1] Messwerte eingeben");
System.out.println("[2] Messwert ändern");
System.out.println("[3] Messwerte sortieren");
System.out.println("[4] Rechenfunktionen ausführen");
System.out.println("[5] Ergebnisse ausgeben");
System.out.println("[0] Programm beenden");
System.out.print("Bitte wählen Sie die gewünschte Operation aus: ");
auswahl = eingabe();
switch (auswahl) {
case 1: Benutzerschnittstelle.eingabe();
menue();
break;
case 2: messwertAendern(Benutzerschnittstelle.eingabeVariablen);
menue();
break;
case 3: messwerteSortieren(Benutzerschnittstelle.eingabeVariablen);
menue();
break;
case 4: /*minimum(Benutzerschnittstelle.eingabeVariablen);
maximum(Benutzerschnittstelle.eingabeVariablen);
standardabweichung(Benutzerschnittstelle.eingabeVariablen);
median(Benutzerschnittstelle.eingabeVariablen);*/
break;
case 5: System.out.println("Sie haben folgende Rechenfunktion gewählt: Messwerte:\n");
for (int i=0; i<10; i++) {
System.out.println(sortierverfahrenAufwaerts(Benutzerschnittstelle.eingabeVariablen)[i]);
}
break;
case 0: System.out.println("Sie haben folgende Rechenfunktion gewählt: Programm beenden");
System.exit(0);
default: break;
}
}
public static double[] messwertAendern (double[] eingabeVariablen) {
int Messwert, wertMesswert;
System.out.print("\nGeben Sie den Messwert ein, den Sie ändern möchten: ");
Messwert = eingabe();
System.out.print("\nGeben Sie den neuen Messwert ein: ");
wertMesswert = eingabe();
eingabeVariablen[Messwert] = wertMesswert;
return eingabeVariablen;
}
public static int eingabe () {
String strInput = null;
int rechenfunktion_int = 0;
BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
try {
strInput = input.readLine();
} catch (IOException e) {
e.printStackTrace();
}
rechenfunktion_int = Integer.parseInt(strInput);
return rechenfunktion_int;
}
public static void messwerteSortieren (double[] eingabeVariablen) {
String strInput, auf = "AUF", ab = "AB";
strInput = null;
System.out.println("\n Wie möchten sie Ihre Messwerte sortieren:");
System.out.print("AUFwärts oder ABwärts? ");
BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
try {
strInput = input.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if (strInput.equals(auf)) {
sortierverfahrenAufwaerts(Benutzerschnittstelle.eingabeVariablen);
} else if (strInput.equals(ab)) {
sortierverfahrenAbwaerts(Benutzerschnittstelle.eingabeVariablen);
} else {
System.out.println("Ungültige Eingabe!");
menue();
}
}
public static double[] sortierverfahrenAufwaerts (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[] sortierverfahrenAbwaerts (double[] eingabeVariablen) {
double dreieck = 0;
for (int i=10; 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 void main(String[] args) {
menue();
}
}
DANKE FÜR EURE HILFE!