قرارات متداخلة

4.6 قرارات متداخلة

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على

  • وصف مسارات تنفيذ البرامج التي تحتوي على تعليمات الشرط المتداخلة (if-else statements).
  • تنفيذ برنامج يحتوي على تعليمات الشرط المتداخلة.

تعليمات القرارات المتداخلة

لنفترض أن مبرمجًا يكتب برنامجًا يقرأ معرّف اللعبة وعدد اللاعبين ويطبع ما إذا كان لدى المستخدم العدد الصحيح من اللاعبين للعبة.

قد يبدأ المبرمج بما يلي:

    if game == 1 and players < 2:
      print("Not enough players")
    if game == 1 and players > 4:
      print("Too many players")
    if game == 1 and (2 <= players <= 4):
      print("Ready to start")
    if game == 2 and players < 3:
      print("Not enough players")
    if game == 2 and players > 6:
      print("Too many players")
    if game == 2 and (3 <= players <= 6):
      print("Ready to start")

يدرك المبرمج أن الشِفرة زائدة عن الحاجة. ماذا لو كان بإمكانه تحديد معرّف اللعبة أولاً ثم اتخاذ قرار بشأن اللاعبين؟ يسمح التداخل بوضع تعليمة قرار داخل تعليمة قرار أخرى، ويُشار إلى ذلك بمستوى المسافة البادئة.

برنامج محسّن:

    if game == 1:
      if players < 2:
        print("Not enough players")
      elif players > 4:
        print("Too many players")
      else:
        print("Ready to start")
    if game == 2:
      if players < 3:
        print("Not enough players")
      elif players > 6:
        print("Too many players")
      else:
        print("Ready to start")
    # اختبار معرّفات الألعاب 3 وما بعدها

نقطة تحقق

مثال: تحديد النباتات السامة

مفاهيم تطبيقية

استخدام تعليمات الشرط المتداخلة

1.
بالنظر إلى المثال أعلاه. إذا كان leaf_count = 9 و leaf_shape = "teardrop"، فما الناتج؟
  1. Might be poison ivy
  2. Might be poison oak
  3. Might be poison sumac
2.
إذا كان num_dancers = 49، فماذا سيُطبع؟
if num_dancers < 0:
  print("Error: num_dancers is negative")
else:
  if num_dancers % 2 == 1:
    print("Error: num_dancers is odd")
  print(num_dancers, "dancers")
  1. Error: num_dancers is odd
  2. 49 dancers
  3. Error: num_dancers is odd
    49 dancers
3.
إذا كان x = 256، و y = 513، و max = 512، فأي مما يلي سيتم تنفيذه؟
if x == y:
  # الجزء الرئيسي 1
elif x < y:
  # الجزء الرئيسي 2
  if y >= max:
    # الجزء الرئيسي 3
  else:
    # الجزء الرئيسي 4
else:
  # الجزء الرئيسي 5
  1. Body 2
  2. Body 2, Body 3
  3. Body 2, Body 5
4.
إذا كان x =118، و y = 300، و max = 512، فأي مما يلي سيتم تنفيذه؟
if x == y:
  # الجزء الرئيسي 1
elif x < y:
  # الجزء الرئيسي 2
  if y >= max:
    # الجزء الرئيسي 3
else:
  # الجزء الرئيسي 4
else:
  # الجزء الرئيسي 5
  1. Body 2
  2. Body 3
  3. Error

جرّب بنفسك

طلبات الوجبات

اكتب برنامجًا يقرأ سلسلة نصية، إما "lunch" أو "dinner"، تمثل اختيار القائمة، وعددًا صحيحًا، إما 1، 2، أو 3، يمثل اختيار الوجبة للمستخدم. ثم يطبع البرنامج اختيار الوجبة للمستخدم.

خيارات وجبة الغداء

  • 1: سلطة سيزر
  • 2: لفائف دجاج حارة
  • 3: حساء اليقطين

خيارات وجبة العشاء

  • 1: سلمون مخبوز
  • 2: برغر الديك الرومي
  • 3: ريزوتو الفطر

مثال: إذا كان الإدخال:
lunch
3

فإن الإخراج هو:
Your order: Butternut squash soup