Implementieren Sie die Klassen Ratio. Sie soll rationale Zahlen repräsentieren. Nierzu habe sie Felder mit den Namen zaehler und nenner jeweils vom Typ long.
- Versehen Sie die Klassen mit einem adäquaten Konstruktor, so dass Sie zum Beispiel mit new Ratio(2,5) ein Objekt, das den Bruch $\frac{2}{5}$ repräsentiert, erzeugen können.
- Schreiben Sie eine Methode toString, die Ratio-Objekt für das Satzprogramm LaTeX wie folgt als Zeichenkette darstellt: 2\frac{2}{5}. Dieses in LaTeX als $2\frac{2}{5}$ gesetzt. Es soll also der ganzzahlige Anteil angezeigt werden und dann der Rest als Bruch. Ist der ganzzahlige Anteil der Bruchzahl 0, so fällt dieser weg und nur ein Bruch wird angezeigt
- Schreiben Sie eine Methode kuerzen(), die den Bruch so normalisiert, dass Zähler und Nenner nur noch 1 als größten gemeinsamen Teiler haben und höchsten der Zähler eine negative Zahl ist. Erweitern Sie dabei den Konstruktor soweit, dass nur gekürzte Bruchobjekte erzeugt werden. Hierzu ist die Klasse Euklid aus der letzten Aufgabe auf der Testumgebung hinterlegt.
- Schreiben Sie eine Methode toDouble(), die die Bruchzahl als double Wert berechnet..
- Schreiben Sie eine Methode mult(Ratio that), die das Produkt zweier rationaler Zahlen in gekürzter Form erzeugt.
- Schreiben Sie eine Methode div(Ratio that), die den Quotienten zweier rationaler Zahlen in gekürzter Form erzeugt.
- Schreiben Sie eine Methode add(Ratio that), die die Summe zweier rationaler Zahlen in gekürzter Form erzeugt.
- Schreiben Sie eine Hauptmethode, mit ein paar eigenen Testaufrufen.
class Ratio{
long zaehler;
long nenner;
Ratio(long zaehler, long nenner){
//TODO
}
public String toString(){
//TODO
return "";
}
public void kuerzen(){
//TODO
}
Ratio mult(Ratio that){
//TODO
return null;
}
Ratio div(Ratio that){
//TODO
return null;
}
Ratio add(Ratio that){
//TODO
return null;
}
double toDouble(){
//TODO
return 0;
}
public static void main(String... args){
//TODO
}
}