Menu
Coddy logo textTech

Récapitulatif : Point Manager

Fait partie de la section Object Oriented Programming du Journey C de Coddy — leçon 11 sur 61.

challenge icon

Défi

Facile

Construisons un module Point complet qui gère une coordonnée 2D. Ce défi récapitulatif rassemble tout ce que vous avez appris sur le traitement des structures comme des objets — en utilisant des pointeurs pour modifier l'état et des pointeurs const pour les opérations en lecture seule.

Vous allez créer trois fichiers :

  • point.h : Déclarez une structure Point avec deux membres entiers : x et y. Déclarez également deux fonctions qui agissent comme des méthodes :
    • point_move — prend un pointeur vers Point ainsi que deux entiers (dx et dy), et déplace la position du point en ajoutant ces valeurs à x et y
    • point_print — prend un pointeur const vers Point et affiche ses coordonnées (cette fonction ne doit pas modifier le point)
    Utilisez des gardes d'inclusion avec le symbole POINT_H.
  • point.c : Implémentez les deux fonctions. Réfléchissez bien à quelle fonction a besoin d'un pointeur régulier (pour modifier le point) et laquelle utilise un pointeur const (pour lire en toute sécurité sans modification).
  • main.c : Créez un Point, déplacez-le et affichez sa position à différentes étapes.

Vous recevrez quatre entrées entières : le x initial, le y initial, la valeur dx (quantité de déplacement horizontal) et la valeur dy (quantité de déplacement vertical).

Dans votre fichier principal, initialisez un Point avec les coordonnées de départ, affichez sa position initiale, déplacez-le des quantités données, puis affichez sa nouvelle position.

La fonction point_print doit produire une sortie dans ce format :

Point: ({x}, {y})

Par exemple, avec les entrées 3, 5, 2, et -1, la sortie serait :

Point: (3, 5)
Point: (5, 4)

Essayez vous-même

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

int main() {
    // Lire les valeurs d'entrée
    int x, y, dx, dy;
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &dx);
    scanf("%d", &dy);
    
    // TODO: Créer un Point avec les coordonnées initiales (x, y)
    
    // TODO: Afficher la position initiale en utilisant point_print
    
    // TODO: Déplacer le point de (dx, dy) en utilisant point_move
    
    // TODO: Afficher la nouvelle position en utilisant point_print
    
    return 0;
}

Toutes les leçons de Object Oriented Programming