Menu
CoddyTech

Rangkuman: Pengelola Point

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C di Coddy. Pelajaran 11 dari 61.

challenge icon

Tantangan

Mudah

Mari buat module Point lengkap yang mengelola koordinat 2D. Tantangan ulasan ini menggabungkan semua yang telah kamu pelajari tentang memperlakukan struct sebagai object: menggunakan pointer untuk mengubah state dan pointer const untuk operasi hanya-baca.

Kamu akan membuat tiga file:

  • point.h: Deklarasikan struct Point dengan dua anggota integer: x dan y. Deklarasikan juga dua fungsi yang berperan sebagai method:
    • point_move: menerima pointer ke Point beserta dua integer (dx dan dy), lalu menggeser posisi point dengan menambahkan nilai-nilai ini ke x dan y
    • point_print: menerima pointer const ke Point dan menampilkan koordinatnya (fungsi ini tidak boleh mengubah point)
    Gunakan include guard dengan simbol POINT_H.
  • point.c: Implementasikan kedua fungsi. Pikirkan dengan cermat fungsi mana yang memerlukan pointer biasa (untuk mengubah point) dan fungsi mana yang menggunakan pointer const (untuk membaca dengan aman tanpa melakukan perubahan).
  • main.c: Buat sebuah Point, pindahkan posisinya, lalu tampilkan posisinya pada tahap-tahap yang berbeda.

Kamu akan menerima empat input integer: x awal, y awal, nilai dx (jarak perpindahan horizontal), dan nilai dy (jarak perpindahan vertikal).

Di file utama, inisialisasi Point dengan koordinat awal, cetak posisi awalnya, pindahkan posisinya sejauh jumlah yang diberikan, lalu cetak posisi barunya.

Fungsi point_print harus menghasilkan output dengan format ini:

Point: ({x}, {y})

Misalnya, dengan input 3, 5, 2, dan -1, outputnya adalah:

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

Coba sendiri

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

int main() {
    // Baca nilai input
    int x, y, dx, dy;
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &dx);
    scanf("%d", &dy);
    
    // TODO: Buat Point dengan koordinat awal (x, y)
    
    // TODO: Cetak posisi awal menggunakan point_print
    
    // TODO: Geser titik sejauh (dx, dy) menggunakan point_move
    
    // TODO: Cetak posisi baru menggunakan point_print
    
    return 0;
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C online