C++ Programmieraufgaben

Vorgestellt werden mehrere Aufgaben, die als vierwöchige Projektarbeit zu lösen sind. Programmiert werden soll entweder im Sinne der strukturierten Programmierung oder (besser) im Sinne der objekt-orientierten Programmierung.

Einordnung des Artikels

Allgemeines zu den Programmieraufgaben

  • Zu bearbeiten ist eine der unten genannten und verlinkten Programmieraufgaben.
  • Die Aufgaben können in Zweier-Gruppen bearbeitet werden, wobei eine gemeinsame Ausarbeitung abzugeben ist.
  • Die Bearbeitungszeit beträgt 4 Wochen.
  • Die Aufgaben sollen im Sinne der strukturierten oder objekt-orientierten Programmierung gelöst werden.
  • Abzugeben sind:
    • Sämtliche Quelltexte als Code::Blocks Projekt (.zip-Datei des Projekt-Ordners).
    • Die Quelltexte sind ausführlich zu kommentieren.
    • Die Beschreibung der Vorgehensweise beim Programm-Entwurf.
    • Die Lösungen zu den Teil-Aufgaben, die nicht als Programmieraufgaben formuliert sind.

Die Programmieraufgaben

  1. C++ Programmieraufgabe: Das Rucksackproblem
  2. C++ Programmieraufgabe: Das Travelling Salesman Problem (TSP)
  3. C++ Programmieraufgabe: Auswertung einer Fahrradtour
  4. C++ Programmieraufgabe: Simulation einer Heizung und eines Heizungsreglers
  5. C++ Programmieraufgabe: Matching
  6. C++ Programmieraufgabe: Wettermodell

Lernziele

Das Lesen von Quelltexten und deren Beschreibung führt leicht dazu, dass man sich selbst betrügt: alle Schritte erscheinen völlig einleuchtend und es ist schwer vorstellbar, dass man ähnliche Aufgaben nicht selber lösen kann. Doch gerade der Programmier-Anfänger macht oft die schmerzlichen Erfahrungen:

  • Man hat die genauen Regeln der Sprache doch nicht im Kopf und muss bei der Verwendung beinahe aller Sprachkonstrukte nachschlagen.
  • Die Entwicklungsumgebung macht mehr Schwierigkeiten als dass sie beim Entwickeln eines Programmes hilft.
  • Man unterschätzt die Vorarbeit des Programmierens: ein Algorithmus sollte immer erst trocken (mit Pseudocode) entwickelt werden, bevor man ihn in eine Programmiersprache übersetzt.
  • Für die Aufteilung der Aufgaben eines Programmes in Funktionen und Klassen gibt es eine Unzahl von Möglichkeiten: man weiß eigentlich nie, welche Variante man wählen soll.

Diese Liste typischer Einsteiger-Schwierigkeiten könnte man beliebig fortsetzen. Es gehört daher zu jedem Anfänger-Kurs in Programmierung, einmal ein größeres Projekt zu bewältigen, um die Arbeitsweise eines Programmierers besser zu verstehen.

Die hier vorgestellten Aufgaben dienen dazu:

  • Sich selbst zu disziplinieren, um die folgenden Aufgaben möglichst gut voneinander zu trennen:
    • Kennenlernen der Entwicklungsumgebung
    • Entwickeln eines Algorithmus im Pseudocode
    • syntaktisch fehlerfreie Anwendung der Programmiersprache.
  • Die im Theorie-Teil entwickelten Konzepte (von fundamentalen Datentypen über Kontrollstrukturen bis zur strukturierten beziehungsweise objekt-orientierten Programmierung) anzuwenden.
  • Insbesondere soll der Umgang mit Vektoren (beziehungsweise Feldern) und Schleifen gründlich eingeübt werden.
  • Die Aufgaben sollen dazu anregen, selbständig in der Dokumentation zu stöbern — der Theorie-Teil hat nicht alle Konzepte abgehandelt und womöglich finden sich in der Dokumentation weitere hilfreiche Konstrukte, die man zur Lösung der Aufgaben sinnvoll einsetzen kann.
Alle Kommentare
Durch die Nutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Außerdem werden teilweise auch Cookies von Diensten Dritter gesetzt. Genauere Informationen finden Sie in unserer Datenschutzerklärung sowie im Impressum.