تطبيق تفاعلي لخوارزمية البحث الثنائي (Bisection Search) باستخدام Python

تفاصيل العمل

1. توضيح نوع العمل:

هذا المشروع عبارة عن تطبيق برمجي تفاعلي يعمل عبر واجهة سطر الأوامر (CLI)، يهدف إلى تطبيق واحدة من أهم وأسرع خوارزميات البحث في علوم الحاسوب وهي "خوارزمية البحث الثنائي". يقوم البرنامج بتجسيد الخوارزمية في شكل "لعبة تخمين ذكية"، حيث يفكر المستخدم في رقم (من 0 إلى 100)، ويقوم الحاسوب باستنتاج هذا الرقم في أقل عدد ممكن من المحاولات من خلال تضييق نطاق البحث إلى النصف في كل خطوة بناءً على توجيهات المستخدم.

2. ميزات المشروع:

- الكفاءة العالية (Efficiency): يبرز المشروع قوة البحث الثنائي وسرعته في الوصول للنتيجة مقارنة بالبحث الخطي، مما يعكس فهماً عميقاً لهياكل البيانات والخوارزميات الأساسية.

- التفاعل الديناميكي: واجهة تفاعلية تعتمد على مدخلات المستخدم لتوجيه مسار تنفيذ البرنامج خطوة بخطوة.

- معالجة الأخطاء (Error Handling): يتميز الكود بالمرونة؛ حيث يتضمن نظاماً للتعامل مع المدخلات الخاطئة (Invalid input). إذا قام المستخدم بإدخال حرف غير متوقع، يقوم البرنامج بتنبيهه وتوجيهه لإدخال الخيارات الصحيحة دون أن يتعطل أو يتوقف فجأة.

- البساطة والتنظيم: الكود مكتوب بأسلوب بسيط ومقروء يسهل فهمه، مع استخدام مثالي ومباشر للحلقات التكرارية (while) والجمل الشرطية المتقدمة (if/elif/else).

3. طريقة التنفيذ:

- تم بناء هذا المشروع بالاعتماد على المنطق الرياضي والبرمجي البحت باستخدام لغة بايثون، ويسير التنفيذ وفق الخطوات البرمجية التالية:

-- تحديد نطاق البحث: تبدأ الخوارزمية بتعريف الحد الأدنى (low = 0) والحد الأقصى (high = 100).

-- حساب نقطة المنتصف: داخل حلقة تكرارية مستمرة (while True)، يحسب البرنامج نقطة المنتصف كنقمة تخمين أولية عبر القسمة الصحيحة (low + high) // 2.

-- تحديث النطاق بناءً على الشرط:

==> إذا أشار المستخدم أن التخمين أعلى من رقمه السري (بإدخال h)، يتم جعل الحد الأقصى مساوياً لقيمة التخمين لتقليص النطاق للنصف السفلي.

==> إذا كان التخمين أقل (بإدخال l)، يتم تعديل الحد الأدنى ليصبح مساوياً لقيمة التخمين لتقليص النطاق للنصف العلوي.

-- الوصول للهدف: بمجرد تأكيد المستخدم أن التخمين صحيح (بإدخال c)، يعرض البرنامج النتيجة النهائية وينهي الحلقة البرمجية باستخدام أمر break.

بطاقة العمل

اسم المستقل
عدد الإعجابات
1
عدد المشاهدات
6
تاريخ الإضافة
تاريخ الإنجاز
المهارات