Menu
Coddy logo textTech

Özet - Güvenli Bölme

Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 53 / 56.

challenge icon

Görev

Kolay

Kapsamlı istisna yönetimi kullanarak güvenli bölme işlemini gerçekleştiren bir program oluşturun. Bu görev, sıfıra bölme hatalarını uygun şekilde ele almak için fonksiyon tasarımını istisna yönetimiyle birleştirme becerinizi test edecektir.

Aşağıdaki girdiler sağlanacaktır:

  • Bölünecek sayıyı temsil eden bir double numerator
  • Bölme işleminin yapılacağı sayıyı temsil eden bir double denominator

Programınız şunları yapmalıdır:

  1. İki double parametresi (numerator ve denominator) alan safeDivide adlı bir fonksiyon oluşturun
  2. Fonksiyonun içinde denominator değerinin sıfıra eşit olup olmadığını kontrol edin
  3. Denominator sıfırsa throw dizesini "Division by zero error" edin
  4. Denominator sıfır değilse bölme sonucunu hesaplayın ve double olarak döndürün
  5. Main fonksiyonunda, girdi değerleriyle birlikte safeDivide fonksiyonunu bir try bloğu içinde çağırın
  6. Fırlatılan dize istisnasını ele almak için bir catch bloğu kullanın
  7. Bölme işleminin başarılı veya başarısız olmasına göre uygun mesajı yazdırın

Aşağıdaki tam çıktı biçimini kullanın:

Başarılı bölme işlemi için:

Result: [division_result]

Sıfıra bölme hatası için:

Error: Division by zero error

Denominator sıfır olduğunda, fonksiyonunuzun bölme işlemine başlamadan önce hemen bir istisna throw etmesi gerektiğini unutmayın. catch bloğu, fırlatılan dize sabitini ele almak için const char* türünü belirtmelidir. Bir istisna fırlatıldığında program doğrudan throw ifadesinden eşleşen catch bloğuna geçer; böylece sıfıra bölme işleminin gerçekleşmesi önlenir ve programınızın çökme yerine hatayı uygun şekilde ele alması sağlanır.

Kendin dene

#include <iostream>
using namespace std;

int main() {
    // Girdiyi oku
    double numerator, denominator;
    cin >> numerator >> denominator;
    
    // TODO: Kodunuzu buraya yazın
    // main() fonksiyonunun üzerinde safeDivide fonksiyonunu oluşturun
    // İstisnaları işlemek için try-catch bloğu kullanın
    
    return 0;
}

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C++ derleyicisi