07-car/README_de.md
github-classroom[bot] 6451266878
Initial commit
2024-11-13 21:02:29 +00:00

1.8 KiB

IF.03.22 POSE - Procedural Programming

Aufgabe: Car - Abstract Data Type

English version

Es soll ein abstrakter Datentyp Car implementiert werden, welcher einfache Grundfunktionalitäten eines Autos realisiert.

Beispiel

Die Codesequenz um ein Auto aus einem Autoabstellplatz zu bekommen und auf 100 km/h zu beschleunigen wäre folgendermaßen:

Car c = get_char(JEEP);
if (get_color(c) == BLACK) {
  set_acceleration_rate(c, 3);
  while (get_speed(c) < 100)
    accelerate(c);
} else {
  printf("I only drive black cars!")
}

Aufgabe

  • Definieren Sie zwei enums CarType und Color.
  • Machen Sie eine forward-Deklaration für den Car, damit die Prototypen im h-file vom Compiler akzeptiert werden.
  • Erstellen Sie minimale Leerimplementierungen für alle erforderlichen Funktionen. Damit müsste das Gesamtprojekt bauen.
  • Definieren Sie das struct aus der forward-Deklaration.
  • Erstellen Sie lokale (nur im File car.cpp) Variablen für alle erforderlichen Autos.
  • Erstellen Sie ein lokales Array car_park in welchem alle Autos abgespeichert werden können.
  • Schreiben Sie ein Programm in Datei car_main_driver.c, dass alle Autos, welche in car.cpp definiert sind, um die Wette fahren lässt.
    • Ausbaustufe 1: Holen Sie sich alle Autos aus car.cpp und geben Sie diese untereinander im Terminal aus.
      Symbolisieren Sie die Autos durch deren Anfangsbuchstaben und eine laufende Nummer.
    • Ausbaustufe 2: Lassen Sie die Autos nun "fahren", indem Sie in jeder Runde die Beschleunigung zufällig für jedes Auto setzen und aufgrund der daraus resultierenden Geschwindigkeit das Auto entsprechend nach rechts setzen.
      Das Rennen soll abgebrochen werden, sobald ein Auto das Ziel (den rechten Bildschirmrand) erreicht hat.

Achtung: Die Geschwindingkeit wird in km/h, die Beschleunigung in m/s angegeben!