C++
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ı.
Örnek çözümü göster
#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;
}
Kendini test et
-
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
Cevabı göster
Bir değere göre dal seçer — switch bir değere göre farklı dalları çalıştırır.
-
for döngüsü
____ (int i = 0; i < 4; i++) { }
Cevabı göster
for (int i = 0; i < 4; i++) { }
-
Döngü ve switch kavramlarını eşleştir
- for
- Sayaçlı döngü
- switch
- Değere göre dal
- case '+':
- Toplama dalı
- break;
- Switch'ten çıkış
Sıradaki ders: Aritmetik operatörler