Menu
Coddy logo textTech

Dikdörtgen Uygulaması

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

challenge icon

Görev

Kolay

Tıpkı Circle'da yaptığımız gibi, temel Shape yapısını (struct) içine yerleştiren bir başka somut şekil olan Rectangle'ı uygulayarak Shape Drawer projesini oluşturmaya devam edelim.

Mevcut projenizin üzerine inşa ederek, şu dosyalar aracılığıyla dikdörtgen işlevselliğini ekleyeceksiniz:

  • shape.h: Önceki derslerdeki DrawFunc ve AreaFunc fonksiyon göstericisi (function pointer) türlerini içeren temel Shape arayüzünüzü koruyun.
  • circle.h ve circle.c: Önceki dersteki Circle uygulamanızı koruyun.
  • rectangle.h: Rectangle yapınızı burada tanımlayın. Bir dikdörtgen, Shape yapısını ilk üyesi olarak içine yerleştirir ve width ile height alanlarını (her ikisi de double) ekler. Genişlik ve yükseklik parametrelerini alan ve değer olarak bir Rectangle döndüren create_rectangle yapıcı (constructor) fonksiyonunu bildirin.
  • rectangle.c: Dikdörtgene özgü davranışı uygulayın:
    • draw_rectangleDrawing Rectangle with width: X.XX and height: X.XX yazdırır (her iki değer de 2 ondalık basamakla gösterilir)
    • area_rectangle — genişlik × yükseklik değerini döndürür
    • create_rectangle — bir Rectangle başlatır, içine yerleştirilmiş Shape'in fonksiyon göstericilerini dikdörtgen fonksiyonlarına bağlar, boyutları ayarlar ve dikdörtgeni döndürür
  • main.c: Her iki şeklin de aynı arayüz üzerinden çalıştığını gösterin. İki girdi okuyun: bir dikdörtgen için genişlik ve yükseklik. Yapıcınızı kullanarak bir dikdörtgen oluşturun, ardından içine yerleştirilmiş Shape'in fonksiyon göstericileri aracılığıyla hem draw hem de area fonksiyonlarını çağırın. Alanı 2 ondalık basamakla yazdırın.

Programınız iki girdi alacaktır: width (genişlik) ve height (yükseklik) değerleri (kayan noktalı sayılar olarak).

Girdiler 4.0 ve 3.0 olduğunda örnek çıktı:

Drawing Rectangle with width: 4.00 and height: 3.00
Area: 12.00

Girdiler 7.5 ve 2.5 olduğunda örnek çıktı:

Drawing Rectangle with width: 7.50 and height: 2.50
Area: 18.75

Tıpkı Circle'da olduğu gibi, Rectangle da Shape'i ilk üyesi olarak içine yerleştirir ve fonksiyon göstericilerine bu yerleşik üye aracılığıyla erişmenize olanak tanır. Bu tutarlı model, polimorfizmi (çok biçimlilik) mümkün kılan şeydir; her iki şekil de Shape arayüzleri aracılığıyla tek tip olarak ele alınabilir. Tüm başlık (header) dosyalarında include guard kullanmayı unutmayın.

Kendin dene

#include <stdio.h>
#include "shape.h"
#include "rectangle.h"

int main() {
    double width, height;
    scanf("%lf", &width);
    scanf("%lf", &height);
    
    // TODO: create_rectangle(width, height) kullanarak bir dikdörtgen oluşturun
    
    // TODO: Gömülü Shape'in fonksiyon göstericisi aracılığıyla draw'u çağırın
    
    // TODO: Gömülü Shape'in fonksiyon göstericisi aracılığıyla area'yı çağırın
    // TODO: Alanı 2 ondalık basamakla yazdırın: "Area: %.2f\n"
    
    return 0;
}

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