Menu
Coddy logo textTech

Resumen: Point Manager

Parte de la sección Programación Orientada a Objetos del Journey de C de Coddy. Lección 11 de 61.

challenge icon

Desafío

Fácil

Construyamos un módulo completo Point que administre una coordenada 2D. Este desafío de repaso reúne todo lo que has aprendido sobre tratar las estructuras como objetos: usar punteros para modificar el estado y punteros const para operaciones de solo lectura.

Crearás tres archivos:

  • point.h: Declara una estructura Point con dos miembros enteros: x y y. Declara también dos funciones que actúan como métodos:
    • point_move: recibe un puntero a Point junto con dos enteros (dx y dy), y desplaza la posición del punto sumando estos valores a x y y
    • point_print: recibe un puntero const a Point y muestra sus coordenadas (esta función no debe modificar el punto)
    Usa protectores de inclusión con el símbolo POINT_H.
  • point.c: Implementa ambas funciones. Piensa detenidamente qué función necesita un puntero normal (para modificar el punto) y cuál utiliza un puntero const (para leer de forma segura sin modificar).
  • main.c: Crea un Point, desplázalo y muestra su posición en diferentes etapas.

Recibirás cuatro entradas enteras: la x inicial, la y inicial, el valor de dx (cantidad que se moverá horizontalmente) y el valor de dy (cantidad que se moverá verticalmente).

En tu archivo principal, inicializa un Point con las coordenadas iniciales, muestra su posición inicial, desplázalo las cantidades indicadas y después muestra su nueva posición.

La función point_print debe producir una salida con este formato:

Point: ({x}, {y})

Por ejemplo, con las entradas 3, 5, 2 y -1, la salida sería:

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

Pruébalo tú mismo

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

int main() {
    // Lee los valores de entrada
    int x, y, dx, dy;
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &dx);
    scanf("%d", &dy);
    
    // TODO: Crea un Point con las coordenadas iniciales (x, y)
    
    // TODO: Imprime la posición inicial usando point_print
    
    // TODO: Mueve el punto por (dx, dy) usando point_move
    
    // TODO: Imprime la nueva posición usando point_print
    
    return 0;
}

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de C online