Hallo,
in der Aufgabe gibt es mehrere Methoden auszudefinieren.
Hab alle wunderbar hinbekommen bis auf eine. Die Lösung ist zwar um Welten kürzer als meine Lösung, vom Grundgedanken her jedoch identisch. Finde den Fehler leider nicht.
Man hat ein Interval bestehend aus einer Comparable lowerBound (Untergrenze) und einer Comparable upperBound (Obergrenze.
Ziel der Methode ist es das this Intervall mit einem anderen zu vergleichen und als Rückgabe die Schnittmenge rauszugeben.
Hier die Musterlösung:
... und nun hier meine (nicht funktionierende) Lösung:
Wäre cool falls jm den Fehler findet.
Vielen Dank,
Julia.
in der Aufgabe gibt es mehrere Methoden auszudefinieren.
Hab alle wunderbar hinbekommen bis auf eine. Die Lösung ist zwar um Welten kürzer als meine Lösung, vom Grundgedanken her jedoch identisch. Finde den Fehler leider nicht.
Man hat ein Interval bestehend aus einer Comparable lowerBound (Untergrenze) und einer Comparable upperBound (Obergrenze.
Ziel der Methode ist es das this Intervall mit einem anderen zu vergleichen und als Rückgabe die Schnittmenge rauszugeben.
Hier die Musterlösung:
Java:
private static Comparable min(Comparable x, Comparable y) {
return x.compareTo(y) <= 0 ? x : y;
}
private static Comparable max(Comparable x, Comparable y) {
return x.compareTo(y) > 0 ? x : y;
}
....
/**
* @return Durchschnitt von this und iv.
*/
public Interval intersection(Interval iv) {
return new Interval(
max(lowerBound, iv.lowerBound),
min(upperBound, iv.upperBound));
}
... und nun hier meine (nicht funktionierende) Lösung:
Java:
private static Comparable min(Comparable x, Comparable y) {
if(x.compareTo(y)<0)
return x;
else return y;
}
private static Comparable max(Comparable x, Comparable y) {
// TODO
if(x.compareTo(y)<0)
return y;
else return x;
}
.......
/**
* @return Durchschnitt von this und iv.
*/
public Interval intersection(Interval iv) {
if (! this.contains(iv)){
return new Interval(null, null);
}
else{
Comparable highestlowerbound;
Comparable lowestupperbound;
if(this.lowerBound.compareTo(iv.lowerBound) >=1)
highestlowerbound = this.lowerBound;
else highestlowerbound = iv.lowerBound;
if (this.upperBound.compareTo(iv.upperBound) <=1)
lowestupperbound = this.upperBound;
else lowestupperbound = iv.upperBound;
return new Interval(highestlowerbound,lowestupperbound
// TODO
);
}
}
Wäre cool falls jm den Fehler findet.
Vielen Dank,
Julia.