programmiermethodik Übung 6 methoden verstehen und entwerfen
TRANSCRIPT
![Page 1: Programmiermethodik Übung 6 Methoden verstehen und entwerfen](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/1.jpg)
ProgrammiermethodikÜbung 6
Methoden verstehen und entwerfen
![Page 2: Programmiermethodik Übung 6 Methoden verstehen und entwerfen](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/2.jpg)
Musterlösung HA 4.3-4.5
![Page 3: Programmiermethodik Übung 6 Methoden verstehen und entwerfen](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/4.jpg)
Musterlösung HA 5.2
![Page 5: Programmiermethodik Übung 6 Methoden verstehen und entwerfen](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/6.jpg)
Neuen Algorithmus verstehenQuellcode
![Page 7: Programmiermethodik Übung 6 Methoden verstehen und entwerfen](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/8.jpg)
Neuen Algorithmus verstehen
Was tut der Algorithmus mit diesen Beispieldaten?
![Page 9: Programmiermethodik Übung 6 Methoden verstehen und entwerfen](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/9.jpg)
Neuen Algorithmus verstehen
Was tut der Algorithmus mit diesen Beispieldaten?
![Page 10: Programmiermethodik Übung 6 Methoden verstehen und entwerfen](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062307/55204d6749795902118bca42/html5/thumbnails/13.jpg)
Hausaufgabe
• Auf der Seite der Veranstaltung im Netz
– Zwei Schleifendurchläufe des Zetteltest– Methode Tuer.sprengen()