Blatt 6
Bennen Sie die Klassen der letzten Stunde um.
Kreis Circle
Punkt Point
a)
Ergänzen Sie Ihre Circle-Klasse, in dem Sie neben den Radius auf einen Mittelpunkt
definieren (x,y) 2D reicht!
Ergänzen Sie die Klasse Circle um eine Methode IsOutside(...), die die x- und y-
Koordinaten eines Punktes übergeben bekommt und testet, ob der Punkt außerhalb des
Kreises liegt und in diesem Falle true zurückgibt (false sonst). Ergänzen Sie den
Konstruktor um eine einzeilige Kontrollausgabe „Kreis erzeugt“.
Hinweis: Um diese Aufgabe zu lösen, müssen Sie ausrechnen können, wie groß der Abstand
d zweier Punkte (x1, y1) und (x2, y2) ist. Verwenden Sie hierzu die Formel (sog.
Euklidischer Abstand):
d = Math.Sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
Ihre Ausgabe könnte z.B. so aussehen:
Kreis erzeugt: M = (0, 0), Radius: 3.0
Kreis erzeugt: M = (3, 0), Radius: 4.0
Kreis erzeugt: M = (0, 3), Radius: 5.0
-Punkt- -Kreis1- -Kreis2- -Kreis3-
(2, 0) INNEN INNEN INNEN
(2, 7) AUSSEN AUSSEN INNEN
(2, 9) AUSSEN AUSSEN AUSSEN
Schreiben Sie die Methoden Grow() und Move() für die Klasse Circle, die einen Kries
wachsen und bewegen lässt.
b)
Schreiben Sie eine Klasse Point, die einen einzelnen Punkt (x, y) des
Koordinatensystems beschreibt. Ein Objekt dieser Klasse besitze die privaten int-Variablen
x und y, Properties zum Setzen bzw. Lesen von x und y. Außerdem habe Point einen
Konstruktor, dem unmittelbar Werte zum Festlegen von x und y übergeben werden. Ergänzen
Sie den Konstruktor ebenfalls um eine einzeilige Kontrollausgabe (siehe a).
Erzeugen Sie in einem Hauptprogramm mindestens die drei Punkte mit den Koordinaten (2,
0), (2, 7) und (2, 9).
Die Ausgabe könnte nun etwa wie folgt aussehen:
Punkt (2, 0) erzeugt
Punkt (2, 7) erzeugt
Punkt (2, 9) erzeugt
c) Modifizieren Sie die Klasse Circle aus a) so, dass sie statt der Angabe (x, y) für einen
Punkt den Objekttyp Point verwendet:
· Speichern Sie den Mittelpunkt als Point-Objekt
· Ändern Sie den Konstruktor entsprechend
· Ändern Sie die IsOutside(..)-Methode entsprechend.
Führen Sie anschließend mindestens die gleichen Tests wie bei a) durch.
Mögliche Ausgabe:
Punkt (0, 0) erzeugt
Kreis erzeugt: M = (0, 0), Radius: 3.0
Punkt (3, 0) erzeugt
Kreis erzeugt: M = (3, 0), Radius: 4.0
Punkt (0, 3) erzeugt
Kreis erzeugt: M = (0, 3), Radius: 5.0
-Punkt- -Kreis1- -Kreis2- -Kreis3-
Punkt (2, 0) erzeugt
(2, 0) INNEN INNEN INNEN
Punkt (2, 7) erzeugt
(2, 7) AUSSEN AUSSEN INNEN
Punkt (2, 9) erzeugt
(2, 9) AUSSEN AUSSEN AUSSEN
Keine Kommentare:
Kommentar veröffentlichen