Özet - Güvenli Bölme
Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası — ders 53 / 56.
Görev
KolayKapsamlı istisna yönetimi kullanarak güvenli bölme işlemi gerçekleştiren bir program oluşturun. Bu zorluk, bölme sıfır hatalarını zarif bir şekilde yönetmek için fonksiyon tasarımı ile istisna yönetimini birleştirme yeteneğinizi test edecektir.
Aşağıdaki girdiler sağlanacaktır:
- Bölünecek sayıyı temsil eden bir double
numerator - Bölen sayıyı temsil eden bir double
denominator
Programınız şunları yapmalıdır:
- İki double parametre (numerator ve denominator) alan
safeDivideadında bir fonksiyon oluşturun - Fonksiyonun içinde, paydanın sıfıra eşit olup olmadığını kontrol edin
- Eğer payda sıfır ise,
"Division by zero error"dizesinithrowedin - Eğer payda sıfır değilse, bölme sonucunu hesaplayın ve bir double olarak döndürün
- Ana fonksiyonda (main function), girdi değerleriyle bir
trybloğu içindesafeDividefonksiyonunu çağırın - Fırlatılan dize istisnasını yönetmek için bir
catchbloğu kullanın - Bölme işleminin başarılı veya başarısız olmasına bağlı olarak uygun mesajı yazdırın
Aşağıdaki tam çıktı formatını kullanın:
Başarılı bölme için:
Result: [division_result]Sıfıra bölme hatası için:
Error: Division by zero errorPayda sıfır olduğunda, fonksiyonunuzun bölme işlemini denemeden önce hemen bir istisna throw etmesi gerektiğini unutmayın. catch bloğu, fırlatılan dize sabitini (string literal) işlemek 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 atlayacak, herhangi bir sıfıra bölme işleminin gerçekleşmesini engelleyecek ve programınızın çökmesi yerine hatayı zarif bir şekilde yönetmesini sağlayacaktı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
1İşaretçiler ve Bellek
İşaretçi Nedir?Adres OperatörüDereference OperatörüNull İşaretçilerİşaretçiler ve Diziler'new' ile Dinamik Bellek'delete' ile Belleği Serbest BırakmaÖzet - İşaretçi Pratiği2Vektörler (Dinamik Diziler)
std::vector'a GirişBir Vektör OluşturmaEleman EklemeElemanlara ErişmeVektör BoyutuFor Döngüsü ile YinelemeAralık Tabanlı For DöngüsüEleman SilmeÖzet - Vektör İşlemleri5Proje: Envanter Aracı
Proje KurulumuÖğe Ekleme ve Güncelleme8Temel Hata Yönetimi
İstisnalara Giriş'try' ve 'catch' Blokları'throw' Anahtar KelimesiFarklı İstisna TürleriGenel YakalayıcıÖzet - Güvenli Bölme3Proje: Görev Listesi Aracı
Projeye Genel BakışGörev Ekleme