البرمجة

تحسين أداء برنامج البحث عن الكلمات الرئيسية في C++

في البداية، يجدر بك أن تعلم أن هناك خطأ في الشرط الذي قمت بكتابته في الجزء الخاص بالفحص عن الكلمات الرئيسية. عند استخدام العبارة input == "the" || "me" || "it"، فإن هذا لا يقوم بالمقارنة بشكل صحيح. يجب أن تقوم بكتابة الشرط بالشكل التالي:

cpp
if(input == "the" || input == "me" || input == "it"){ isUnique = false; }

الآن بعد تصحيح هذا الجزء من الشيفرة، يمكنك البدء في تحسين أداء البرنامج عند البحث عن أكثر من 50 كلمة رئيسية. يفضل استخدام هيكل بيانات فعال لتخزين هذه الكلمات، مثل مصفوفة أو مجموعة. في هذا المثال، سأقدم لك كودًا يستخدم مصفوفة لتخزين الكلمات الرئيسية ويتحقق من الإدخال بشكل فعال:

cpp
#include #include #include int main() { // قم بتعريف مصفوفة لتخزين الكلمات الرئيسية std::vector keywords = {"the", "me", "it"}; std::string input; bool isUnique = true; std::cout << "Please type a word: "; std::cin >> input; // استخدم std::find للبحث عن الكلمة في المصفوفة if (std::find(keywords.begin(), keywords.end(), input) != keywords.end()) { isUnique = false; } if (isUnique) { std::cout << "UNIQUE!!" << std::endl; } else { std::cout << "COMMON" << std::endl; } return 0; }

هذا الكود يستخدم مصفوفة لتخزين الكلمات الرئيسية ويستخدم std::find للبحث عن الكلمة المدخلة. يتيح لك هذا الأسلوب إضافة أو حذف كلمات رئيسية بسهولة دون الحاجة إلى تعديل الشيفرة بشكل كبير.

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

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

  1. استخدام وظائف السلسلة (string functions):
    يمكنك استخدام وظائف السلسلة لتنظيف الإدخال أو تحويله إلى صيغة صحيحة. على سبيل المثال، يمكنك استخدام std::transform لتحويل الحروف إلى صيغة صغيرة (lowercase) لتحسين عملية المقارنة.

    cpp
    std::transform(input.begin(), input.end(), input.begin(), ::tolower);
  2. استخدام هيكل البيانات المناسب:
    إذا كنت تتعامل مع عدد كبير من الكلمات الرئيسية، يمكنك النظر في استخدام هياكل بيانات أكثر تأثيرًا مثل مجموعة (std::unordered_set) بدلاً من مصفوفة.

    cpp
    #include std::unordered_set keywords = {"the", "me", "it"};

    هذا سيزيد من سرعة البحث.

  3. التعامل مع مدخلات المستخدم:
    قم بتحسين تفاعل البرنامج مع المستخدم عن طريق إضافة دورة تكرار للسماح للمستخدم بإدخال عدة كلمات.

    cpp
    while (true) { std::cout << "Please type a word (type 'exit' to quit): "; std::cin >> input; if (input == "exit") { break; } // الكود الخاص بالفحص هنا... // إعادة تعيين قيمة isUnique للاستخدام في الدورة القادمة isUnique = true; }

    هذا يتيح للمستخدم إدخال الكلمات بشكل متكرر دون الحاجة إلى إعادة تشغيل البرنامج.

  4. تنظيم الشيفرة:
    قم بتنظيم الشيفرة إلى وظائف صغيرة ومتخصصة لجعل البرنامج أكثر قراءة وصيانة. يمكنك وضع الشيفرة ذات الصلة في وظائف منفصلة.

    cpp
    bool isKeyword(const std::string& word) { return keywords.find(word) != keywords.end(); }

    ثم يمكنك استخدام هذه الوظيفة في الكود الرئيسي لتحسين القراءة والتفاعل.

تجمع هذه الأفكار معًا لتحسين أداء البرنامج وتسهيل الصيانة والتوسع في المستقبل.

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