سؤال 5: السؤال الخامس: في الجدول التالي، يمكنك رؤية قيمة كل متغير أثناء تنفيذ المقطع البرمجي. املأ الفراغ في كل صف من المقطع البرمجي حسب الجدول: | الشرط | z | y | x | |---|---|---|---| | x=int(input("من فضلك أدخل قيمة المتغير x:")) | | | | | y=int(input("من فضلك أدخل قيمة المتغير y:")) | | | | | ____=0 | | | | | if x____y: | | | | | ____=x____y | | | | | print (____,____,____) | | | | | if x!____ and y!____: | | | | | ____=x____y | | | | | y=x____y | | | | | z=____+y | | | | | print (____,____,____) | | | | من فضلك أدخل قيمة المتغير x: من فضلك أدخل قيمة المتغير y:
الإجابة: الجدول المعبأ: | الشرط | z | y | x | |---|---|---|---| | | | | 6 | | | | 3 | | | | ز | | | | س < ص (2) 5 | | | True | | ز = س + ص (3) 5 | 9 | | | | print(ز, س, ص) (4) 5 | | | | | س != 5 و ص != 5 | | | True | | ز = س - ص (6) 5 | 3 | | | | ص = س - ص (7) 5 | | 0 | | | ز = س + ص (8) 5 | 3 | | | | print(س, ص, ز) (9) 5 | | | | المدخلات والمخرجات النهائية: من فضلك أدخل قيمة المتغير x: 6 من فضلك أدخل قيمة المتغير y: 3 9 3 6 3 0 3
خطوات الحل:
- **الخطوة 1: جدول المعطيات والمطلوب** | العنصر | الوصف | |--------|--------| | **المعطيات** | مقطع برمجي يحتوي على فراغات، وجدول يوضح قيم المتغيرات أثناء التنفيذ | | **المطلوب** | تعبئة الفراغات في المقطع البرمجي بناءً على قيم المتغيرات في الجدول |
- **الخطوة 2: المبدأ المستخدم** تحليل تدفق البرنامج خطوة بخطوة ومطابقة قيم المتغيرات في الجدول مع العمليات المنطقية والحسابية في الكود.
- **الخطوة 3: تحليل الجدول المعطى في الإجابة** من الإجابة الأصلية، نستنتج: 1. **المدخلات**: `x = 6`، `y = 3` 2. **قيم المتغيرات أثناء التنفيذ**: - بعد السطر `if x < y:` تكون `z = 9` (لأن `6 + 3 = 9`) - بعد السطر `if x != 5 and y != 5:` تكون: - `z = 3` (لأن `6 - 3 = 3`) - `y = 0` (لأن `6 - 3 = 3`، ثم `y = 3 - 3 = 0`؟ انتظر، هذا يحتاج تفسيرًا) - في النهاية `z = 3` و`y = 0` و`x = 6` 3. **المخرجات**: - الأولى: `9 3 6` (أي `z, y, x`) - الثانية: `3 0 3` (أي `x, y, z`)
- **الخطوة 4: تعبئة الفراغات في المقطع البرمجي** بناءً على التحليل: 1. `____=0` ← `z=0` (تهيئة z بصفر) 2. `if x____y:` ← `if x<y:` (لأن الشرط يؤدي إلى `z=x+y` ويعطي `z=9`) 3. `____=x____y` ← `z=x+y` (لأن النتيجة `z=9`) 4. `print (____,____,____)` ← `print (z,y,x)` (لأن المخرجات `9 3 6`) 5. `if x!____ and y!____:` ← `if x!=5 and y!=5:` (كما هو مذكور في الجدول) 6. `____=x____y` ← `z=x-y` (لأن النتيجة `z=3`) 7. `y=x____y` ← `y=x-y` (لكن هذا يعطي `y=3`، بينما الجدول يقول `y=0`! هناك خطأ أو حاجة لإعادة الحساب) > **ملاحظة**: ربما `y=x-y` تُنفَّد بعد أن أصبح `z=x-y`، لذا `y` تصبح `y=3-3=0` إذا اعتبرنا `y` القديمة = 3. 8. `z=____+y` ← `z=x+y` (لكن `x=6` و`y=0` يعطي `z=6`، بينما الجدول يقول `z=3`! هذا تناقض) > **تحليل أعمق**: ربما `z=____+y` هي `z=z+y`، مع `z=3` و`y=0` يعطي `z=3`، وهذا يتطابق. 9. `print (____,____,____)` ← `print (x,y,z)` (لأن المخرجات `3 0 3`)
- **الخطوة 5: الحل النهائي للمقطع البرمجي** بناءً على التصحيح: python x=int(input("من فضلك أدخل قيمة المتغير x:")) y=int(input("من فضلك أدخل قيمة المتغير y:")) z=0 if x<y: z=x+y print(z,y,x) if x!=5 and y!=5: z=x-y y=x-y # بعد هذا، y تصبح 0 إذا كانت y الأصلية = 3 z=z+y # z تصبح 3 + 0 = 3 print(x,y,z) مع المدخلات `x=6` و`y=3`، المخرجات: - الأولى: `9 3 6` - الثانية: `6 0 3` (ولكن الجدول يقول `3 0 3`، لذا ربناك خطأ في الجدول أو في تفسير `print` الثانية) > **تفسير**: ربما `print (x,y,z)` في السطر الأخير مطبوعة كـ `3 0 3` لأن `x` أُعيد تعيينها؟ لكن `x` تبقى 6. هذا يشير إلى احتمال خطأ في الجدول الأصلي.
- **الخطوة 6: الإجابة النهائية** بناءً على تحليل الجدول والإجابة الأصلية، الفراغات في المقطع البرمجي هي: 1. `z=0` 2. `if x<y:` 3. `z=x+y` 4. `print(z,y,x)` 5. `if x!=5 and y!=5:` 6. `z=x-y` 7. `y=x-y` 8. `z=z+y` 9. `print(x,y,z)` مع افتراض أن الجدول الأصلي قد يحتوي على أخطاء مطبعية في قيم `x` النهائية.