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.