Ö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.
Görev
KolayBir 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:
- İki
intparametresi alan ve birintdöndüren bir işlev işaretçisi içintypedefadıylaOperationoluşturur - Dört aritmetik işlev tanımlar:
add: a + b döndürürsub: a - b döndürürmul: a * b döndürürdivide: a / b döndürür (tamsayı bölme)
mainiçinde bir dağıtım tablosu oluşturur: 4 adetOperationişlev işaretçisinden oluşan bir dizi; burada 0. indeks add, 1. indeks sub, 2. indeks mul ve 3. indeks divide olur- Üç girdi okur: iki tamsayı ve bir işlem kodu (0-3)
- Uygun işlevi çağırmak için işlem kodunu dağıtım tablosunda indeks olarak kullanır
- 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:
710, 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
1Modüler Programlama Temelleri
Başlık DosyalarıInclude Guard'larKaynak DosyalarıStatik FonksiyonlarÖzet: Modüler Hesap Makinesi4Kapsülleme
Opaque Pointer KavramıOpaque Struct TanımlamaGetter ve Setter MetotlarıSetter Metotlarında DoğrulamaÖzet: Gizli Kutu7Fonksiyon İşaretçileri
Fonksiyon İşaretçilerini TanımlamaFonksiyon İşaretçilerini ÇağırmaFonksiyon İşaretçileri için TypedefFonksiyonları Argüman Olarak GeçirmeÖzet: Hesap Makinesi Yönlendirme2Nesneler ve Metotlar
Nesne Olarak Struct'lar'Self' İşaretçisiConst Doğruluğuİşaretçi vs DeğerYardımcı MetotlarÖzet: Point Manager5Proje: Basit Banka Hesabı
Proje KurulumuHesabın Oluşturulması3Nesne Yaşam Döngüsü
Constructor DeseniDestructor DeseniStack İlklendirmeDerin KopyalamaÖzet: String Wrapper6Kompozisyon Yoluyla Kalıtım
Struct Gömmeİlk Üye KuralıÜst Üyelere ErişimUpcastingÖzet: Şekil HiyerarşisiKendi başına pratik yap: Online C derleyicisi