سؤال 1: تدريب 1: شغّل المقطع البرمجي التالي وأكمل الجدول. x=2 c=5 while c>0: for i in range (7,12,2): x=x+3 print(i,x) c=c-3 print(x,c)
الإجابة: تم إكمال جدول القيم في مفتاح الحل. القيم المضافة في الجدول الرئيسي هي: - الصف الأول: c=5, x=2 - الصف الثاني: الشاشة=7 5, i=7, x=5 - الصف الخامس: c=2 - الصف السادس: الشاشة=7 14, i=7 - الصف الأخير: الشاشة=-1 20 كما يوجد تتبع جانبي باللون الأحمر يوضح تسلسل القيم للمتغيرات (x, c, i) ومخرجات الشاشة لكل خطوة في الحلقات التكرارية، حيث تنتهي قيم المتغيرات عند x=20 و c=-1.
خطوات الحل:
- | المعطيات | الرمز | القيمة/الوصف | |----------|-------|--------------| | القيمة الابتدائية للمتغير `x` | x | 2 | | القيمة الابتدائية للمتغير `c` | c | 5 | | شرط استمرار الحلقة `while` | c > 0 | صحيح طالما `c` أكبر من 0 | | نطاق الحلقة `for` الداخلية | i | يبدأ من 7، وينتهي قبل 12، بخطوة 2 | | **المطلوب** | | تتبع تنفيذ الكود وإكمال جدول القيم لمخرجات `print` وقيم المتغيرات. |
- **المبادئ المستخدمة:** 1. فهم تسلسل تنفيذ التعليمات في البرنامج. 2. فهم عمل الحلقات التكرارية: * الحلقة `while`: تتكرر طالما الشرط `c > 0` صحيحاً. * الحلقة `for`: تتكرر لكل قيمة في التسلسل المُنشأ بواسطة `range(start, stop, step)`. 3. تحديث قيم المتغيرات: `x = x + 3` و `c = c - 3`.
- **خطوات الحل التفصيلية:** 1. **التنفيذ الأول للحلقة `while` (عند `c = 5`):** * شرط `while c>0` صحيح (5 > 0)، ندخل الحلقة. * ندخل الحلقة `for i in range(7,12,2)`. قيم `i` ستكون: 7، 9، 11. * عندما `i = 7`: `x = 2 + 3 = 5`. مخرجات `print(i, x)` هي: **7 5**. * عندما `i = 9`: `x = 5 + 3 = 8`. مخرجات `print(i, x)` هي: **9 8**. * عندما `i = 11`: `x = 8 + 3 = 11`. مخرجات `print(i, x)` هي: **11 11**. * انتهت الحلقة `for`. ننفذ `c = 5 - 3 = 2`. * مخرجات `print(x, c)` هي: **11 2**. 2. **التنفيذ الثاني للحلقة `while` (عند `c = 2`):** * شرط `while c>0` صحيح (2 > 0)، ندخل الحلقة مرة أخرى. * ندخل الحلقة `for i in range(7,12,2)` بقيمة `x` الحالية (11). * عندما `i = 7`: `x = 11 + 3 = 14`. مخرجات `print(i, x)` هي: **7 14**. * عندما `i = 9`: `x = 14 + 3 = 17`. مخرجات `print(i, x)` هي: **9 17**. * عندما `i = 11`: `x = 17 + 3 = 20`. مخرجات `print(i, x)` هي: **11 20**. * انتهت الحلقة `for`. ننفذ `c = 2 - 3 = -1`. * مخرجات `print(x, c)` هي: **20 -1**. 3. **التنفيذ التالي للحلقة `while`:** * شرط `while c>0` يُفحص: `-1 > 0` خطأ. * **تتوقف الحلقة `while`.** > **ملاحظة:** يوضح التتبع الجانبي (باللون الأحمر في النص الأصلي) تسلسل تحديث المتغيرات `(x, c, i)` ومخرجات `print` خطوة بخطوة، مما يساعد في فهم تدفق البرنامج.
- **النتيجة النهائية:** بعد تنفيذ الكود البرمجي بالكامل: * **قيمة المتغير `x` النهائية هي 20.** * **قيمة المتغير `c` النهائية هي -1.** * **آخر سطر مطروح على الشاشة هو `-1 20`** (نتيجة `print(x, c)` في نهاية التكرار الثاني والأخير للحلقة `while`). يتم تعبئة الجدول الرئيسي بناءً على هذه القيم والتسلسل الموضح أعلاه.