Menu
Coddy logo textTech

Özet: Point Manager

Coddy'nin C Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 11 / 61.

challenge icon

Görev

Kolay

2D koordinatları yöneten eksiksiz bir Point modülü oluşturalım. Bu tekrar görevi, yapıları (structs) nesne gibi ele alma konusunda öğrendiğiniz her şeyi bir araya getiriyor; durumu değiştirmek için işaretçileri (pointers) ve salt okunur işlemler için const işaretçileri kullanacaksınız.

Üç dosya oluşturacaksınız:

  • point.h: İki tam sayı üyesi olan bir Point yapısı bildirin: x ve y. Ayrıca metot gibi davranan iki fonksiyon bildirin:
    • point_move — bir Point işaretçisi ile birlikte iki tam sayı (dx ve dy) alır ve bu değerleri x ve y'ye ekleyerek noktanın konumunu kaydırır.
    • point_print — bir const Point işaretçisi alır ve koordinatlarını görüntüler (bu fonksiyon noktayı değiştirmemelidir).
    POINT_H sembolü ile include guard (ekleme koruması) kullanın.
  • point.c: Her iki fonksiyonu da uygulayın. Hangi fonksiyonun normal bir işaretçiye (noktayı değiştirmek için) ve hangisinin const bir işaretçiye (değişiklik yapmadan güvenli bir şekilde okumak için) ihtiyaç duyduğunu dikkatlice düşünün.
  • main.c: Bir Point oluşturun, onu hareket ettirin ve farklı aşamalardaki konumunu görüntüleyin.

Dört tam sayı girişi alacaksınız: başlangıç x, başlangıç y, dx değeri (yatayda hareket miktarı) ve dy değeri (dikeyde hareket miktarı).

Ana dosyanızda (main file), başlangıç koordinatlarıyla bir Point başlatın, başlangıç konumunu yazdırın, verilen miktarlarda hareket ettirin ve ardından yeni konumunu yazdırın.

point_print fonksiyonu şu formatta çıktı vermelidir:

Point: ({x}, {y})

Örneğin, 3, 5, 2 ve -1 girişleri için çıktı şöyle olacaktır:

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

Kendin dene

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

int main() {
    // Giriş değerlerini oku
    int x, y, dx, dy;
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &dx);
    scanf("%d", &dy);
    
    // TODO: (x, y) başlangıç koordinatlarıyla bir Point oluşturun
    
    // TODO: point_print kullanarak başlangıç konumunu yazdırın
    
    // TODO: point_move kullanarak noktayı (dx, dy) kadar hareket ettirin
    
    // TODO: point_print kullanarak yeni konumu yazdırın
    
    return 0;
}

Object Oriented Programming bölümündeki tüm dersler