4.5 القرارات المتسلسلة
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على:
- تحديد الفروع التي تُتَّخذ في تعليمة
if-elifوif-elif-else. - إنشاء تعليمة قرارات متسلسلة لتقييم شروط متعددة.
elif
أحيانًا، يعتمد قرار معقد على أكثر من شرط واحد. مثال: موقع لتخطيط السفر يراجع فترات التوقف في خط سير الرحلة. إذا كانت فترة التوقف تزيد عن 24 ساعة، يجب أن يقترح الموقع أماكن إقامة. أمّا إذا كانت فترة التوقف أقل من ساعة واحدة، فيجب أن ينبّه الموقع لاحتمال فقدان رحلة ربط.
لا تضمن تعليمتان if منفصلتان أن يُتَّخذ فرع واحد فقط، وقد يؤدي ذلك إلى اتخاذ كلا الفرعين. مثال: يحاول البرنامج أدناه إضافة منحنى بناءً على درجة الاختبار المدخلة. إذا كان الإدخال 60، فستُنفَّذ كلتا تعليمتي if بشكل غير صحيح، وتكون النتيجة النهائية 75.
score = int(input())
if score < 70:
score += 10
# خطأ:
if 70 <= score < 85:
score += 5
يسمح ربط تعليمات القرارات باستخدام elif (اختصار لـ else if) للمبرمج بالتحقق من شروط متعددة. تقوم تعليمة elif بفحص شرط عندما يكون شرط تعليمة القرار السابقة خاطئًا. تعد تعليمة elif جزءًا من سلسلة ويجب أن تتبع تعليمة if (أو elif).
قالب تعليمة if-elif:
# التعليمات السابقة
if condition:
# الجزء الرئيسي
elif condition:
# الجزء الرئيسي
# التعليمات اللاحقة
مفاهيم تطبيقية
استخدام elif
تعليمات if-elif-else
يمكن ربط تعليمات elif مع تعليمة if-else لإنشاء تعليمة قرار أكثر تعقيدًا. مثال: يعرض برنامج حركات الشطرنج الممكنة اعتمادًا على نوع القطعة. إذا كانت القطعة بيدقًا، فاعرض التحرك خطوة واحدة (أو اثنتين) للأمام. وإلا إذا كانت القطعة فيلًا، فاعرض الحركات القطرية. وإلا إذا . . . (أكمل لبقية القطع).
مفاهيم تطبيقية
استخدام elif ضمن تعليمات if-elif-else
جرّب بنفسك
تحويل مقاس إبرة الكروشيه
اكتب برنامجًا يقرأ مقاس إبرة كروشيه أمريكي ويحسب القطر المتري بالمليمترات. (يتم استخدام مجموعة فرعية من المقاسات.) إذا لم يتطابق الإدخال مع B-G، فيجب تعيين القطر بقيمة -1.0. مثال: إذا كان الإدخال D، يكون الإخراج "3.25 mm".
تحويلات المقاسات الأمريكية: ملم
- B : 2.25
- C : 2.75
- D : 3.25
- E : 3.5
- F : 3.75
- G : 4.0
جرّب بنفسك
أطوال موجات الألوان
اكتب برنامجًا يقرأ عددًا صحيحًا يمثل طول موجة الضوء المرئي بالنانومتر. اطبع اللون المقابل باستخدام النطاقات الشاملة التالية:
- Violet: 380–449
- Blue: 450–484
- Cyan: 485–499
- Green: 500–564
- Yellow: 565–589
- Orange: 590–624
- Red: 625–750
افترض أن الإدخال يقع ضمن طيف الضوء المرئي، من 380 إلى 750 شاملًا.
الإدخال المعطى:
550
الإخراج هو:
Green