Hallo,
bräuchte eure Hilfe bei einer Programmieraufgabe. Es geht darum Rechenoperationen(+,-,*,x) mit zwei- bzw. dreidimensionalen Vektoren durchzuführen - je nach Wahl des Users.
ich habe das wie folgt gecoded:
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("Bitte geben sie einen zwei- oder dreidimensionalen Vektor ein: ");
String eingabe1 = sc.nextLine();
eingabe1 = eingabe1.trim();
String vektor1 [] = eingabe1.split (" ");
int zahl1 = Integer.parseInt(vektor1[0]);
int zahl2 = Integer.parseInt(vektor1[1]);
if (vektor1.length==3) {int zahl5 = Integer.parseInt(vektor1[2]);}
/* falls Vektor 3 Dimensionen besitzt, soll die z-Koordinate ebenfalls
geparsed werden*/
System.out.println("Bitte geben sie einen zweiten zwei- oder dreidimensionalen Vektor ein: ");
String eingabe2 = sc.nextLine();
eingabe2 = eingabe2.trim();
String vektor2 [] = eingabe2.split (" ");
int zahl3 = Integer.parseInt(vektor2[0]);
int zahl4 = Integer.parseInt(vektor2[1]);
if (vektor2.length==3) {int zahl6 = Integer.parseInt(vektor2[2]);}
/* falls Vektor 3 Dimensionen besitzt,soll die z-Koordinate ebenfalls
geparsed werden*/
System.out.println("Bitte wählen sie eine Rechenart aus: " +
" (1)Addition" +
" (2)Subtraktion" +
" (3)Skalarprodukt" +
" (4)Kreuzprdoukt;" );
int eingabe5 = sc.nextInt();
switch (eingabe5) {
case 1: if (vektor1.length ==3 && vektor2.length == vektor1.length) System.out.println("Das Ergebnis ist " + (zahl1+zahl3) + " " + (zahl2 + zahl4) + " " + (zahl5+zahl6) + ".");
else System.out.println("Das Ergebnis ist " + (zahl1+zahl3) + " " + (zahl2 + zahl4) + ".");break;
case 2: if (vektor1.length ==3 && vektor2.length == vektor1.length) System.out.println("Das Ergebnis ist " + (zahl1-zahl3) + " " + (zahl2 - zahl4) + " " + (zahl5-zahl6) + ".");
else System.out.println("Das Ergebnis ist " + (zahl1-zahl3) + " " + (zahl2 - zahl4) + ".");break;
case 3: if (vektor1.length ==3 && vektor2.length == vektor1.length) System.out.println("Das Ergebnis ist " + (zahl1*zahl3+zahl2*zahl4+zahl5*zahl6) + ".");
else System.out.println("Das Ergebnis ist " + (zahl1*zahl3+zahl2*zahl4) + ".");break;
case 4: if (vektor1.length ==3 && vektor2.length == vektor1.length) System.out.println("Das Ergebnis ist " + (zahl2*zahl6-zahl5*zahl4) + " " + (zahl5*zahl3-zahl1*zahl6) + " " + (zahl1*zahl4-zahl2*zahl3) + ".");
else System.out.println("Das Kreuzprodukt ist nur im dreidimensionalen Raum generierbar.");
}
}
}
Beim Ausführen des Programms erzeugt der Compiler im dreidimensionalen Fall einen Laufzeitfehler, weil er die Zahl 5 bzw. Zahl 6 nicht erkennt. Kann mir vielleicht wer auf die Sprünge helfen, wo da der Hund begraben liegt und wie ich dieses Problem lösen kann??
Vielen Dank schon mal im Voraus,
cheers
alex