Menu
Coddy logo textTech

Özet: Typedef ve Enum Pratiği

Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 60 / 63.

challenge icon

Görev

Kolay

enum ve typedef yapılarını birleştirerek basit bir geometrik şekil hesaplayıcısı oluşturan bir C programı yaz. Programın şunları yapmalıdır:

  1. Aşağıdaki sabitleri tam olarak bu sırayla içeren, enum adlı bir ShapeType tanımla:
    • CIRCLE
    • RECTANGLE
    • TRIANGLE
  2. typedef için Shape adlı bir tür takma adı oluşturmak üzere enum ShapeType kullan
  3. Şunları yapan calculateArea adlı bir fonksiyon yaz:
    • Shape adlı bir shape parametresi alır
    • float ve dimension1 adlı iki dimension2 parametresi alır
    • Hesaplanan alanı temsil eden bir float döndürür
    • Şekil türüne göre alanı hesaplamak için bir switch deyimi kullanır:
      • CIRCLE için: alan = 3.14159 * dimension1 * dimension1 (dimension1 yarıçaptır)
      • RECTANGLE için: alan = dimension1 * dimension2 (uzunluk × genişlik)
      • TRIANGLE için: alan = 0.5 * dimension1 * dimension2 (0.5 × taban × yükseklik)
  4. Şunları yapan printShapeInfo adlı bir fonksiyon yaz:
    • Shape adlı bir shape parametresi alır
    • Hiçbir şey döndürmez (void)
    • Şekil bilgilerini yazdırmak için bir switch deyimi kullanır:
      • CIRCLE için: Shape: Circle yazdırır
      • RECTANGLE için: Shape: Rectangle yazdırır
      • TRIANGLE için: Shape: Triangle yazdırır
  5. main fonksiyonunda:
    • Shape adlı selectedShape türünde bir değişken tanımla
    • float ve dim1 adlı iki dim2 değişkeni tanımla
    • Girdiden üç değer oku: şekil seçimini temsil eden bir tamsayı (0, 1 veya 2) ve boyutlar için iki float değeri
    • Girdiye göre ilgili enum değerini selectedShape değişkenine ata
    • Boyut değerlerini dim1 ve dim2 değişkenlerine ata
    • printShapeInfo fonksiyonunu selectedShape ile çağır
    • Boyutları tam olarak şu biçimde yazdır: Dimensions: [dim1] [dim2]
    • calculateArea fonksiyonunu çağırarak alanı hesapla
    • Hesaplanan alanı tam olarak 2 ondalık basamakla şu biçimde yazdır: Area: [area]
    • Hesaplanan alana göre şekil kategorisini belirle ve yazdır:
      • Alan 10.0'dan küçükse: Category: Small yazdır
      • Alan 10.0 ile 50.0 arasındaysa (sınırlar dahil): Category: Medium yazdır
      • Alan 50.0'dan büyükse: Category: Large yazdır

Bu görev, enum ve typedef yapılarının birlikte kullanılmasının güçlü birleşimini gösterir. typedef, tekrar tekrar Shape yazmak yerine temiz ve okunabilir bir tür adı olan enum ShapeType oluşturur. enum sabitleri, her durumun neyi temsil ettiğini açıkça göstererek switch deyimlerinin kendi kendini belgelemesini sağlar. Her iki kavramı tanımlamayı, bunları fonksiyon parametrelerinde kullanmayı ve enum değerlerine bağlı mantık uygulamayı deneyimleyeceksin.

Kendin dene

#include <stdio.h>

// YAPILACAK: ShapeType enum yapısını ve typedef'i burada tanımlayın

// YAPILACAK: calculateArea fonksiyonunu burada uygulayın

// YAPILACAK: printShapeInfo fonksiyonunu burada uygulayın

int main() {
    // Girdiyi oku
    int shapeChoice;
    float dim1, dim2;
    scanf("%d", &shapeChoice);
    scanf("%f", &dim1);
    scanf("%f", &dim2);
    
    // YAPILACAK: Kodunuzu aşağıya yazın
    // selectedShape değişkenini bildirin ve shapeChoice'a göre atama yapın
    // printShapeInfo fonksiyonunu çağırın
    // Boyutları yazdırın
    // Alanı hesaplayın ve yazdırın
    // Kategoriyi belirleyin ve yazdırın
    
    return 0;
}

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi