You are not logged in.

  • Login

1

Tuesday, November 11th 2008, 10:39pm

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

2

Thursday, November 13th 2008, 9:13pm

Quoted

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

Bitte was?

Quoted

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:

Java Quellcode

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


Eine iterative Lösung arbeitet dagegen mit Schleifen:

Java Quellcode

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

Similar threads

Social bookmarks