CodeBlanks Logo Icon CodeBlanks

Birleştirme

Tüm parçaları birleştirerek çalışan bir hesap makinesi yazarsın.

Birleştirme

Son derste hesap makinesinin tüm parçalarını birleştireceğiz: dört işlem metotları, sıfır kontrolü ve bir char dizisi üzerinde döngü ile tüm işlemleri sırayla çalıştırma.

char ops[] = {'+', '-', '*', '/'}; ile dört operatörü bir diziye koyarız. Sonra bir for döngüsüyle her operatör için switch ile doğru metodu çağırırız.

Bu yapı, gerçek hesap makinesi uygulamalarının temelidir: kullanıcı bir operatör girer, program doğru işlemi seçer ve sonucu gösterir. Burada girişi sabit bir diziyle simüle ediyoruz.

for ve switch birlikte

Bir for döngüsü üç parçadan oluşur: başlangıç (int i = 0), koşul (i < 4) ve adım (i++). Koşul doğru olduğu sürece gövde çalışır.

switch bir değeri case etiketleriyle karşılaştırır. ops[i] '+' ise case '+' dalı çalışır. Her dalın sonunda break; ile switch'ten çıkılır.

Örnek: switch (ops[i]) { case '+': result = calc.add(a, b); break; ... }. Bu yapı, operatöre göre doğru metodu seçer. Döngü her operatör için tekrarlanır.

Uygulama Hesap makinesini birleştir

main içinde ops dizisi hazır. Yorumun altına bir for döngüsü ekle: for (int i = 0; i < 4; i++). Döngü gövdesinde önce double result = 0; tanımla, sonra switch (ops[i]) ile dört case dalı ekle: '+' → calc.add(a, b), '-' → calc.subtract(a, b), '*' → calc.multiply(a, b), '/' → calc.divide(a, b). Her dal result'a atama yapsın ve break; ile bitsin. Döngü sonunda std::cout << result << std::endl; ile sonucu yazdır. a=20, b=5 için çıktı 25, 15, 100, 4 olmalı.

Başlangıç kodu

main.cpp
#include <iostream>

class Calculator {
public:
    double add(double a, double b) { return a + b; }
    double subtract(double a, double b) { return a - b; }
    double multiply(double a, double b) { return a * b; }
    double divide(double a, double b) {
        if (b == 0) return 0;
        return a / b;
    }
};

int main() {
    Calculator calc;
    double a = 20;
    double b = 5;
    char ops[] = {'+', '-', '*', '/'};
    // for ile ops üzerinde gez, switch ile işlemi seç ve sonucu yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

class Calculator {
public:
    double add(double a, double b) { return a + b; }
    double subtract(double a, double b) { return a - b; }
    double multiply(double a, double b) { return a * b; }
    double divide(double a, double b) {
        if (b == 0) return 0;
        return a / b;
    }
};

int main() {
    Calculator calc;
    double a = 20;
    double b = 5;
    char ops[] = {'+', '-', '*', '/'};
    // for ile ops üzerinde gez, switch ile işlemi seç ve sonucu yazdır
    for (int i = 0; i < 4; i++) {
        double result = 0;
        switch (ops[i]) {
            case '+': result = calc.add(a, b); break;
            case '-': result = calc.subtract(a, b); break;
            case '*': result = calc.multiply(a, b); break;
            case '/': result = calc.divide(a, b); break;
        }
        std::cout << result << std::endl;
    }
    return 0;
}

Beklenen çıktı

25
15
100
4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 switch ifadesi ne yapar?

  • Döngü kurar
  • Sınıf oluşturur
  • Değişken tanımlar
  • Bir değere göre dal seçer Doğru cevap

Açıklama: switch bir değere göre farklı dalları çalıştırır.

2 for döngüsü

Soru
____ (int i = 0; i < 4; i++) { }
Cevap
for (int i = 0; i < 4; i++) { }

Açıklama: for döngüsü bir sayacı adım adım işletir.

3 Döngü ve switch kavramlarını eşleştir

Kavram Anlamı
for Sayaçlı döngü
switch Değere göre dal
case '+': Toplama dalı
break; Switch'ten çıkış

Başlangıç bölümündeki tüm dersler