Birleştirme
- C++ kursu
- Başlangıç
- Ders 23/116
- 6 dk
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
#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
#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ü
____ (int i = 0; i < 4; i++) { }
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ış |