Java_2/src/main/java/de/joethei/hs/java2/praktikum/praktikum1/aufgabe.txt

19 lines
1.6 KiB
Plaintext

Entwickeln Sie eine Klasse GrosseZahl, die ganze Zahlen >=0 repräsentiert. Negative Zahlen werden zur Vereinfachung nicht berücksichtigt. Die Klasse ist nicht durch den Wertebereich primitiver Typen begrenzt, sondern speichert ein Feld (int-Array, keine ArrayList!) mit den Dezimalziffern einer Zahl.
Definieren Sie folgende Methoden:
GrosseZahl(String d)
Erzeugt eine Zahl, deren Dezimaldarstellung in d gegeben ist. d besteht ausschließlich aus Dezimalziffern.
GrosseZahl(int i)
Erzeugt eine Zahl mit dem Wert von i.
String toString()
Gibt die Zahl als String zurück.
boolean less(GrosseZahl b)
Liefert true, wenn diese Zahl echt kleiner als b ist.
GrosseZahl add(GrosseZahl b)
Liefert eine neue Zahl mit der Summe dieser Zahl und b. Das this-Objekt wird nicht verändert.
GrosseZahl mult(GrosseZahl b)
Liefert eine neue Zahl mit dem Produkt dieser Zahl und b. Das this-Objekt wird nicht verändert. Hinweis: Sie können dazu die add-Methode nutzen!
GrosseZahl ggT(GrosseZahl b)
Liefert den größten gemeinsamen Teiler (ggt) dieser Zahl und b zurück. Das this-Objekt wird nicht verändert. Die Berechnung muss rekursiv(!) nach dem klassischen euklidischen Algorithmus erfolgen. Nach diesem wird immer die kleinere Zahl von der größeren Zahl abgezogen, bis beide Zahlen gleich groß sind. Dieses Ergebnis ist dann der ggT.
Die Verwendung der Klasse BigInteger aus der Java-Bibliothek ist für diese Aufgabe nicht erlaubt! Sie dürfen und sollten aber eigene Hilfsmethoden (private) hinzufügen, um sich die Lösung der Aufgaben zu erleichtern.