Robert hat geschrieben:Code: Alles auswählen
Triangle2(Point punktA, Point punktB, Point punktC) {
this.punktA = punktA ;
this.punktB = punktB ;
this.punktC = punktC ;
}
Kann so leider nicht stimmen.
In der Aufgabe 1b) heißt es ja:
Entwerfen Sie nun eine Klasse Triangle2, die in ihren Attributen nicht die Eckpunkte,
sondern die drei begrenzenden Linien des Dreiecks speichert.
Ergo muss man meiner Meinung nach dann z.B. schreiben.
Denn so speichert man dann die Werte in Line-Objekten. Oder täusche ich mich da?
MfG
Robert
Ja Robert das ist korrekt.
Die
Kontruktormethode von der Klasse
Triangle2 sieht folgendermaßen aus (wenn man das ganze wirklich abstrakt machen will):
Code: Alles auswählen
// Erzeugt ein Dreieck aus den drei begrenzenden Linien
Triangle2 (Line l1, Line l2, Line l3)
{
this.l1 = l1; // setze Attribute
this.l2 = l2;
this.l3 = l3;
} // Triangle2
Die zu übergebenden Line-Objekte müssen natürlich vorher erzeugt werden. Das passiert bei mit in der Klasse
Line:
Code: Alles auswählen
class Line
{
// Attribute: Endpunkte
Point p1;
Point p2;
// Konstruktor-Methode
Line (Point p1, Point p2)
{
this.p1 = p1; // setze Attribut p1
this.p2 = p2; // setze Attribut p2
} // Line
} // class Line
Hat jemand schon eine Lösung für Aufgabe 2 (b)?
Mein Ansatz ist folgender: Es muss ein Algorithmus geben, der als Parameter das Start- und das End-Dorf erhält. Da das Verkehrsnetz wie folgt aufgebaut ist:
Code: Alles auswählen
Verkehrsnetz
|------> Dorf
|------> Kreuzung
|------> Landstraße
kann man sagen, dass der Algorithmus (ausgehend vom Start-Dorf) alle Landstraßen prüft, die in der Kreuzung dieses Dorfes liegen. Findet sich dabei schon direkt der Weg zum End-Dorf wäre das Ergebnis 0. Findet er nicht den gleichen Straßennamen, so muss (beginnend mit der als erstes eingetragenen Straße) alle Straßen komplett durchlaufen, dabei ist darauf zu achten, dass er das ganze nur eine bestimmte (Anzahl der Dörfer?) Anzahl macht um eine Endlosschleife zu verhindern, wenn die Dörfer im Kreis gelinkt sind. Wie habt ihr das gemacht?
Anmerkung: Name der Straße muss unique sein!