Codekorrektur

wuby

Mitglied
hallo zusammen,

haben ein übungsblatt bekommen und ich komm hier irgendwie nicht weiter.
das ist die aufgabe:

Ernie und Bert haben sich ebenfalls an der Klasse Interval versucht. Voller Tatendrang
haben sie die Klasse um weitere sinnvolle Funktionalitat erganzt. Leider haben Sie
nur noch wenig Zeit, bevor sie die Aufgabe abgeben mussen. Konnen Sie Ernie und Bert
bei der Fehlersuche helfen? Geben Sie zu jedem Fehler, den Sie nden, die Zeilennummer,
eine Begrundung sowie einen Korrekturvorschlag an!

[JAVA=42]
public Interval division(Interval B){
int anyNumber = 0;
if(not B.contains(anyNumber))
System.out.println("Das Intervall " + B + " enth¨alt nicht die Zahl "+
anyNumber + ".");
if(not B.contains(anyNumber) & 1/B.getRight() > 0 & 1/B.getLeft() > 0)
System.out.println("Das Intervall " + B + " enth¨alt weder den Wert "+
anyNumber + " noch sind die Kehrwerte des Intervalls negativ.");
return multiplication(new Interval( 1/B.getRight(),1/B.getLeft()));
}
public boolean contains(Interval B) {
return this.left <= B & this.getRight() >= B;
}
public boolean contains(double b) {
if(this.getLeft() < b & this.getRight() > b)
return false;
}
public boolean equals(Interval B) {
return B != null & this.contains(B) & B.contains(this);
}
[/code]


so ein paar sachen habe ich gefunden:
gibt 2 funktionen contains
in zeile 3 geht das "not B." nicht
in zeile 4 kann bei der ausgabe "+ B + " nciht einfach so stehnbleiben, oder?
habt ihr weitere idee??
 
S

SlaterB

Gast
deine Funde passen nicht so recht zu den Zeilenangaben im Code-Block,

> gibt 2 funktionen contains
grundsätzlich schon möglich

---

wie wärs damit, den Code in ein Java-Programm einzufügen und den Compiler noch mehr finden zu lassen?
fehlende Klassen wie Interval könntest du schnell dazuschreiben bzw. die ist wohl vorausgesetzt
 
Zuletzt bearbeitet von einem Moderator:

Haave

Top Contributor
habt ihr weitere idee??
Die Einrückung ist ein Graus :lol:

Okay, ernsthaft:
in zeile 3 geht das "not B." nicht
Das stimmt, aber was müsste da stehen, damit es funktioniert?

in zeile 4 kann bei der ausgabe "+ B + " nciht einfach so stehnbleiben, oder?
Doch, aber dann sollte die toString()-Methode vlt überschrieben werden, sonst wird da nur Klassenname+Speicheradresse stehen. Wenn das nichts ausmacht, kannst du es auch so stehenlassen.

Dann würd ich Abstand davon nehmen, einen if-Block ohne geschweifte Klammern stehen zu lassen. Da ist zwar momentan nur eine Zeile unten drunter, was so auch funktioniert, aber wenn du dann noch ne Zeile anfügst und dann keine Klammern oben hinzufügst, kann das ins Auge gehen.
 

wuby

Mitglied
weitere mögliche Fehler gefunden:

Zeile 53: this.getLeft () statt this.left
in der zweiten zeile: sollte das nicht lieber eine double zahl sein, da später bei contains diese mit doubles verglichen wird?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
um auch was beizutragen:
in der Zeile 53 ist ja viel interessanter, dass left mit B an sich verglichen wird, mit dem gesamten Intervall-Objekt

Variablen sollten übrigens generell kleingeschrieben werden, sag das Ernie und Bert
 
M

Marcinek

Gast
[XML] public boolean contains(Interval B) {
return this.left <= B & this.getRight() >= B;
}
[/XML]

Objekte lassen sich nicht mit > < vergleichen.

Da müsste sowas sein, wie B.getLeft() ..
 

wuby

Mitglied
im anhang habe ich mal die lösng hochgeladen, die wir abgegeben haben... gucken war bei rauskommt...
 

Anhänge

  • zettel3.pdf
    172,9 KB · Aufrufe: 8

Oben