Aufgabe 10 Lösung

http://pp.info.uni-karlsruhe.de/lehre/W ... rn/b05.pdf
Benutzeravatar
salami
Beiträge: 179
Registriert: Mi 5. Nov 2008, 22:41
Wohnort: Karlsruhe

Aufgabe 10 Lösung

Beitrag von salami »

Hallo,
habe hier meine Lösung und wollte wissen, ob ihr das auch rauskriegt:

Code: Alles auswählen

Fall 1: (0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)
Fall 2: (4.0, 1.0), (5.0, 3.0), (9.0, 3.0)
Fall 3: (-5.0, -8.0), (-5.0, -4.0), (0.0, 10.0), (5.0, 10.0), (6.0, -7.0)
Fall 4: (4.0, 5.0), (6.0, 12.0), (10.0, 14.0), (10.0, 5.0)
Fall 5: (20.0, 5.0), (23.0, 11.0), (24.0, 9.0), (25.0, 6.0), (23.0, 5.0)
SLS
Beiträge: 77
Registriert: So 26. Okt 2008, 20:11
Wohnort: Karlsruhe

Re: Aufgabe 10 Lösung

Beitrag von SLS »

Stimmt mit meinen Ergebnissen überein :beer:
When we say that two functions are almost always used together, we should remember that "almost" is a euphemism for "not."
-- David L. Parnas, "Designing Software for Ease of Extension and Contraction"
markusj
Beiträge: 164
Registriert: Do 23. Okt 2008, 22:07

Re: Aufgabe 10 Lösung

Beitrag von markusj »

Deckt sich auch mit meinen, schaut gut aus!

mfG
Markus
nik7887
Beiträge: 2
Registriert: So 28. Dez 2008, 23:41

Re: Aufgabe 10 Lösung

Beitrag von nik7887 »

könnt ihr mal n tipp geben wie in etwa ihr eure addPoint methode gebastelt habt? is das einzige was mir noch fehlt bzw wenn ich das was ich habe kompilieren will geht meine cpu auslastung auf 50% und bleibt da bis ich den prozess kille ^^
markusj
Beiträge: 164
Registriert: Do 23. Okt 2008, 22:07

Re: Aufgabe 10 Lösung

Beitrag von markusj »

Eigentlich muss man nur die Anweisungen aus der Aufgabenstellung mehr oder minder eins zu eins in Sourecode umsetzen ... Wenn du 100% Last verursachst, musst du a) ein Problem mit einer Abbruchbedingung haben und b) dabei eine Operation durchführen, die nicht wegen leergelaufenem Array Exceptions wirft.
Wenn du Eclipse benutzt (ich nehme an, das NetBeans ähnlich ausgerüstet ist), kannst du einfach einmal versuchen, die Ausführung deines Programms Schritt für Schritt zu überwachen, in Eclipse setzt man dafür in der Regel vorher einen Breakpoint und startet das Programm dann nicht mit dem "grünen Pfeil" sondern mit dem "grünen Käfer".
Sobald das Programm an der entsprechenden Codestelle angekommen ist, kannst du Schritt für Schritt die Ausführung verfolgen und dabei auch die Variablen beobachten.
Näheres zum Thema Debugging mit Eclipse gibt es bestimmt bei Google oder dem Nerd deines Vertrauens ;)

mfG
Markus
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Aufgabe 10 Lösung

Beitrag von Thomas »

mal ne kurze frage: habt ihr in der main-klasse alle testfälle auf einma impletiert und wenn ja habt ihr da ne schöne möglichkeit gefunden ohne jeden punkt einzeln zu erzeugen?
btw: hab auch die gleichen ergebnisse
markusj
Beiträge: 164
Registriert: Do 23. Okt 2008, 22:07

Re: Aufgabe 10 Lösung

Beitrag von markusj »

Ich hab konstante Arrays für die einzelnen Testfälle, die dann einer Testmethode übergeben werden.

mfG
Markus

Edit: Ja, die Punkte müssen halt leider Konstant reingehackt werden ...
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Aufgabe 10 Lösung

Beitrag von Thomas »

hm ok hab ich mir fast gedacht iwie bissle nervig, aba danke trotzdem ;)
sockenjodler
Beiträge: 10
Registriert: So 9. Nov 2008, 20:46

Re: Aufgabe 10 Lösung

Beitrag von sockenjodler »

Servus,
da mich das ebenfalls genervt hat, all die Punkte per Hand zu setzen, stell ich sie für alle anderen rein, die sich 10min Zeit sparern wollen^^

Code: Alles auswählen

         Point[] a=new Point[4];
          a[0]=new Point(0,0);
          a[1]=new Point(0,1);
          a[2]=new Point(1,1);
          a[3]=new Point(1,0);
        Point[] b=new Point[5];
          b[0]=new Point(4,1);
          b[1]=new Point(5,2);
          b[2]=new Point(5,3);
          b[3]=new Point(9,3);
          b[4]=new Point(6,2);
        Point[] c=new Point[12];
          c[0]=new Point(-5,-6);
          c[1]=new Point(-3,-5);
          c[2]=new Point(-5,-4);
          c[3]=new Point(-1,-1);
          c[4]=new Point(0,10);
          c[5]=new Point(2,8);
          c[6]=new Point(3,6);
          c[7]=new Point(4,3);
          c[8]=new Point(5,10);
          c[9]=new Point(6,-7);
          c[10]=new Point(-5,-8);
          c[11]=new Point(-4,-7);
        Point[] d=new Point[7];
          d[0]=new Point(5,5); 
          d[1]=new Point(4,5);
          d[2]=new Point(6,12);
          d[3]=new Point(7,10);
          d[4]=new Point(8,7);
          d[5]=new Point(10,14);
          d[6]=new Point(10,5);
        Point[] e=new Point[13];
          e[0]=new Point(20,5);
          e[1]=new Point(23,6);
          e[2]=new Point(21,7);
          e[3]=new Point(23,10);
          e[4]=new Point(22,9);
          e[5]=new Point(23,11);
          e[6]=new Point(24,9);
          e[7]=new Point(23,9);
          e[8]=new Point(22,8);
          e[9]=new Point(24,8);
          e[10]=new Point(23,7);
          e[11]=new Point(25,6);
          e[12]=new Point(23,5);
Jazzman
Beiträge: 3
Registriert: Fr 26. Dez 2008, 00:13

Re: Aufgabe 10 Lösung

Beitrag von Jazzman »

Kann mir mal einer erklären ? was die in Aufgabe 10b (a) (b) verlangen ? Soll man das ganze in einer Methode umsetzen ? abgesehen von der Hilfsmethode ! (a) Entfernen Sie so lange den letzten Punkt der Hülle,bis nur noch ein Punkt enthalten ist oder die letzten beiden Punkte der Hülle zusammen mit dem neuen Punkt ein rechtsdrehendes Tripel bilden.

habe ich das richtig verstanden ? Ich habe eine Liste mit Punkten , dann schaue ich ob mein übergebener Punkt an die Methode mit den letzten 2 beiden Punkten ein Tripel bildet ? wenn "Ja" entferne den letzen punkt nicht und füge den übergebenen punkt an die letzte stelle der Liste. Wenn "Nein" entferne den letzten punkt der liste und füge den übergebenen punkt an die letzte stelle der liste . :?: :?:
Antworten

Zurück zu „Blatt 5 - Abgabe 23.01.09“