Title | Praktikum 5 PAD 2020/2021 |
---|---|
Author | Leonhard AB |
Course | Programmieren / Algorithmen und Datenstrukturen |
Institution | Hochschule Darmstadt |
Pages | 4 |
File Size | 240.5 KB |
File Type | |
Total Downloads | 92 |
Total Views | 129 |
Praktikum 5 PAD 2020/2021...
Hochschule Darmstadt Fachbereich Informatik
Programmieren, Algorithmen & Datenstrukturen I
WS2020/21 Prof. Dr. Andreas Müller
PAD 1 – Aufgabenblatt 5 Ziele: Vertiefung der Konzepte Objektorientierung, Rekursion, Funktionen, Datenstrukturen und Sortieralgorithmen. Allgemeine Vorgaben:
Kommen Sie unbedingt vorbereitet ins Praktikum. Im Praktikum ist nur Zeit für die Abnahme. Wenn Sie sich unsicher sind oder an einer Stelle Unterstützung brauchen, dann holen Sie sich vorher Hilfe: o besuchen Sie z.B. das Offene Labor o suchen Sie im Internet nach Lösungsansätzen zu Ihrem Problem o diskutieren Sie Lösungsansätze mit Kommilitonen Üben Sie vorab auch die Präsentation Ihres Programms mit einer Erklärung mit Ihrem Partner. Achten Sie bei allen Aufgaben (auch in den künftigen) auf: o die Vorgaben der Coding Richtlinie (siehe Moodle) o saubere Formatierung und sinnvolle Kommentierung o selbsterklärende Eingabedialoge o sinnvolle Auswahl der verwendeten Datentypen o sinnvolle Strukturierung mit Funktionen
Aufgabe 17: Minesweeper Aufgabe 17a: Einführung Objektorientierung Wenn Sie in Ihrem Programm Minesweeper noch keine Objekte verwenden, überarbeiten Sie Ihr Programm entsprechend. Zumindest das Spielfeld muss jetzt ein geeignetes Objekt sein, das die Methoden „printField“ fürs Ausdrucken sowie „sweepMine“ für das Minensuchen enthält. (Ihre Methoden dürfen natürlich auch anders heißen.)
Aufgabe 17b: Benachbarte Felder auflösen Wenn Sie ein komplett leeres Feld ('_') aufdecken, das nicht an eine Mine grenzt, dann müssen alle benachbarten Felder aufgedeckt werden, die keine Mine enthalten. Gibt es in der Nachbarschaft wiederum ein komplett leeres Feld ohne Mine, dann müssen ausgehend von diesem Feld wiederum alle Nachbarfelder aufgedeckt werden. Hinweis: Sie können dafür eine rekursive Funktion implementieren. Eine rekursive Funktion ist eine Funktion die sich selbst aufruft. Ein Beispiel für eine rekursive Implementierung ist die Fakultät. // Beispiel fuer Rekursion – Fakultaet int fakultaet(int num){ if(num == 0){ return 1; } return fakultaet(num-1)*num; } … cout...