Menu
Coddy logo textTech

Enum Tanımlama ve Kullanma

Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 56 / 63.

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ın asıl parladığı yer burasıdır; kafa karıştırıcı sayılarla çalışmak yerine açıklayıcı isimler kullanırsınız.

Bir enum türünde değişken bildirmek için, diğer herhangi bir değişkeni bildirirken kullandığınız söz diziminin aynısını kullanırsınız:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Daha sonra, enum'ınızdaki adlandırılmış sabitleri kullanarak bu değişkenlere değer atayabilirsiniz:

today = WEDNESDAY;
weekend_day = SATURDAY;

Bunu ham sayılar kullanmakla karşılaştırın: today = 2; ve weekend_day = 5;. Enum versiyonu size hangi günle çalıştığınızı anında söyler, oysa sayılar her bir değerin neyi temsil ettiğini hatırlamanızı gerektirir. Bu, kodunuzu çok daha okunabilir hale getirir ve hata payını azaltır.

challenge icon

Görev

Kolay

Basit bir görev yönetim sistemi için enum değişkenlerinin tanımlanmasını ve kullanılmasını gösteren bir C programı oluşturun. Programınız şunları yapmalıdır:

  1. Aşağıdaki sabitleri tam olarak bu sırayla içeren TaskStatus adında bir enum tanımlayın:
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. Ana fonksiyonda (main function):
    • task1, task2 ve task3 adında enum TaskStatus tipinde üç değişken tanımlayın.
    • Her bir görevin durumunu temsil eden üç tam sayıyı (0, 1, 2 veya 3) girdiden okuyun.
    • Girdiye göre her bir görev değişkenine karşılık gelen enum değerlerini atayın:
      • Girdi 0 ise, PENDING atayın.
      • Girdi 1 ise, IN_PROGRESS atayın.
      • Girdi 2 ise, COMPLETED atayın.
      • Girdi 3 ise, CANCELLED atayın.
    • Her bir görevin durumunu enum değerlerini kullanarak tam olarak şu formatta yazdırın:
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Her bir durum kategorisinde kaç görev olduğunu sayın ve yazdırın:
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Aktif görevlerin (PENDING veya IN_PROGRESS olan görevler) toplam sayısını hesaplayın ve tam olarak şu formatta yazdırın: Active tasks: [count]

Bu meydan okuma, enum değişkenlerinin ham sayılar yerine anlamlı isimler kullanarak kodu nasıl daha okunabilir hale getirdiğini göstermektedir. Enum değişkenlerini tanımlama, girdiye dayalı enum değerleri atama, karşılaştırmalarda enum sabitlerini kullanma ve enum değerleriyle hesaplamalar yapma pratiği yapacaksınız.

Kopya kağıdı

Bir enum türünde değişkenler bildirmek için, diğer herhangi bir değişkeni bildirmekle aynı sözdizimini kullanın:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Enum'ınızdaki adlandırılmış sabitleri kullanarak enum değişkenlerine değerler atayın:

today = WEDNESDAY;
weekend_day = SATURDAY;

Ham sayılar yerine enum isimlerini kullanmak, kodu daha okunabilir ve hataya daha az eğilimli hale getirir. today = WEDNESDAY; ile today = 2; ifadelerini karşılaştırın - enum versiyonu hangi günle çalıştığınızı anında gösterir.

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.

Logic & Flow bölümündeki tüm dersler