Menu
Coddy logo textTech

Özet: Hesap Makinesi Yönlendirme

Coddy'nin C Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 37 / 61.

challenge icon

Görev

Kolay

Bir dağıtım tablosu kullanarak bir hesap makinesi oluşturun. İşlem kodlarını karşılık gelen işlevlerle eşleyen bir işaretçi dizisi oluşturacak, ardından hesaplamaları gerçekleştirmek için bunu kullanacaksınız.

Şunları yapan bir program yazın:

  1. İki int parametresi alan ve bir int döndüren bir işlev işaretçisi için typedef adıyla Operation oluşturur
  2. Dört aritmetik işlev tanımlar:
    • add: a + b döndürür
    • sub: a - b döndürür
    • mul: a * b döndürür
    • divide: a / b döndürür (tamsayı bölme)
  3. main içinde bir dağıtım tablosu oluşturur: 4 adet Operation işlev işaretçisinden oluşan bir dizi; burada 0. indeks add, 1. indeks sub, 2. indeks mul ve 3. indeks divide olur
  4. Üç girdi okur: iki tamsayı ve bir işlem kodu (0-3)
  5. Uygun işlevi çağırmak için işlem kodunu dağıtım tablosunda indeks olarak kullanır
  6. Sonucu yazdırır

Üç girdi alacaksınız: ilk sayı, ikinci sayı ve işlem kodu (add için 0, sub için 1, mul için 2, divide için 3).

Çıktınız tek bir tamsayı olmalıdır: işlemin sonucu:

7

10, 3, 1 girdileriyle yapılan bu örnekte, 1 işlem kodu dağıtım tablosundan sub işlevini seçer; dolayısıyla 10 - 3 = 7 hesaplanır.

Buradaki temel nokta, işlevi seçmek için dizi indekslemesini kullanmaktır: if veya switch ifadelerine gerek yoktur. Dağıtım tablonuz şu şekilde görünmelidir:

Operation ops[4] = {add, sub, mul, divide};

Ardından işlevi şu şekilde çağırın: ops[code](a, b)

Kendin dene

#include <stdio.h>

// TODO: 'Operation' adında bir fonksiyon işaretçisi için typedef oluştur
// iki int parametre alan ve bir int döndüren


// TODO: Dört aritmetik fonksiyonu tanımla: add, sub, mul, divide


int main() {
    // Girdiyi oku
    int a, b, code;
    scanf("%d", &a);
    scanf("%d", &b);
    scanf("%d", &code);
    
    // TODO: Dağıtım tablosunu oluştur (4 Operation fonksiyon işaretçisinden oluşan dizi)
    // Operation ops[4] = { ... };
    
    // TODO: Uygun fonksiyonu çağırmak için işlem kodunu kullan
    // ve sonucu sakla
    int result;
    
    // Sonucu yazdır
    printf("%d\n", result);
    
    return 0;
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi