Menu
Coddy logo textTech

Enum Tanımlama ve Kullanma

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

Artık bir enum tanımladığınıza göre, bu enum türünde değişkenler oluşturabilir ve onlara anlamlı değerler atayabilirsiniz. Enum'lar tam da burada öne çıkar: kafa karıştırıcı sayılarla çalışmak yerine açıklayıcı adlar kullanırsınız.

Bir enum türünde değişken bildirmek için diğer tüm değişkenleri bildirmekte kullandığın söz diziminin aynısını kullanırsın:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Ardından bu değişkenlere enum'unuzdaki adlandırılmış sabitleri kullanarak değer atayabilirsiniz:

today = WEDNESDAY;
weekend_day = SATURDAY;

Bunu ham sayıları kullanmayla karşılaştırın: today = 2; ve weekend_day = 5;. Enum sürümü, hangi günle çalıştığınızı size hemen söylerken sayılar, her değerin neyi temsil ettiğini hatırlamanızı gerektirir. Bu, kodunuzu çok daha okunabilir ve hatalara daha az yatkın hâle getirir.

challenge icon

Görev

Kolay

Basit bir görev yönetim sistemi için enum değişkenlerinin bildirimini ve kullanımını gösteren bir C programı oluştur. Programın şunları yapmalıdır:

  1. Aşağıdaki sabitleri tam olarak bu sırayla içeren TaskStatus adlı bir enum tanımla:
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. main işlevinde:
    • enum TaskStatus türünde, task1, task2 ve task3 adlı üç değişken tanımla
    • Her görevin durumunu temsil eden üç tam sayıyı (0, 1, 2 veya 3) girdiden oku
    • Girilen değere göre her görev değişkenine karşılık gelen enum değerini ata:
      • Girdi 0 ise PENDING ata
      • Girdi 1 ise IN_PROGRESS ata
      • Girdi 2 ise COMPLETED ata
      • Girdi 3 ise CANCELLED ata
    • Her görevin durumunu enum değerlerini kullanarak tam olarak şu biçimde yazdır:
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Her durum kategorisinde kaç görev olduğunu say ve yazdır:
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Toplam etkin görev sayısını (ya PENDING ya da IN_PROGRESS olan görevleri) hesapla ve tam olarak şu biçimde yazdır: Active tasks: [count]

Bu alıştırma, ham sayılar yerine anlamlı adlar kullanarak enum değişkenlerinin kodu nasıl daha okunabilir hâle getirdiğini gösterir. Enum değişkenlerini tanımlama, girdiye göre enum değerleri atama, karşılaştırmalarda enum sabitlerini kullanma ve enum değerleriyle hesaplamalar yapma pratiği yapacaksın.

Kendin dene

#include <stdio.h>

// TODO: TaskStatus enum yapısını burada tanımlayın

int main() {
    // Üç görev durumu için girişi oku
    int status1, status2, status3;
    scanf("%d", &status1);
    scanf("%d", &status2);
    scanf("%d", &status3);
    
    // TODO: Üç adet enum TaskStatus değişkeni bildirin (task1, task2, task3)
    
    // TODO: Girişe göre enum değerlerini atayın
    
    // TODO: Görev durumlarını yazdırın
    
    // TODO: Her kategorideki görevleri sayın
    
    // TODO: Aktif görev sayısını hesaplayın ve yazdırın
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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

Kendi başına pratik yap: Online C derleyicisi