1. Übungsblatt - Abgabe 14. November

http://pp.info.uni-karlsruhe.de/lehre/W ... rn/b01.pdf
Benutzeravatar
Robert
Beiträge: 3
Registriert: Do 6. Nov 2008, 16:50

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von Robert »

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.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken

Code: Alles auswählen

this.line1 = new Line (punktA, punktB);
Denn so speichert man dann die Werte in Line-Objekten. Oder täusche ich mich da?

MfG
Robert
|silent
Moderator
Beiträge: 88
Registriert: Di 28. Okt 2008, 13:15
Kontaktdaten:

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von |silent »

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.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken

Code: Alles auswählen

this.line1 = new Line (punktA, punktB);
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!
Bild
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von Thomas »

wie is das eigentlich, man hat ja dann bei b) in der Klasse 2 Konstruktormethoden, nennt man die dann trotzdem gleich? oder is es einfach so dass man nur eine Konstruktormethode macht und dass wenn man das ganze mit new Line macht, es quasi beide Vorrausetzungen erfüllt?

also das einfach das reicht?
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken
Triangle2(Line l1, Line l2, Line l3) {

this.Line l1 = new Line (punktA, punktB) ;
this.Line l2 = new Line (punktA, punktC) ;
this.Line l3 = new Line (punktB, punktC) ;
}
|silent
Moderator
Beiträge: 88
Registriert: Di 28. Okt 2008, 13:15
Kontaktdaten:

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von |silent »

Thomas hat geschrieben:wie is das eigentlich, man hat ja dann bei b) in der Klasse 2 Konstruktormethoden, nennt man die dann trotzdem gleich? oder is es einfach so dass man nur eine Konstruktormethode macht und dass wenn man das ganze mit new Line macht, es quasi beide Vorrausetzungen erfüllt?

also das einfach das reicht?
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken
Triangle2(Line l1, Line l2, Line l3) {

this.Line l1 = new Line (punktA, punktB) ;
this.Line l2 = new Line (punktA, punktC) ;
this.Line l3 = new Line (punktB, punktC) ;
}
Das funktioniert so nicht. Du übergibst ja als Parameter die Line-Objekte, die du vorher erzeugen musst und diese Objekte weist du dann dem Datentyp "Line" zu, dazu schreibst du folgendes:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken
Triangle2(Line l1, Line l2, Line l3)
{
this.l1 = l1;
this.l2 = l2;
this.l3 = l2;
}

oder

Triangle2(p1, p1, p3)
{
this.l1 = new Line(p1, p2);
this.l2 = new Line(p2, p3);
this.l3 = new Line(p3, p1);
}
Bild
Benutzeravatar
pedobear
Beiträge: 28
Registriert: Do 23. Okt 2008, 22:35

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von pedobear »

äh unsre gegebene class Line hat aber schon 2 ma Point als attribute, du übergibst an dein konstruktor also nur 3 punkte un net 6 koordinaten. ne linie von p1_X nach p1_Y wär auch iwi net so der bringer ^^
I HAS FREE CANDYZ
|silent
Moderator
Beiträge: 88
Registriert: Di 28. Okt 2008, 13:15
Kontaktdaten:

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von |silent »

pedobear hat geschrieben:äh unsre gegebene class Line hat aber schon 2 ma Point als attribute, du übergibst an dein konstruktor also nur 3 punkte un net 6 koordinaten. ne linie von p1_X nach p1_Y wär auch iwi net so der bringer ^^
Whoops, stimmt. Hab' ich grade auch gesehn. Habs korrigiert. Anmerkung: Das waren nur Bsp., das kommt so nicht in der Aufgabe vor.
Bild
Benutzeravatar
Dit
Beiträge: 12
Registriert: Do 13. Nov 2008, 18:38
Kontaktdaten:

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von Dit »

Wäre so richtig ? :unknown:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken
class Triangle2 {

// Attribute: Linien des Dreiecks

Line ab ;
Line bc ;
Line ac ;

// Kostruktor-Methode - aus Linien

Triangle2 ( Line ab , Line bc , Line ac ) {

this.ab = ab ;
this.bc = bc ;
this.ac = ac ;

} // Triangle2

// Kostruktor-Methode - aus Punkten

Triangle2 ( Point a , Point b , Point c ) {

this.a = new Line ( a , b ) ;
this.b = new Line ( b , c ) ;
this.c = new Line ( a , c ) ;
} // Triangle2

} // Ende der Klasse Triangle2
Methode aus Punkten gefällt mir nicht ... :unknown:
fake
Beiträge: 95
Registriert: Mo 27. Okt 2008, 17:34

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von fake »

was habt ihr bei der 1 c) geschrieben vorteile/nachteile?
fredpape
Beiträge: 25
Registriert: Di 11. Nov 2008, 21:16

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von fredpape »

Dit hat geschrieben:Wäre so richtig ? :unknown:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken
class Triangle2 {

// Attribute: Linien des Dreiecks

Line ab ;
Line bc ;
Line ac ;

// Kostruktor-Methode - aus Linien

Triangle2 ( Line ab , Line bc , Line ac ) {

this.ab = ab ;
this.bc = bc ;
this.ac = ac ;

} // Triangle2

// Kostruktor-Methode - aus Punkten

Triangle2 ( Point a , Point b , Point c ) {

this.a = new Line ( a , b ) ;
this.b = new Line ( b , c ) ;
this.c = new Line ( a , c ) ;
} // Triangle2

} // Ende der Klasse Triangle2
Methode aus Punkten gefällt mir nicht ... :unknown:
Naja ... , du kannst nur Attribute via this . attributname = ... setzen, sofern es sie auch gibt.
Und in deiner obrigen Klasse Triangle2 gibt es keine Attribute a, b und c.
Du müsstest also in beiden Konstruktoren die 3 Line-Attribute ab, bc und ac entsprechend setzen.
Benutzeravatar
Dit
Beiträge: 12
Registriert: Do 13. Nov 2008, 18:38
Kontaktdaten:

Re: 1. Übungsblatt - Abgabe 14. November

Beitrag von Dit »

und wenn ich es so mache ?
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken
class Triangle2 {

// Attribute: Linien des Dreiecks

Point [ ] eckpunkte = { a, b, c }
Line ab ;
Line bc ;
Line ac ;

// Kostruktor-Methode - aus Linien

Triangle2 ( Line ab , Line bc , Line ac ) {

this.ab = ab ;
this.bc = bc ;
this.ac = ac ;

} // Triangle2

// Kostruktor-Methode - aus Punkten

Triangle2 ( Point [ ] eckpunkte ) {
this.eckpunte = eckpunkte ;


} // Triangle2

} // Ende der Klasse Triangle2
:think:
Antworten

Zurück zu „Blatt 1“