البرمجة

تحسين برامج C++ باستخدام هيكل تكراري ودوال منفصلة

في البداية، يجب أن أشير إلى أن استخدام كلمة “goto” يعتبر في الأغلب أمرًا غير مستحب في برمجة C++ الحديثة، حيث يمكن أن يؤدي إلى صعوبات في فهم الشيفرة وصيانتها. السبب وراء عدم انتهاء البرنامج يعود إلى الاستخدام الخاطئ لعبارة “goto”. لنقم بتحسين الشيفرة لتكون أكثر فاعلية وقابلية للصيانة.

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

اليك الشيفرة المحسنة:

cpp
#include using namespace std; // دالة لحساب مساحة المستطيل double calculateRectangleArea() { double width, length; cout << "Enter the width of rectangle: "; cin >> width; cout << "Enter the length of rectangle: "; cin >> length; return width * length; } // دالة لحساب مساحة المنطقة المنفصلة double calculateTrapezoidArea() { double base1, base2, height; cout << "Enter the base 1 of trapezoid: "; cin >> base1; cout << "Enter the base 2 of trapezoid: "; cin >> base2; cout << "Enter the height of trapezoid: "; cin >> height; return ((base1 + base2) / 2) * height; } int main() { char choice; do { int userChoice; cout << "Enter 1 to calculate area of rectangle\n"; cout << "Enter 2 to calculate area of trapezoid\n"; cout << "Enter your choice: "; cin >> userChoice; double area; if (userChoice == 1) { area = calculateRectangleArea(); cout << "The area of rectangle is: " << area; } else if (userChoice == 2) { area = calculateTrapezoidArea(); cout << "The area of trapezoid is: " << area; } else { cout << "Invalid choice."; } cout << "\n\nDo you want to do another calculation? (y/n): "; cin >> choice; } while (choice == 'y'); cout << "Program ended."; return 0; }

هذه الشيفرة تستخدم دوال لحساب مساحة المستطيل والمنطقة المنفصلة بدلاً من تكرار الشيفرة. كما أنها تستخدم حلقة do-while لتكرار العملية حسب رغبة المستخدم.

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

بالطبع، دعونا نستكشف بعض التفاصيل الإضافية حول الشيفرة وكيف تم تحسينها.

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

  2. الهيكل التكراري:
    تم استخدام حلقة do-while لتوفير هيكل تكراري يسمح للمستخدم بتكرار عمليات الحساب حسب رغبته، وذلك عندما يقوم المستخدم بإدخال ‘y’ كاستجابة.

  3. المدخلات الآمنة:
    تم استخدام cin للحصول على مدخلات المستخدم. هذا يجعل البرنامج أكثر أمانًا، ولكن يمكن تحسينه بمزيد من فحص الإدخالات للتحقق من صحتها.

  4. التفاعل مع المستخدم:
    تمت إضافة رسائل توجيهية وشروحات لتحسين تفاعل المستخدم مع البرنامج، مما يسهل عليه فهم كيفية استخدام البرنامج.

  5. استخدام else if:
    تم استخدام بيانات else if بدلاً من سلسلة من بيانات if المستقلة لزيادة فعالية وأداء الشيفرة.

  6. خروج برنامج مناسب:
    تم إضافة بيانات cout في نهاية البرنامج لتوجيه المستخدم بأن البرنامج انتهى.

تحسين الشيفرة ليس فقط يجعلها أكثر فاعلية بل يسهم أيضًا في تحسين تفاعل المستخدم وفهمه لعملية البرنامج.

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