Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

Post on 05-Apr-2015

114 views 3 download

Transcript of Programmiermethodik Übung 6 Methoden verstehen und entwerfen.

ProgrammiermethodikÜbung 6

Methoden verstehen und entwerfen

Musterlösung HA 4.3-4.5

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

Musterlösung HA 5.2

Musterlösung HA5.5

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

Neuen Algorithmus verstehenQuellcode

r1

r2

r3

r4

r5

r8

r6r10

r9r12

r11

r13

r7

Neuen Algorithmus verstehen

Was tut der Algorithmus mit diesen Beispieldaten?

Neuen Algorithmus verstehen

Was tut der Algorithmus mit diesen Beispieldaten?

Neuen Algorithmus verstehen

Was tut der Algorithmus mit diesen Beispieldaten?

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

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

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

Hausaufgabe

• Auf der Seite der Veranstaltung im Netz

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