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.
Noch keine Stimmen abgegeben
Noch keine Kommentare

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.