البرمجة

استخدام Switch Case في C++ للعمليات الحسابية

في البداية، يجدر بنا أن نلفت الانتباه إلى أن الكود الذي قدمته يستخدم تركيبة قديمة من لغة البرمجة C++، حيث تظهر بعض الجمل القديمة التي لم تعد مستخدمة في الإصدارات الحديثة من اللغة. على سبيل المثال، استخدام #include لم يعد متبعًا، بل يجب استخدام #include في الإصدارات الحديثة.

لنقم بتحسين الكود وإضافة تفصيلات حول كيفية استخدام الـ switch case. أولاً، يجب تعديل الكود ليتوافق مع المعايير الحديثة للغة C++:

cpp
#include int sum(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } int multi(int a, int b) { return a * b; } float div(int a, int b) { if (b != 0) { return static_cast<float>(a) / b; } else { std::cerr << "Error: Division by zero." << std::endl; return 0; // يمكنك تعديل هذا الجزء حسب احتياجاتك } } int main() { int x, y; std::cout << "Enter the value of x = "; std::cin >> x; std::cout << "Enter the value of y = "; std::cin >> y; // استخدام switch case للقيام بالعمليات الحسابية std::cout << "Choose an operation:" << std::endl; std::cout << "1. Addition\n2. Subtraction\n3. Multiplication\n4. Division" << std::endl; int choice; std::cin >> choice; switch (choice) { case 1: std::cout << "x + y = " << sum(x, y) << std::endl; break; case 2: std::cout << "x - y = " << sub(x, y) << std::endl; break; case 3: std::cout << "x * y = " << multi(x, y) << std::endl; break; case 4: std::cout << "x / y = " << div(x, y) << std::endl; break; default: std::cerr << "Error: Invalid choice." << std::endl; break; } return 0; }

هذا الكود يطلب من المستخدم إدخال عددين ومن ثم يطلب اختيار العملية الحسابية باستخدام switch case، مما يضيف مرونة وإمكانية تحديد نوع العملية بشكل ديناميكي.

المزيد من المعلومات

بالطبع، يُمكننا توسيع المعلومات حول الكود وشرح بعض النقاط البارزة:

  1. تحسين الكود:

    • تم استبدال #include بـ #include لأن الإصدارات الحديثة من C++ تستخدم دون اللاحقة .h.
    • تم تغيير main() إلى int main() للامتثال للمعايير الحديثة.
    • تم تحسين وتبسيط الدوال الحسابية.
  2. إضافة switch case:

    • تم إضافة بنية switch لتحديد نوع العملية الحسابية التي يرغب المستخدم في إجرائها.
    • تم استخدام std::cerr لطباعة رسائل الخطأ إلى stderr بدلاً من std::cout، حيث يعتبر هذا الأمر أفضل بالنسبة للأخطاء.
  3. التحقق من القسمة على الصفر:

    • تم إضافة فحص لتجنب القسمة على الصفر في الدالة div. إذا كان المستخدم يقوم بتجربة القسمة على الصفر، سيتم طباعة رسالة خطأ.
  4. تحسين التبادل بين المستخدم والبرنامج:

    • تم إضافة رسائل توجيه للمستخدم لجعل التفاعل أكثر وضوحًا.
    • يُطلب من المستخدم اختيار العملية الحسابية المرغوبة باستخدام switch case.
  5. التعامل مع الخطأ:

    • تم إضافة إمكانية التعامل مع حالة اختيار غير صحيحة باستخدام default في switch case.

تم تصميم الكود ليكون أكثر قوة ومرونة، مع إضافة التحسينات المستمدة من المعايير والممارسات الحديثة في لغة C++.

زر الذهاب إلى الأعلى