شرح درس الشروط المتداخلة ثاني متوسط الفصل الأول
الشرط المتداخل هو جملة if موضوعة داخل جملة if أخرى، فلا يُفحص الشرط الداخلي إلا إذا تحقق الشرط الخارجي.

أهداف الدرس
- يوضح معنى الشرط المتداخل ومتى يحتاج إليه.
- يكتب if داخل if بمسافات بادئة صحيحة.
- يقارن بين الشرط المتداخل ودمج الشروط بـand.
- يتتبع برنامجًا متداخلًا بالجدول ويبسّطه عند الإمكان.
المفهوم الأساسي
الشرط المتداخل هو جملة if موضوعة داخل جملة if أخرى، فلا يُفحص الشرط الداخلي إلا إذا تحقق الشرط الخارجي.
شرح الدرس
عند دخول المدرسة يسألك الحارس أولًا: هل معك بطاقة الطالب؟ فإذا قلت نعم سألك السؤال الثاني: ما رقم فصلك؟ لا يصل السؤال الثاني إلا بعد نجاح الأول. هذه هي فكرة الشروط المتداخلة.
بنية الشرط المتداخل
نكتب الشرط الداخلي بإزاحة ٤ مسافات إضافية داخل الشرط الخارجي، فيكون عمق المسافات ٨ للأوامر الداخلية.
«الشرط الداخلي لا يُفحص إلا إذا تحقق الشرط الخارجي»
مثال تسجيل الدخول
نطلب اسم المستخدم أولًا، وإذا كان صحيحًا نطلب كلمة المرور. الاسم وكلمة المرور تجريبيان:
user = input("اسم المستخدم: ")
if user == "student":
password = input("كلمة المرور: ")
if password == "Saudi2030":
print("تم تسجيل الدخول")
else:
print("كلمة المرور خاطئة")
else:
print("اسم المستخدم غير موجود")نتتبع البرنامج بثلاثة إدخالات:
- student ثم Saudi2030: يطبع تم تسجيل الدخول.
- student ثم abc: يطبع كلمة المرور خاطئة.
- x: يطبع اسم المستخدم غير موجود، ولا يطلب كلمة المرور أصلًا.
كل else تتبع if التي لها المسافة البادئة نفسها.
مثال خصم بحسب العضوية والمبلغ
متجر لمستلزمات المدرسة يعطي العضو خصم ١٠ بالمئة، وإذا بلغت مشترياته ٢٠٠ ريال فأكثر فالخصم ٢٠ بالمئة. وغير العضو لا يحصل على خصم:
is_member = input("هل أنت عضو؟ (نعم/لا) ")
total = int(input("مبلغ المشتريات: "))
if is_member == "نعم":
if total >= 200:
print("الخصم 20 بالمئة")
else:
print("الخصم 10 بالمئة")
else:
print("لا يوجد خصم")نتتبع البرنامج بجدول ذهني:
- عضو ومبلغه ٢٥٠: الشرط الخارجي صحيح والداخلي صحيح، فالنتيجة الخصم 20 بالمئة.
- عضو ومبلغه ١٥٠: الخارجي صحيح والداخلي خاطئ، فالنتيجة الخصم 10 بالمئة.
- غير عضو ومبلغه ٣٠٠: الخارجي خاطئ فلا يُفحص الداخلي، والنتيجة لا يوجد خصم.
التبسيط بـ and
إذا كانت لدينا نتيجة واحدة عند تحقق الشرطين فيمكن استبدال التداخل بـand:
is_member = input("هل أنت عضو؟ (نعم/لا) ")
total = int(input("مبلغ المشتريات: "))
if is_member == "نعم" and total >= 200:
print("الخصم 20 بالمئة")هذا البرنامج أقصر، لكنه لا يعالج حالة العضو الذي مشترياته أقل من ٢٠٠ ولا حالة غير العضو. نستخدم التداخل عندما تختلف النتائج داخل كل فرع، ونستخدم and عندما تكون النتيجة واحدة.
ابدأ بتصميم القرارات على ورقة برسم أسهم، ثم حوّلها إلى برنامج، فتتجنب الأخطاء في المسافات.
نشاط تعليمي
التطبيق الأول
ما الذي يطبعه برنامج تسجيل الدخول عند إدخال اسم المستخدم student وكلمة المرور Saudi2030؟
يطبع «تم تسجيل الدخول».
أن يتتبع الطالب شرطين متداخلين.
التدريب الثاني
اكتب برنامجًا يسأل عن العمر، فإن كان ١٢ فأكثر يسأل هل معه إذن ولي الأمر، ويطبع «يمكنك الاشتراك» فقط إذا كان الجواب نعم.
if age >= 12: ثم داخله if permission == "نعم": ثم print("يمكنك الاشتراك").
أن يكتب الطالب شرطًا داخل شرط.
المسألة الثالثة
أعد كتابة الشرطين if a > 0: ثم داخله if b > 0: بشرط واحد.
if a > 0 and b > 0:.
أن يبسّط الطالب الشروط المتداخلة.
ملاحظات مهمة
- 1نستخدم الشروط المتداخلة حين يعتمد القرار الثاني على القرار الأول.
- 2تزداد المسافة البادئة ٤ مسافات مع كل مستوى.
- 3كل else ترتبط بـif لها المسافة نفسها.
- 4يمكن تبسيط بعض الشروط المتداخلة باستخدام and.
أخطاء شائعة
- ✗ خطأعدم إزاحة الشرط الداخلي.✓ الصواب: نزيحه ٤ مسافات إضافية.
- ✗ خطأوضع else بمسافات لا تطابق if المقصودة.✓ الصواب: نجعلهما على المحاذاة نفسها.
+عرض جميع الأخطاء (3) ←إخفاء الأخطاء الإضافية
- ✗ خطأكثرة التداخل بلا حاجة.✓ الصواب: نستخدم and إذا كانت لدينا نتيجة واحدة.
ملخص الدرس
- الشرط المتداخل هو if داخل if.
- لا يُفحص الشرط الداخلي إلا إذا تحقق الخارجي.
- المسافات البادئة تحدد ارتباط else بالشرط.
- and تبسّط بعض الحالات.
هل أتقنت الدرس؟اختبر نفسك من خلال اختبار قصير من عدة أسئلة.