Menu
Coddy logo textTech

Podsumowanie: menedżer punktów

Część sekcji Programowanie obiektowe ścieżki C w Coddy. Lekcja 11 z 61.

challenge icon

Wyzwanie

Łatwy

Zbudujmy kompletny moduł Point, który zarządza współrzędnymi 2D. To podsumowujące wyzwanie łączy wszystko, czego nauczyłeś się o traktowaniu struktur jak obiektów: używaniu wskaźników do modyfikowania stanu oraz wskaźników const do operacji tylko do odczytu.

Utworzysz trzy pliki:

  • point.h: Zadeklaruj strukturę Point z dwoma składowymi typu całkowitego: x i y. Zadeklaruj też dwie funkcje pełniące rolę metod:
    • point_move: przyjmuje wskaźnik do Point oraz dwie liczby całkowite (dx i dy) i przesuwa punkt, dodając te wartości do x i y
    • point_print: przyjmuje wskaźnik const do Point i wyświetla jego współrzędne (ta funkcja nie powinna modyfikować punktu)
    Użyj strażników nagłówka z symbolem POINT_H.
  • point.c: Zaimplementuj obie funkcje. Zastanów się, która funkcja potrzebuje zwykłego wskaźnika (aby modyfikować punkt), a która używa wskaźnika const (aby bezpiecznie odczytywać dane bez ich modyfikowania).
  • main.c: Utwórz Point, przesuwaj go i wyświetlaj jego położenie na różnych etapach.

Otrzymasz cztery liczby całkowite: początkową wartość x, początkową wartość y, wartość dx (odległość przesunięcia w poziomie) oraz wartość dy (odległość przesunięcia w pionie).

W pliku głównym zainicjalizuj Point początkowymi współrzędnymi, wyświetl jego początkowe położenie, przesuń go o podane wartości, a następnie wyświetl jego nowe położenie.

Funkcja point_print powinna wyświetlać wynik w następującym formacie:

Point: ({x}, {y})

Na przykład dla danych wejściowych 3, 5, 2 i -1 wynikiem będzie:

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

Spróbuj swoich sił

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

int main() {
    // Wczytaj wartości wejściowe
    int x, y, dx, dy;
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &dx);
    scanf("%d", &dy);
    
    // TODO: Utwórz Point o początkowych współrzędnych (x, y)
    
    // TODO: Wypisz początkową pozycję za pomocą point_print
    
    // TODO: Przesuń punkt o (dx, dy) za pomocą point_move
    
    // TODO: Wypisz nową pozycję za pomocą point_print
    
    return 0;
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator C online