M
minka000
Gast
Hallo!
Ich habe folgende Aufgabe gestellt bekommen:
Gegeben sei die abstrakte Klasse
Vervollständigen Sie die Methode sort(Zahl[] k), sodass das Parameter-Feld aufsteigend
sortiert wird.
Schreiben Sie konkrete Klassen Nat, Ganz und Rat, die die abstrakte Klasse Zahl
erweitern und natürliche, ganze bzw. rationale Zahlen repräsentieren. Stellen Sie dabei
eine natürliche Zahl durch einen nichtnegativen long-Wert, eine ganze Zahl durch einen
long-Wert und eine rationale Zahl durch einen long-Wert (Zähler) und einen positiven long-
Wert (Nenner) dar. Achten Sie darauf, dass die Darstellung rationaler Zahlen eindeutig
und gekürzt ist. Fügen Sie geeignete Konstruktoren und die toString-Methode hinzu.
Gegeben seien die fünf rationalen Zahlen
-3/7 , 1/3 , 5/6 , 2/9 und 1/17.
Berechnen Sie schriftlich
den Wert des Ausdrucks
[(-3/7) - (1/3)] / [(5/6) + (2/9) * (1/17)]
und überprüfen Sie Ihr Ergebnis mit dem folgenden Programmfragment:
Sortieren Sie dann das Feld r mit der Methode sort und geben Sie das sortierte Feld aus.
Berechnen Sie anschließend mit Ihrem Programm den genauen Wert der Summe
Summe(i=1 bis 20) (1/i) = (1/1)+(1/2)+...+(1/20)
Geben Sie das Ergebnis auch als double-Wert aus.
Führen Sie weitere Tests – auch mit natürlichen und ganzen Zahlen – durch und zeigen
Sie die Testergebnisse Ihrem Tutor.
Beim Auftreten eines fehlerhaften Werts (z. B. einer negativen natürlichen Zahl) soll
das Programm mit einer entsprechenden Meldung beendet werden (System.exit(1)).
Entschuldigt, dass die Brüche und die Summe so dargestellt sind, aber leider konnte ich hier mit Latex nichts schreiben
So ich hab jetzt mal angefangen die konkreten Klassen Nat, Ganz u. Rat zu schreiben:
Ich weiss das ich noch nicht sonderlich weit gekommen bin. Aber ich wollte erstmal von euch wissen ob das bisher denn schonmal richtig ist? Bzw. gehört in diese Klassen noch mehr hinein?
Über Antworten würde ich mich sehr freuen
mfg minka000
Ich habe folgende Aufgabe gestellt bekommen:
Gegeben sei die abstrakte Klasse
Java:
abstract class Zahl implements Comparable {
abstract public Zahl add(Zahl z);
abstract public Zahl sub(Zahl z);
abstract public Zahl mul(Zahl z);
abstract public Zahl div(Zahl z);
abstract public int compareTo(Object k);
public static void sort(Zahl[] k) {
...
}
}
Vervollständigen Sie die Methode sort(Zahl[] k), sodass das Parameter-Feld aufsteigend
sortiert wird.
Schreiben Sie konkrete Klassen Nat, Ganz und Rat, die die abstrakte Klasse Zahl
erweitern und natürliche, ganze bzw. rationale Zahlen repräsentieren. Stellen Sie dabei
eine natürliche Zahl durch einen nichtnegativen long-Wert, eine ganze Zahl durch einen
long-Wert und eine rationale Zahl durch einen long-Wert (Zähler) und einen positiven long-
Wert (Nenner) dar. Achten Sie darauf, dass die Darstellung rationaler Zahlen eindeutig
und gekürzt ist. Fügen Sie geeignete Konstruktoren und die toString-Methode hinzu.
Gegeben seien die fünf rationalen Zahlen
-3/7 , 1/3 , 5/6 , 2/9 und 1/17.
Berechnen Sie schriftlich
den Wert des Ausdrucks
[(-3/7) - (1/3)] / [(5/6) + (2/9) * (1/17)]
und überprüfen Sie Ihr Ergebnis mit dem folgenden Programmfragment:
Java:
Zahl[] r = new Rat[5];
r[0] = new Rat(-3,7);
r[1] = new Rat(1,3);
r[2] = new Rat(5,6);
r[3] = new Rat(2,9);
r[4] = new Rat(1,17);
Zahl e = (r[0].sub(r[1])).div(r[2].add(r[3].mul(r[4])));
System.out.println(e);
Sortieren Sie dann das Feld r mit der Methode sort und geben Sie das sortierte Feld aus.
Berechnen Sie anschließend mit Ihrem Programm den genauen Wert der Summe
Summe(i=1 bis 20) (1/i) = (1/1)+(1/2)+...+(1/20)
Geben Sie das Ergebnis auch als double-Wert aus.
Führen Sie weitere Tests – auch mit natürlichen und ganzen Zahlen – durch und zeigen
Sie die Testergebnisse Ihrem Tutor.
Beim Auftreten eines fehlerhaften Werts (z. B. einer negativen natürlichen Zahl) soll
das Programm mit einer entsprechenden Meldung beendet werden (System.exit(1)).
Entschuldigt, dass die Brüche und die Summe so dargestellt sind, aber leider konnte ich hier mit Latex nichts schreiben
So ich hab jetzt mal angefangen die konkreten Klassen Nat, Ganz u. Rat zu schreiben:
Java:
public class Nat extends Zahl {
long n;
public Nat (long n) {
if ( nat < 0) {
System.out.println("Keine natürliche Zahl!");
System.exit(1)
}
this.n = n;
}
public String toString() {
return Nat = n
}
}
Java:
public class Ganz extends Zahl {
long g;
public Zahl(long g) {
this.g = g;
}
public String toString() {
return Ganz = g;
}
}
Java:
public class Rat extends Zahl {
long zaehler, nenner;
public Rat(long zaehler, long nenner) {
if (nenner < 0) {
System.out.println("Der Nenner darf nicht negativ sein");
System.exit(1);
}
this.zaehler = zaehler;
this.nenner = nenner;
}
public String toString() {
return Rat = zaehler/nenner;
}
}
Ich weiss das ich noch nicht sonderlich weit gekommen bin. Aber ich wollte erstmal von euch wissen ob das bisher denn schonmal richtig ist? Bzw. gehört in diese Klassen noch mehr hinein?
Über Antworten würde ich mich sehr freuen
mfg minka000