Menu
Coddy logo textTech

Récapitulatif : Point Manager

Fait partie de la section Programmation Orientée Objet 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 fait de traiter les structures comme des objets : utiliser 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éclarer une structure Point avec deux membres entiers : x et y. Déclarer également deux fonctions qui jouent le rôle de 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)
    Utiliser des gardes d'inclusion avec le symbole POINT_H.
  • point.c : implémenter les deux fonctions. Réfléchissez attentivement à la fonction qui a besoin d'un pointeur ordinaire (pour modifier le point) et à celle qui utilise un pointeur const (pour lire sans risque de modification).
  • main.c : créer un Point, le déplacer et afficher sa position à différentes étapes.

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

Dans votre fichier principal, initialisez un Point avec les coordonnées de départ, affichez sa position initiale, déplacez-le selon les valeurs 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 Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur C en ligne