الدرس الخامس(100):الشروط في بايثون


تخيلوا معي لو أن البرمجة ﻻ تحوي شروطا...اعتقد أن البرمجة ستكون مستحيلة بكل المقاييس...
لنبدأ الدرس بقصة:
أحمد هو تلميذ في المرحلة الثانوية،أمرهم أستاذ الرياضيات بحل بعض التمارين و عرضها عليه في اليوم الموالي و لكن عليه أن يتبع بعض الخطوات:مجموع التمارين المطلوب حلها هو 5 تمارين و لكن بإﻹمكان حل ثلاثة على اﻷقل حلا صحيحا و كاملا و بالتالي سيكون نسبة الخطأ 0 بالمئة أو حل الخمسة مسائل كلها بنسبة خطأ مسموحة تقدر بـ 20 في المئة،و إن لم تستطع حل تلك المسائل الخمسة فعليك أن تحل 10 مسائل أخرى سيعطيك إياها اﻷستاذ في اليوم الموالي.
توجه أحمد إلى المنزل،إرتاح قليلا و بدأ في العمل...قام بحل المسألة اﻷولى و الثانية حلا كاملا و هو متأكد تماما بأن الحل الذي توصل إليه هو حل صحيح،و بعد جهد جهيد إستطاع حل المسألة الثالثة حلا كاملا و صحيحا...هل عليك إكمال حل بقية المسائل،فهو متأكد بأن الحل الذي توصل إليه للمسائل الثلاثة السابقة هو الحل الصحيح و بالتالي سيتوقف عن العمل و يعرض عمله على اﻷستاذ في الغد.
هذا ما يعرف في عالم البرمجة بالشروط Conditional Branching و هي تعني تحديد مسار البرنامج أثناء عمله بالإستناد إلى أحداث تقع في خضم عملية التنفيذ.

لنأخذ مثاﻻ آخر...أرادت جمعية خيرية توزيع مساعدات للفقراء و المساكين في بلدة معينة،و خصوصا أولئك الذين ﻻ يملكون مأوى...قامت بجمع التبرعات من سكان المدينة و بعدها قام اﻷعضاء بالتجول في شوارع و أزقة المدينة للبحث عن من يحتاجون إلى المساعدة و لكن كيف سيتم توزيع هته المساعدات؟
ببساطة بالإستناد إلى شرطين أساسيين هما:أن يكون الشخص فعلا من الفقراء و هذا شيء سهل اﻹكتشاف بالنسبة للجميع أما الشرط الثاني فهو أن ﻻ يكون  الشخص قد استفاد من المساعدة في نفس اليوم و بالتالي كيف نستطيع ترجمة ذلك إلى خوارزمية؟
أوﻻ سنقوم بإنشاء قائمة تحوي أسماء الفقراء و المحتاجين الذين استفادوا من المساعدة لهذا اليوم و بالطبع ستكون فارغة في البداية نقوم بأخذ المدخلات و هي اﻷشخاص الذين تتوفر فيهم الشروط للإستفادة من المساعدة...إن لم تكن تتوفر فيهم الشروط فإننا سنخبرهم بأنهم غير مأهلون للإستفادة من المساعدة و نذكر لهم أسباب ذلك...إن كانت تتوفر فيهم الشروط فإننا نبحث عن أسمائهم في قائمة الذين استفادوا من المساعدة...إن لم تكن أسماؤهم في القائمة فإنهم سيستفيدون من المساعدة...أما إن كانت أسماؤهم ضمن القائمة سنخبرهم بأنهم قد استفادوا من المساعدة في نفس اليوم و ﻻ يحق لهم اﻹستفادة لمرة أخرى من أجل إتاحة الفرصة للبقية...هل اتضحت الفكرة؟

حتى نستطيع كتابة الشروط في بايثون علينا استخدام الكلمة المفتاحية if و التي تتيح لنا التحقق من شرط معين و اتخاذ اﻹجراء المناسب...يتم كتابة الشروط في بايثون كالتالي(المثال مأخوذ من التوثيق الرسمي للغة):

بعد الكلمة المفتاحية if هنا نضع الشرط المراد التحقق منه متبوعا بنقطتين : و التي تعني بأن الشرط قد إنتهى و ما بعدهما هي اﻷمر الواجب القيام به لو تحقق الشرط...لو لم يتحقق الشرط سنضع شرطا آخر باستخدام الكلمة المفتاحية elif  و التي هي اختصار لـ else if و التي تتيح لنا التحقق من شرط آخر متبوعا بنقطتين كذلك...بعدها نختم حلقة التحقق من الشروط باﻷمر else و الذي يعني بأنه عدم تحقق أي من الشروط السابقة فعليك القيام بالتالي...
المطلوب: تحويل اﻷمثلة السابقة إلى أكواد بايثون.
في الدرس المقبل بحول الله سأشرح الشروط في بايثون بمثال تطبيقي و إن شاء الله ستفهمون الشروط بشكل جيد جدا،دمتم بود،سلام

تعليقات