6.2 سير التنفيذ
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على:
- تحديد سير التنفيذ لبرنامج.
- وصف كيفية انتقال سير التنفيذ بين التعليمات واستدعاءات الدوال.
سير التنفيذ والدوال
سير التنفيذ هو تسلسل تنفيذ البرنامج. يبدأ سير تنفيذ البرنامج من البرنامج الرئيسي ولكنه نادرًا ما يتبع تسلسلاً صارمًا. مثال: يتخطى سير التنفيذ الأسطر عندما لا تُنفَّذ تعليمة شرطية.
عندما يصل التنفيذ إلى استدعاء دالّة، ينتقل سير التنفيذ إلى المكان الذي عُرِّفت فيه الدالّة ويُنفِّذ تعليماتها. ثم يعود سير التنفيذ إلى المكان الذي استُدعيت فيه الدالّة ويستمر في التسلسل.
مفاهيم تطبيقية
تتبع سير التنفيذ
الدوال التي تستدعي دوال أخرى
غالبًا ما تستدعي الدوال دوال أخرى بحيث تؤدي كل دالّة مهمة واحدة، وهو ما يُعرف بالنمطية (modularity). مثال: قد تستدعي دالّة تحسب إجمالي الطلب دالّة تحسب ضريبة المبيعات. عندما تنتهي دالّة تم استدعاؤها من دالّة أخرى من التنفيذ، يعود سير التنفيذ إلى الدالّة المستدعية.
مفاهيم تطبيقية
الدوال التي تستدعي دوال أخرى
تأمل مثال نادي الكتاب أعلاه.
جرّب بنفسك
مِحَث الشروط والأحكام المُحدَّثة
اكتب دالّة مُحدَّثة، terms()، تطلب من المستخدم قبول الشروط والأحكام، وتقرأ Y/N، وتُخرج استجابة باستدعاء accepted() أو rejected(). تطبع accepted() النص "Thank you for accepting the terms." وتطبع rejected() النص "You have rejected the terms. Thank you.".
بافتراض المدخلات 2، "Y" و "N"، يكون الإخراج:
Do you accept the terms and conditions?
Y
Thank you for accepting the terms.
بافتراض استدعاء دالّة لـ terms() والمدخل "N"، يكون الإخراج:
Do you accept the terms and conditions?
N
You have rejected the terms. Thank you.
جرّب بنفسك
معلومات مغسلة الملابس
اكتب برنامجًا يستخدم ثلاث دوال لطباعة معلومات حول مغسلة ملابس، Liam's Laundry:
laundromat_info(): تطبع الاسم، Liam's Laundry، وساعات العمل، 7 صباحًا - 11 مساءً، وتستدعيwashers_open()وdryers_open()washers_open(): تقرأ عددًا صحيحًا، وتُسندwasher_countبالقيمة، وتطبعwasher_countdryers_open(): تقرأ عددًا صحيحًا، وتُسندdryer_countبالقيمة، وتطبعdryer_count
يجب أن يستدعي البرنامج الرئيسي فقط laundromat_info().
بافتراض المدخلات 50 و 40، يكون الإخراج:
Liam's Laundry
7a - 11p
Open washers: 50
Open dryers: 40