1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Frage zu Java-Beispiel

  • 0326640
  • 9. November 2009 um 10:47
  • Unerledigt
  • 0326640
    3
    0326640
    Mitglied
    Punkte
    95
    Beiträge
    12
    • 9. November 2009 um 10:47
    • #1

    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

  • spinball
    11
    spinball
    Mitglied
    Reaktionen
    67
    Punkte
    1.192
    Beiträge
    223
    • 9. November 2009 um 12:27
    • #2

    Die Sichtbarkeit von lokalen Variablen ist auf den Block ihrer Definitionszeile beschränkt. Folgender Code schlägt fehl:

    Code
    if (vektor1.length==3) {int zahl5 = Integer.parseInt(vektor1[2]);} System.out.println(zahl5);

    Folgender Code funktioniert:

    Code
    int zahl5; if (vektor1.length==3) {zahl5 = Integer.parseInt(vektor1[2]);} System.out.println(zahl5);
  • 0326640
    3
    0326640
    Mitglied
    Punkte
    95
    Beiträge
    12
    • 9. November 2009 um 13:22
    • #3

    super, hat geklappt!!!!! diese kleinen fehler können einen ganz schön auf die palme bringen...vielen dank jedenfalls!!!!

    cheers,
    alex

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung