Menu
Coddy logo textTech

Özet: Point Manager

Coddy'nin C Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 11 / 61.

challenge icon

Görev

Kolay

2B bir koordinatı yöneten eksiksiz bir Point modülü oluşturalım. Bu tekrar çalışması, struct'ları nesneler gibi ele alma konusunda öğrendiğin her şeyi bir araya getiriyor: durumu değiştirmek için işaretçileri ve salt okunur işlemler için const işaretçileri kullanmak.

Üç dosya oluşturacaksın:

  • point.h: İki tamsayı üyesi olan bir Point struct'ı tanımla: x ve y. Ayrıca yöntem gibi davranan iki işlev bildir:
    • point_move: Bir Point işaretçisiyle birlikte iki tamsayı (dx ve dy) alır ve bu değerleri x ile y'ye ekleyerek noktanın konumunu değiştirir
    • point_print: Bir const Point işaretçisi alır ve koordinatlarını görüntüler (bu işlev noktayı değiştirmemelidir)
    POINT_H sembolüyle include guard kullan.
  • point.c: Her iki işlevi de uygula. Hangi işlevin noktayı değiştirmek için normal bir işaretçiye, hangisinin değişiklik yapmadan güvenli bir şekilde okumak için const işaretçiye ihtiyaç duyduğunu dikkatlice düşün.
  • main.c: Bir Point oluştur, onu hareket ettir ve farklı aşamalardaki konumunu görüntüle.

Dört tamsayı girdisi alacaksın: başlangıç x, başlangıç y, dx değeri (yatay hareket miktarı) ve dy değeri (dikey hareket miktarı).

Ana dosyanda, başlangıç koordinatlarıyla bir Point başlat, başlangıç konumunu yazdır, verilen miktarlar kadar hareket ettir ve ardından yeni konumunu yazdır.

point_print işlevi şu biçimde çıktı vermelidir:

Point: ({x}, {y})

Örneğin girdiler 3, 5, 2 ve -1 olduğunda çıktı şöyle olur:

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

Kendin dene

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

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

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi