11 - سلسلة تبسيط البرمجة – آلية الحلقات التكرارية غير المحددة

السلام عليكم ورحمة الله وبركاته

بسم الله الرحمن الرحيم

نفس مدير التسويق في الشركة المذكورة في الحلقة السابقة

وبعد أن عاد العامل من مهمته أعطاه كمية من البروشورات

وطلب منه أن يقوم بالمرور على المحلات على طول الشارع

فقال له قم بالمرور على كل محل وأعطه بروشور واحد وعندما تنتهي البروشورات عد إلى المكتب

نلاحظ أنه لا يختلف الأمر عن المثال في الحلقة السابقة إلا في ناحية واحدة

وهي أنه لا يعلم أي المحل الذي سينتهي عنده البروشورات

فقد يصل إلى المحل العاشر ثم ينتهي وقد يصل إلى أبعد من ذلك أو أقل

فالمدير لم يحدد له الكمية ولم يحدد له عدد المحلات

وإنما وضع له شرط عندما يتحقق يعود إلى المكتب

وهذا الشرط هو انتهاء كمية البروشورات

ولهذا أسمينا هذا النوع من الحلقات الحلقات التكرارية غير المحددة لأن الإجراء المطلوب تكراره لا يملك نهاية محددة وإنما غير محددة أو بمعنى أصح عدد غير محدود من التكرارات ولكن يجب عند كل تنفيذ لجسم الحلقة أو التكرار التحقق من شرط التوقف والخروج من الحلقة

وهو في مثالنا هل انتهت كمية البروشورات ؟

وبالإمكان صياغة المثال بطريقة رمزية أو على شكل خوارزمية كما يلي :

1- لدينا عدد من البروشورات

2- كرر

3- اذهب للمحل التالي

4- قم بإعطاء بروشور واحد للمحل

5- (هل أصبح عدد البروشورات صفر؟) - في حال نعم انتقل للسطر التالي وإلا عد إلى الخطوة 2

6- عد إلى المكتب

نلاحظ مما سبق أنه طالما لدينا كمية سيتم تنفيذ الخطوات 3 و 4 ومن ثم التحقق من الشرط 5

وبما أننا نعلم يقينا أن البروشورات ستنتهي حتما فلا بد أن تأتي لحظة وننتقل للخطوة 6

أريد أن أنوه لملاحظة أن هذا النوع من الحلقة يملك خيارين وهو إما أن نتحقق من الشرط في النهاية كما في مثالنا أو من البداية أي قبل البدء بتنفيذ الجزء التكراري (أي جسم الحلقة)

والفرق أنه في حال التحقق من البداية ربما يكون الشرط متحققا فيخرج من الحلقة مباشرة دون الدخول فيها

أما عندما يكون التحقق في النهاية فسيتم تنفيذ جسم الحلقة مرة واحدة على الأقل

ولصياغة المثال عن هذا الخيار

كأن يقول المدير للعامل خذ هذه الكمية و قم بالمرور على المحلات وعندما تصادف موظف تفتيش في أحد المحلات عد فورا

هنا سيقوم العامل بالتأكد من عدم وجود مفتش قبل أن يعطي البروشور

وقد يجده في أول محل لذا سينهي عمله ويعود فورا دون أن يوزع بروشور واحد

وكصياغة رمزية :

1- لدينا كمية من البروشورات

2- اذهب لأول محل

3- كرر ( طالما لا يوجد مفتش في المحل ) فإن وجد انتقل للخطوة 7 وإلا انتقل للتالي

4- أعط بروشور واحد للمحل

5- انتقل للمحل التالي

6- عاود التنفيذ من الخطوة 2

7- ارجع للمكتب

هذا هو درسنا لهذه الحلقة

دمتم موفقين