Menu
Coddy logo textTech

Zusammenfassung: Point Manager

Teil des Abschnitts Objektorientierte Programmierung der C-Journey von Coddy. Lektion 11 von 61.

challenge icon

Aufgabe

Einfach

Lass uns ein vollständiges Point-Modul erstellen, das eine 2D-Koordinate verwaltet. Diese Wiederholungsaufgabe fasst alles zusammen, was du über die Behandlung von Structs als Objekte gelernt hast: die Verwendung von Zeigern zum Ändern des Zustands und von const-Zeigern für schreibgeschützte Operationen.

Du wirst drei Dateien erstellen:

  • point.h: Deklariere ein Point-Struct mit zwei Integer-Mitgliedern: x und y. Deklariere außerdem zwei Funktionen, die als Methoden fungieren:
    • point_move: erhält einen Zeiger auf Point zusammen mit zwei Integern (dx und dy) und verschiebt die Position des Punkts, indem diese Werte zu x und y addiert werden
    • point_print: erhält einen const-Zeiger auf Point und zeigt dessen Koordinaten an (diese Funktion darf den Punkt nicht ändern)
    Verwende Include-Guards mit dem Symbol POINT_H.
  • point.c: Implementiere beide Funktionen. Überlege genau, welche Funktion einen regulären Zeiger benötigt (um den Punkt zu ändern) und welche einen const-Zeiger verwendet (um sicher zu lesen, ohne Änderungen vorzunehmen).
  • main.c: Erstelle einen Point, bewege ihn und zeige seine Position in verschiedenen Phasen an.

Du erhältst vier Integer-Eingaben: das anfängliche x, das anfängliche y, den dx-Wert (Menge der horizontalen Bewegung) und den dy-Wert (Menge der vertikalen Bewegung).

Initialisiere in deiner Hauptdatei einen Point mit den Anfangskoordinaten, gib seine anfängliche Position aus, bewege ihn um die angegebenen Werte und gib anschließend seine neue Position aus.

Die Funktion point_print sollte dieses Format ausgeben:

Point: ({x}, {y})

Bei den Eingaben 3, 5, 2 und -1 würde die Ausgabe beispielsweise folgendermaßen aussehen:

Point: (3, 5)
Point: (5, 4)
REQUIRED OUTPUT FORMAT: [Your translated content here]

Probier es selbst

#include <stdio.h>
#include "point.h"

int main() {
    // Eingabewerte lesen
    int x, y, dx, dy;
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &dx);
    scanf("%d", &dy);
    
    // TODO: Erstelle einen Point mit den Anfangskoordinaten (x, y)
    
    // TODO: Gib die Anfangsposition mit point_print aus
    
    // TODO: Bewege den Punkt um (dx, dy) mit point_move
    
    // TODO: Gib die neue Position mit point_print aus
    
    return 0;
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-C-Compiler