سؤال 1: تدريب 1: ماذا يحدث عند تشغيل المقطع البرمجي التالي: اختر الإجابة الصحيحة 1. Number = 12 if Number > 0 : print("رقم موجب") 2. Number != 12 if Number > 0 : print("رقم موجب")
الإجابة: 1. ستعرض الرسالة "رقم موجب" على الشاشة. 2. لن يعمل المقطع البرمجي لوجود خطأ في صيغة الأوامر (لأن المتغير Number لم يتم إسناد قيمة له).
خطوات الحل:
- **الخطوة 1: جدول تحليل المقطعين البرمجيين** | المقطع | المتغير | القيمة المُسنَدة | الشرط | الإخراج المتوقع | |--------|---------|------------------|--------|------------------| | 1 | Number | 12 | if Number > 0 | طباعة "رقم موجب" | | 2 | Number | **لا توجد قيمة** (غير مُعرَّف) | if Number > 0 | **خطأ في التنفيذ** |
- **الخطوة 2: المبدأ المستخدم** - في البرمجة، يجب **تهيئة المتغير** (إعطاؤه قيمة) قبل استخدامه في العمليات أو الشروط. - جملة `if` تتحقق من الشرط، وإذا كان **صحيحاً (True)** تُنفِّذ الكتلة البرمجية تحتها.
- **الخطوة 3: تحليل المقطع البرمجي الأول** 1. `Number = 12` → تُعطي المتغير `Number` القيمة **12**. 2. `if Number > 0 :` → تتحقق إذا كان `Number` أكبر من الصفر. - بما أن `12 > 0` هو **شرط صحيح**، تُنفَّذ الجملة التالية. 3. `print("رقم موجب")` → تطبع النص **"رقم موجب"** على الشاشة.
- **الخطوة 4: تحليل المقطع البرمجي الثاني** 1. `Number != 12` → **هذه ليست جملة إسناد**، بل هي مقارنة (تتحقق إذا كان `Number` لا يساوي 12). 2. المتغير `Number` **لم يُعطَ أي قيمة مسبقة**، لذا محاولة استخدامه في `if Number > 0` ستتسبب في **خطأ** (عادةً `NameError` في بايثون). 3. > **ملاحظة مهمة:** `=` للإسناد (كـ `Number = 12`)، بينما `==` أو `!=` للمقارنة.
- **الخطوة 5: الإجابة النهائية** - **المقطع 1:** سيعمل بشكل صحيح وسيُظهر الناتج: **"رقم موجب"**. - **المقطع 2:** **لن يعمل** وسيتوقف بسبب خطأ في تعريف المتغير `Number` قبل استخدامه.