Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة - القسمة الآمنة

جزء من قسم Logic & Flow في رحلة C++ على Coddy — الدرس 53 من 56.

challenge icon

التحدي

سهل

قم بإنشاء برنامج ينفذ عملية قسمة آمنة باستخدام معالجة شاملة للاستثناءات. سيختبر هذا التحدي قدرتك على الجمع بين تصميم الدوال وإدارة الاستثناءات للتعامل مع أخطاء القسمة على صفر بسلاسة.

سيتم توفير المدخلات التالية:

  • عدد عشري numerator يمثل البسط (العدد المراد قسمته)
  • عدد عشري denominator يمثل المقام (العدد الذي سيتم القسمة عليه)

يجب أن يقوم برنامجك بما يلي:

  1. إنشاء دالة باسم safeDivide تأخذ معاملين من نوع double (البسط والمقام)
  2. داخل الدالة، تحقق مما إذا كان المقام يساوي صفراً
  3. إذا كان المقام صفراً، قم بـ throw للسلسلة النصية "Division by zero error"
  4. إذا لم يكن المقام صفراً، احسب نتيجة القسمة وأرجعها كـ double
  5. في الدالة الرئيسية، استدعِ safeDivide داخل كتلة try مع قيم المدخلات
  6. استخدم كتلة catch لمعالجة استثناء السلسلة النصية الملقى
  7. اطبع الرسالة المناسبة بناءً على ما إذا كانت القسمة قد نجحت أم فشلت

استخدم تنسيق المخرجات الدقيق التالي:

في حالة القسمة الناجحة:

Result: [division_result]

في حالة خطأ القسمة على صفر:

Error: Division by zero error

تذكر أنه عندما يكون المقام صفراً، يجب أن تقوم دالتك فوراً بـ throw لاستثناء قبل محاولة إجراء القسمة. يجب أن تحدد كتلة catch النوع const char* للتعامل مع السلسلة النصية الملقاة. عند إلقاء استثناء، سينتقل البرنامج مباشرة من عبارة throw إلى كتلة catch المطابقة، مما يمنع حدوث أي قسمة على صفر ويسمح لبرنامجك بمعالجة الخطأ بسلاسة بدلاً من الانهيار.

جرّب بنفسك

#include <iostream>
using namespace std;

int main() {
    // قراءة المدخلات
    double numerator, denominator;
    cin >> numerator >> denominator;
    
    // المهام المطلوبة: اكتب كودك هنا
    // قم بإنشاء دالة safeDivide فوق ()main
    // استخدم كتلة try-catch للتعامل مع الاستثناءات
    
    return 0;
}

جميع دروس Logic & Flow