ورقاتورقات تعليمية
تسجيل الدخولإنشاء حساب
درس

شرح درس اتخاذ القرارات ثاني متوسط الفصل الأول

الجملة ⁦ if-elif-else ⁩ تسمح للبرنامج باختيار مسار واحد من عدة مسارات، فتُفحص الشروط من الأعلى إلى الأسفل وتُنفّذ أول حالة يتحقق شرطها فقط.

المرحلة
المتوسطة
المادة
المهارات الرقمية
وقت القراءة
15 دقائق
الاختبار
متاح

🎯أهداف الدرس

  • يستخدم ⁦if-elif-else⁩ للتعامل مع أكثر من حالتين.
  • يرتّب الشروط ترتيبًا صحيحًا ويفسّر أثر الترتيب في النتيجة.
  • يدمج الشروط بـ⁦and⁩ و⁦or⁩ في قرار واحد.
  • يتتبع البرنامج بإدخالات مختلفة ويتوقع الناتج.

💡المفهوم الأساسي

الجملة ⁦if-elif-else⁩ تسمح للبرنامج باختيار مسار واحد من عدة مسارات، فتُفحص الشروط من الأعلى إلى الأسفل وتُنفّذ أول حالة يتحقق شرطها فقط.

شرح الدرس

عند توزيع الشهادات في المدرسة لا ينقسم الطلاب إلى ناجح وراسب فقط، بل توجد تقديرات متعددة. ولكي يتخذ البرنامج قرارًا بين أكثر من حالتين نستخدم ⁦elif⁩، وهي اختصار «else if» أي «وإلا إذا».

بنية if-elif-else

  • ⁦if⁩: تفحص الشرط الأول.
  • ⁦elif⁩: تفحص شرطًا إضافيًا إذا لم يتحقق ما قبله، ويمكن تكرارها عدة مرات.
  • ⁦else⁩: تُنفّذ إذا لم يتحقق أي شرط قبلها.

«يُنفّذ البرنامج مسارًا واحدًا فقط، ثم يتجاوز بقية الشروط»

برنامج تقدير الطالب

التقدير: ممتاز لمن حصل على ٩٠ فأعلى، وجيد جدًا لمن حصل على ٨٠ فأعلى، وجيد لمن حصل على ٧٠ فأعلى، ومقبول لمن حصل على ٦٠ فأعلى، وما دون ذلك راسب.

mark = int(input("أدخل الدرجة: "))
if mark >= 90:
    print("ممتاز")
elif mark >= 80:
    print("جيد جدًا")
elif mark >= 70:
    print("جيد")
elif mark >= 60:
    print("مقبول")
else:
    print("راسب")

نتتبع البرنامج بإدخالات مختلفة:

  • الإدخال ٩٥: الشرط الأول صحيح فيطبع ممتاز.
  • الإدخال ٨٥: الأول خاطئ والثاني صحيح فيطبع جيد جدًا.
  • الإدخال ٧٢: يصل إلى الشرط الثالث فيطبع جيد.
  • الإدخال ٦٠: يصل إلى الشرط الرابع فيطبع مقبول.
  • الإدخال ٤٥: لا يتحقق أي شرط فيطبع راسب.

أثر ترتيب الشروط

الترتيب مهم جدًا. افترض أننا بدأنا بالشرط الأخف:

mark = 75
if mark >= 60:
    print("مقبول")
elif mark >= 70:
    print("جيد")

هذا البرنامج يطبع: مقبول، مع أن الدرجة ٧٥ تستحق جيد. السبب أن الشرط الأول تحقق فتوقف البرنامج عن فحص بقية الشروط.

انتبه

نرتّب الشروط من الأكثر تحديدًا إلى الأقل، فنبدأ بالدرجات العليا في مسألة التقدير.

دمج الشروط

في متحف تراثي رسوم الدخول مجانية لمن عمره أقل من ٦ سنوات أو ٦٠ سنة فأكثر، وعشرة ريالات لمن عمره من ٦ إلى ١٧ سنة، وعشرون ريالا لمن عداهم. نحتاج ⁦or⁩ في الحالة المجانية و⁦and⁩ في الحالة الثانية:

age = int(input("أدخل العمر: "))
if age < 6 or age >= 60:
    print("الدخول مجاني")
elif age >= 6 and age <= 17:
    print("الرسوم 10 ريالات")
else:
    print("الرسوم 20 ريالا")

نتتبع البرنامج:

  • العمر ٤: الدخول مجاني.
  • العمر ١٠: يطبع ⁦الرسوم 10 ريالات⁩.
  • العمر ٣٠: يطبع ⁦الرسوم 20 ريالا⁩.
  • العمر ٦٠: الدخول مجاني.
فائدة

يمكن كتابة الشرط الثاني بصورة أقصر هي ⁦6 <= age <= 17⁩، وهي صحيحة في بايثون.

نشاط تعليمي

التطبيق الأول

ما الذي يطبعه برنامج التقدير عند إدخال الدرجة ٨٠؟

الإجابة

يطبع «جيد جدًا» لأن الشرط ⁦mark >= 80⁩ صحيح.

الهدف

أن يتتبع الطالب البرنامج عند حد التقدير.

المثال الثاني

اكتب برنامجًا يطبع «بارد» إذا كانت الحرارة ⁦temp⁩ أقل من ١٥ و«معتدل» إذا كانت أقل من ٣٠ و«حار» في غير ذلك.

الإجابة

⁦if temp < 15:⁩ ثم ⁦elif temp < 30:⁩ ثم ⁦else:⁩.

الهدف

أن يكتب الطالب ⁦if-elif-else⁩ من وصف مكتوب.

المسألة الثالثة

ما الخطأ في برنامج يبدأ بالشرط ⁦mark >= 60⁩ ثم ⁦mark >= 90⁩؟

الإجابة

الشرط الأول يتحقق لكل درجة تبلغ ٦٠ فأكثر فلا يصل البرنامج إلى شرط التسعين.

الهدف

أن يفسّر الطالب أثر ترتيب الشروط.

ملاحظات مهمة

  1. 1يُنفّذ مسار واحد فقط من ⁦if-elif-else⁩.
  2. 2يمكن استخدام أكثر من ⁦elif⁩، أما ⁦else⁩ فتأتي مرة واحدة في الآخر.
  3. 3رتّب الشروط من الأكثر تحديدًا إلى الأقل.
  4. 4استخدم ⁦and⁩ و⁦or⁩ لدمج شرطين في قرار واحد.

أخطاء شائعة

  • ✗ خطأكتابة ⁦else if⁩ بدل ⁦elif⁩.
    ✓ الصواب: نكتب ⁦elif⁩ في بايثون.
  • ✗ خطأوضع شرط بعد ⁦else⁩.
    ✓ الصواب: ⁦else⁩ تُكتب بلا شرط.
+عرض جميع الأخطاء (3) ←إخفاء الأخطاء الإضافية
  • ✗ خطأترتيب الشروط من الأخف إلى الأشد.
    ✓ الصواب: نبدأ بالشرط الأكثر تحديدًا.

ملخص الدرس

  • ⁦elif⁩ تفحص شرطًا آخر إذا لم يتحقق ما قبله.
  • ينفّذ البرنامج أول شرط صحيح ثم يتوقف عن الفحص.
  • الترتيب يؤثر في الناتج.
  • ⁦and⁩ و⁦or⁩ تدمجان شرطين في عبارة واحدة.

هل أتقنت الدرس؟اختبر نفسك من خلال اختبار قصير من عدة أسئلة.

حزمة الدرس