close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

6. Praktikum - Hochschule Darmstadt

EinbettenHerunterladen
Hochschule Darmstadt
Programmieren, Algorithmen + Datenstrukturen I
Andreas Müller
Wintersemester 2014/15
6. Praktikum
Umsetzung von Rekursion und Einstieg in OOP
16.12.2014
Aufgabe 16a: Türme von Hanoi
Sofern Sie es noch nicht implementiert haben – erweitern Sie Ihr Programm Türme von
Hanoi so, dass der Nutzer eingibt wie hoch der Stapel zu Beginn ist und am Ende die Anzahl
der Züge ausgegeben wird.
Aufgabe 16b [optional]:
Implementieren Sie eine einfache Grafik die nach jedem Zug die Scheiben-Stapel ausgibt.
Die Grafik soll optional vom Nutzer nach Abfrage – Wollen Sie eine grafische Ausgabe? –
eingeschaltet werden können. Vor der Ausgabe des nächsten Zuges soll das Programm auf
eine Tastatureingabe warten.
Beispiel für Turmhöhe 4 zu Beginn:
1 0 0
2 0 0
3 0 0
4 0 0
Aufgabe 17: Fibonacci-Zahlen
Schreiben Sie ein rekursives Programm, das die Fibonacci-Zahlenfolge auf dem Bildschirm
ausgibt. Das Programm bekommt vom Nutzer die Zahl n übergeben, bis zu der es die
Fibonacci-Zahlen ermitteln soll. Das Programm soll am Ende die Anzahl der durchlaufenen
Rekursionen ausgeben. Wo finden Sie diese Größe in der Darstellung als Rekursionsbaum
aus der Vorlesung?
Aufgabe 18: Merge Sort
Implementieren Sie den Sortier-Algorithmus Merge-Sort aus dem Vorlesungsskript (d.h.
insbesondere Ihre persönliche Version der Funktion merge()) und vergleichen Sie ihn
durch dieselben Experimente wie zuvor mit den einfachen Sortier-Verfahren.
Aufgabe 19: Eine einfache Klasse point
In dieser Aufgabe soll eine einfache Klasse definiert und Objekte instantiiert werden:
•
Definieren Sie eine Klasse point, welche als Repräsentation eines Punktes in der
Ebene dient. Ein solcher Punkt kann durch 2 reelle Zahlen charakterisiert werden,
also die x- bzw. y-Koordinate.
•
Fügen Sie einen Konstruktor ohne Parameter hinzu, welcher die Koordinaten auf (0,
0) setzt.
•
Fügen Sie der Klasse eine Methode Display hinzu, welche die zwei Koordinaten
auf den Bildschirm schreibt.
•
Fügen Sie einen zweiten Konstruktor hinzu, welcher zwei floats als Parameter
hat und diese den Koordinaten zuweist.
Hochschule Darmstadt
Andreas Müller
Programmieren, Algorithmen + Datenstrukturen I
Wintersemester 2014/15
•
Schreiben Sie eine Methode MoveTo, welche zwei floats als Parameter hat und
diese Werte den Koordinaten des Punktes zuweist.
•
Schreiben Sie eine Methode Shift, mit welcher ein Punkt in x- und y-Richtung
verschoben werden kann.
Aufgabe 20a: Lineare Liste als OOP
Implementieren Sie eine Objekt-orientierte Variante der verketteten linearen Liste
„Ablage“ aus der Vorlesung.
●
Programmieren Sie zusätzlich eine Methode top, welche den Wert des obersten
Elements zurück gibt.
●
Wenden Sie dies an, indem sie n Zahlen auf eine Ablage legen und dann von dort in
einer anderen Ablage verstauen. Achten Sie darauf, dass in beiden Ablagen am
Ende die Zahlen in derselben Reihenfolge stehen. Achtung: Realisieren Sie dies
nicht durch eine zusätzliche Methode (allenfalls durch eine gewöhnliche Funktion),
d.h. benutzen Sie dazu die bereits bestehenden Methoden und eine Zwischenablage.
Greifen Sie also keinesfalls in die bestehenden Interna der Klasse ein.
Aufgabe 20b [optional]:
●
Programmieren Sie einen Mechanismus zur Sortierung der Liste nach der Größe des
Info-Elementes.
Hinweis:
Nutzen Sie die vorlesungsfreie Zeit zum Üben! Gute Übungen sind das
Implementieren und Nachvollziehen der Code-Snippets aus dem Vorlesungsskript –
oder aus dem Buch nach dem Sie bevorzugt lernen.
Schreiben Sie Ihre eigene C++ Quick Reference – am besten handschschriftlich – in
der Sie zu allen C++ Befehlen kleine Beispiele darstellen und eine Mini-Library mit
sinnvollen Code-Snippets für die Klausur anlegen.
Programmieren Sie eine alte Klausur, um ein Gefühl für die Komplexität der Aufgaben
und Ihren persönlichen Zeitbedarf zu bekommen.
Document
Kategorie
Internet
Seitenansichten
3
Dateigröße
81 KB
Tags
1/--Seiten
melden