Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

13
Programmiermethodik Übung 6 Methoden verstehen und entwerfen

Transcript of Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Page 1: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

ProgrammiermethodikÜbung 6

Methoden verstehen und entwerfen

Page 2: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Musterlösung HA 4.3-4.5

Page 3: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Musterlösung HA 4.6

• „Die Zugriffsmethoden der Assoziationen sind aus mehreren Gründen komplizierter:– ... HashSets bei „zu n“-Assoziationen werden erst dann

angelegt, wenn sie ein Objekt speichern sollen, dies spart Speicherplatz...

– ... sind Prüfungen vorhanden, die verhindern, einen null-Wert der Liste hinzuzufügen, was ja auch sinnlos wäre

– ... Wird nicht mit einem contains() geprüft, ob ein Element schon im Set enthalten ist, sondern mit der add()-Methode selber, was eine nochmalige Durchsuchung des Sets bei einem dem contains() eventuell folgenden add() sparen kann

Page 4: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Musterlösung HA 5.2

Page 5: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Musterlösung HA5.5

• Ja, es gibt mehrere Wege/Lösungen– Zweimal durch den selben Raum gehen

Page 6: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Neuen Algorithmus verstehenQuellcode

Page 7: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

r1

r2

r3

r4

r5

r8

r6r10

r9r12

r11

r13

r7

Neuen Algorithmus verstehen

Was tut der Algorithmus mit diesen Beispieldaten?

Page 8: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Neuen Algorithmus verstehen

Was tut der Algorithmus mit diesen Beispieldaten?

Page 9: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Neuen Algorithmus verstehen

Was tut der Algorithmus mit diesen Beispieldaten?

Page 10: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Neuen Algorithmus verstehenObjekteQuellcode

10

10

1010

10

kosten = 10

10

2

10

10

10

1

2

geschlossen

10

start

algorithmMark=0

r2queue

r

mark = 0

t

newMark = 10

neighbor

neighbor

// liefert Raum mit dem niedrigsten algorithmMark // und entfernt ihn aus der Schlange

algorithmMark=10

r5

Page 11: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Praxisteil – Aufgabe 1• Vollzieht in Gruppendiskussionen den Ablauf des Algorithmus´ anhand

der Objektstruktur nach• Leitet eine allgemeine Verhaltensbeschreibung ab• Wozu könnte der Algorithmus dienen?• Wie könnte man das Attribut ‚algorithmMark‘ besser nennen?• Achtung: Wichtig für die Hausaufgabe – Bewahrt die

Zwischenergebnisse nach dem zweiten Schleifendurchlauf auf

• Präsentation der Ergebnisse

Page 12: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Praxisteil – Aufgabe 2• Öffne den Eclipse Workspace zur Übung 6• Implementiere die Methode model.Person.laufe(List<Raum> weg)

– Die Person soll die Räume wie in der Liste angegeben durchlaufen und an jeder Tür die entspechenden Kosten bezahlen

• Führe den Test operations.Exercise6.testLauf() aus – er sollte erfolgreich sein– Solange der Test nicht erfolgreich ist, führe einen Zetteltest durch oder

Steppe im Debugger, um herauszufinden warum

Page 13: Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Hausaufgabe

• Auf der Seite der Veranstaltung im Netz

– Zwei Schleifendurchläufe des Zetteltest– Methode Tuer.sprengen()