Rekursion, Feld und Schleife, Ausnahmebehandlung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Rekursion, Feld und Schleife, Ausnahmebehandlung

    Hallo hab ne Aufgabe bekommen, aber weiß nicht wie ich anfangen soll. Hoffe ihr könnt mir ein paar Tipps geben. Hier die Aufgabe:

    Schreiben Sie eine Hauptklasse Drucken als Testtreiber für ihre Methoden druckenRekursiv und
    druckenIterativ. Die main-Methode soll ein Objekt der eigenen Klasse erzeugen und das
    Kommandozeilenargument 0 an die eigene Methode benutzen an Parameter art übergeben. Diese soll zunächst
    eine Dezimalzahl einlesen, und dann Zahlensystembasen bis End-of-File (EoF) einlesen. Für jede
    Zahlensystembasis soll die zuerst eingelesene Zahl in der entsprechenden Darstellung ausgegeben werden. Die
    eigentliche Ausgabe der Zahl soll durch folgende eigene Methode geleistet werden:

    /**Gibt die Zahl zahl im Zahlensystem mit der Basis basis auf die Standardausgabe aus.
    Für die Ziffern mit den Werten 10..35 werden die Großbuchstaben 'A' .. 'Z' genommen.
    Vorbed.: 2 <= basis && basis <= 36
    */

    void druckenRekursiv(final int zahl, final int basis)
    Nach Beendigung soll eine Abschlussmeldung ausgegeben werden.

    6.a) Implementieren Sie die Methode druckenRekursiv rekursiv wie in Skriptlücke [?38] in Kapitel 2.4.3.
    (Ablauf: Wenn die Zahl >= basis ist, rekursiver Aufruf für die Zahl ohne ihre letzte Ziffer. Danach die letzte Ziffer
    der Zahl errechnen und ausgeben.)

    6.b) Implementieren Sie eine Gleiches leistende Methode druckenIterativ iterativ (Ablauf: 1. Alle Ziffern
    durch fortlaufende Division und Restbildung ermitteln und in einem char-Feld fortlaufend ablegen. 2. Den
    gefüllten Feldinhalt in umgekehrter Reihenfolge ausgeben.). Rufen Sie in benutzen je nach
    Kommandozeilenargument rekursiv oder iterativ die entsprechende Methode auf.

    mfg Jack5
  • und das
    Kommandozeilenargument 0 an die eigene Methode benutzen an Parameter art übergeben

    Bitte was?

    Diese soll zunächst
    eine Dezimalzahl einlesen, und dann Zahlensystembasen bis End-of-File (EoF) einlesen.

    Von was einlesen? Von einer Datei? Von der Tastatur?
    Kann sein, dass ich aus Mathe zu lange raus bin, aber was ist denn eine Zahlensystembasis?

    Gennerell kann ich dir nur sagen, dass bei einer rekursiven Lösung eine Methode sich immer wieder selber aufruft. Zum Beispiel:

    Quellcode

    1. // negatives b zur Vereinfachung nicht beachtet
    2. public int summe(int a, int b)
    3. {
    4. if (b == 0) // Terminationsbedingung, die die Rekursion beendet
    5. {
    6. return a;
    7. }
    8. return summe(a++, b--);
    9. }


    Eine iterative Lösung arbeitet dagegen mit Schleifen:

    Quellcode

    1. // negatives b zur Vereinfachung nicht beachtet
    2. public int summe(int a, int b)
    3. {
    4. while (b > 0)
    5. {
    6. a++;
    7. b--;
    8. }
    9. return a;
    10. }
    Alles anzeigen