تدريب 3 - كتاب المهارات الرقمية - الصف 8 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب المهارات الرقمية - الصف 8 - الفصل 1 | المادة: المهارات الرقمية | المرحلة: الصف 8 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: تدريب 3

📚 معلومات الصفحة

الكتاب: كتاب المهارات الرقمية - الصف 8 - الفصل 1 | المادة: المهارات الرقمية | المرحلة: الصف 8 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: تمارين وأسئلة

📝 ملخص الصفحة

📝 صفحة تمارين وأسئلة

هذه الصفحة تحتوي على أسئلة مرقمة للواجبات والتقييم.

راجع تبويب الواجبات للإجابات الكاملة على أسئلة الصفحة.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

تدريب 3

نوع: QUESTION_HOMEWORK

اكتب مقطعًا برمجيًا لعرض جدول الضرب لجميع الأرقام من 1 إلى 10.

تدريب 4

نوع: QUESTION_HOMEWORK

ما وظيفة المقطع البرمجي التالي؟ وما مخرجاته؟

نوع: METADATA

الناتج:

نوع: METADATA

Ministry of Education 2025 - 1447 161

🔍 عناصر مرئية

A Python code snippet with nested for loops and a break statement.

الناتج:

An empty rectangular box labeled 'الناتج:' (Output:) for writing the predicted output of the Python code.

📄 النص الكامل للصفحة

--- SECTION: تدريب 3 --- اكتب مقطعًا برمجيًا لعرض جدول الضرب لجميع الأرقام من 1 إلى 10. --- SECTION: تدريب 4 --- ما وظيفة المقطع البرمجي التالي؟ وما مخرجاته؟ 1. ما وظيفة المقطع البرمجي التالي؟ 2. وما مخرجاته؟ الناتج: Ministry of Education 2025 - 1447 161 --- VISUAL CONTEXT --- **CODE_BLOCK**: Untitled Description: A Python code snippet with nested for loops and a break statement. Context: This code demonstrates nested loops, conditional statements, and the 'break' keyword in Python, requiring analysis of loop execution and output prediction. **TEXT_BOX**: الناتج: Description: An empty rectangular box labeled 'الناتج:' (Output:) for writing the predicted output of the Python code. Context: This box is provided for students to write the output generated by the given Python code snippet.

✅ حلول أسئلة الكتاب الرسمية

عدد الأسئلة: 2

سؤال 3: تدريب 3 اكتب مقطعًا برمجيًا لعرض جدول الضرب لجميع الأرقام من 1 إلى 10.

الإجابة: س3: يتم ذلك باستخدام حلقتين متداخلتين: حلقة خارجية للأعداد من 1 إلى 10، وداخلية للأعداد من 1 إلى 10؛ وفي كل تكرار يتم حساب حاصل الضرب وطباعته.

خطوات الحل:

  1. | العنصر | الوصف | |--------|--------| | **المعطى** | مطلوب كتابة مقطع برمجي لعرض جدول الضرب لجميع الأرقام من 1 إلى 10. | | **المطلوب** | كتابة الكود البرمجي المناسب باستخدام الحلقات المتداخلة. |
  2. **المبدأ المستخدم:** استخدام **حلقتين متداخلتين (Nested Loops)**. الحلقة الخارجية تمثل المضروب (الأرقام من 1 إلى 10)، والحلقة الداخلية تمثل المضروب فيه (أيضًا من 1 إلى 10).
  3. **خطوات كتابة الكود (باستخدام لغة Python كمثال):** 1. نبدأ بحلقة خارجية `for i in range(1, 11):` لتكرار الأرقام من 1 إلى 10. 2. داخل الحلقة الخارجية، ننشئ حلقة داخلية `for j in range(1, 11):` لتكرار الأرقام من 1 إلى 10 مرة أخرى. 3. في جسم الحلقة الداخلية، نحسب حاصل الضرب `result = i * j`. 4. نطبع النتيجة بشكل منظم، مثلاً: `print(f"{i} x {j} = {result}")`. 5. يمكن إضافة سطر فارغ `print()` بعد انتهاء الحلقة الداخلية لفصل جداول كل رقم.
  4. > **ملاحظة:** نطاق `range(1, 11)` يبدأ من 1 وينتهي قبل 11، أي يشمل الأرقام من 1 إلى 10.
  5. **الكود البرمجي النهائي (مثال):** python for i in range(1, 11): for j in range(1, 11): print(f"{i} x {j} = {i*j}") print() # لترك سطر فارغ بين جداول الأرقام **مخرج البرنامج:** سيعرض 10 جداول ضرب كاملة، كل جدول لرقم من 1 إلى 10، مع عرض جميع النواتج من 1x1 حتى 10x10.

سؤال 4: تدريب 4 ما وظيفة المقطع البرمجي التالي؟ وما مخرجاته؟ for i in range(3): for j in range(3): if j == i: break print(i, j)

الإجابة: س 4 (الوظيفة): يمرّ على قيم i من 0 إلى 2، وداخل كل قيمة يمرّ على j من 0 إلى 2، لكنه يوقف الحلقة الداخلية عند وصول j إلى قيمة i، لذلك يطبع فقط الأزواج التي تحقق j < i ، س 4 (المخرجات): 0 1 0 2 1 2

خطوات الحل:

  1. | العنصر | الوصف | |--------|--------| | **المعطى** | مقطع برمجي مكتوب بلغة Python يحتوي على حلقات متداخلة وجملة شرطية `break`. | | **المطلوب** | تحديد وظيفة هذا الكود (ماذا يفعل؟) وتحديد مخرجاته عند التنفيذ. |
  2. **المبدأ المستخدم:** تحليل تدفق تنفيذ **الحلقات المتداخلة** مع استخدام جملة `break` التي **توقف الحلقة الداخلية** فورًا عند تحقق شرطها.
  3. **تحليل خطوات التنفيذ:** 1. الحلقة الخارجية: `for i in range(3):` * تأخذ `i` القيم: `0`, `1`, `2`. 2. لكل قيمة من `i`، تدخل الحلقة الداخلية: `for j in range(3):` * من المفترض أن تأخذ `j` القيم: `0`, `1`, `2` لكل `i`. 3. **الشرط الحاسم:** `if j == i:` * عندما تصبح قيمة `j` مساوية لقيمة `i` الحالية، يتم تنفيذ `break`. * `break` **توقف الحلقة الداخلية بالكامل** لهذه الدورة من الحلقة الخارجية. 4. جملة الطباعة `print(i, j)`: * تُنفَّذ فقط إذا **لم** يتم تنفيذ `break`. * أي، تُنفَّذ فقط للأزواج `(i, j)` حيث `j < i`.
  4. **تتبع التنفيذ خطوة بخطوة:** | `i` | `j` المتوقعة | `j == i`؟ | `break`؟ | `print(i, j)`؟ | الناتج | |-----|--------------|------------|----------|----------------|--------| | 0 | 0 | **نعم** | **نعم** | لا | - | | 0 | (توقف) | - | - | - | - | | 1 | 0 | لا | لا | **نعم** | 1 0 | | 1 | 1 | **نعم** | **نعم** | لا | - | | 1 | (توقف) | - | - | - | - | | 2 | 0 | لا | لا | **نعم** | 2 0 | | 2 | 1 | لا | لا | **نعم** | 2 1 | | 2 | 2 | **نعم** | **نعم** | لا | - | > **تصحيح:** لاحظ أن الجدول أعلاه يتبع المنطق بدقة، ولكن الإجابة المعطاة تشير إلى مخرجات مختلفة. دعنا نتحقق من الكود الأصلي: الشرط هو `if j == i: break`. هذا يعني أن الطباعة `print(i, j)` تحدث **فقط قبل** أن يصبح `j == i`. لذلك، بالنسبة لـ `i=0`، بمجرد أن يبدأ `j` بقيمة 0، يتحقق الشرط `0==0` ويتم `break` فورًا دون أي طباعة. الإجابة المعطاة (`0 1`, `0 2`) **غير صحيحة** لهذا الكود. المخرجات الصحيحة هي فقط الأزواج حيث `j < i` كما في الجدول أعلاه. **الوظيفة:** يقوم هذا المقطع البرمجي بطباعة جميع أزواج الفهرس `(i, j)` حيث `j` أقل من `i`، وذلك لأن الحلقة الداخلية تتوقف قبل أن تصل `j` إلى قيمة `i` أو تتجاوزها. **المخرجات الصحيحة عند التنفيذ:** 1 0 2 0 2 1

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 2 بطاقة لهذه الصفحة

ما هي الطريقة الصحيحة لكتابة مقطع برمجي لعرض جدول الضرب لجميع الأرقام من 1 إلى 10؟

  • أ) استخدام حلقة while واحدة مع متغيرين يتغيران في كل مرة.
  • ب) كتابة 100 سطر طباعة منفصل لكل عملية ضرب.
  • ج) استخدام حلقتين for متداخلتين، خارجية للأرقام من 1 إلى 10 وداخلية للأرقام من 1 إلى 10، مع حساب وطباعة حاصل الضرب في كل تكرار.
  • د) استخدام مصفوفة (Array) تحتوي على جميع النتائج مسبقاً وطباعتها.

الإجابة الصحيحة: c

الإجابة: استخدام حلقتين for متداخلتين، خارجية للأرقام من 1 إلى 10 وداخلية للأرقام من 1 إلى 10، مع حساب وطباعة حاصل الضرب في كل تكرار.

الشرح: 1. المطلوب: طباعة جدول الضرب الكامل من 1x1 إلى 10x10. 2. الحل: استخدام حلقتين for متداخلتين (Nested Loops). 3. الحلقة الخارجية (مثلاً i) تمثل المضروب (من 1 إلى 10). 4. الحلقة الداخلية (مثلاً j) تمثل المضروب فيه (من 1 إلى 10). 5. في كل تكرار للحلقة الداخلية، نحسب i * j ونطبع النتيجة.

تلميح: فكر في هيكل مزدوج للتكرار: حلقة داخل حلقة.

التصنيف: صيغة/خطوات | المستوى: متوسط

ما وظيفة المقطع البرمجي التالي؟ for i in range(3): for j in range(3): if j == i: break print(i, j)

  • أ) طباعة جميع أزواج الفهرس (i, j) حيث i يساوي j.
  • ب) طباعة جميع أزواج الفهرس (i, j) حيث j أقل من i.
  • ج) طباعة جميع أزواج الفهرس (i, j) حيث i أقل من j.
  • د) طباعة جميع أزواج الفهرس (i, j) من (0,0) إلى (2,2).

الإجابة الصحيحة: b

الإجابة: طباعة جميع أزواج الفهرس (i, j) حيث j أقل من i.

الشرح: 1. الحلقة الخارجية i تأخذ القيم: 0, 1, 2. 2. لكل i، تدخل الحلقة الداخلية j (0, 1, 2). 3. الشرط: if j == i: break → توقف الحلقة الداخلية فوراً عندما تصبح j مساوية لـ i. 4. جملة الطباعة print(i, j) تنفذ فقط عندما لا يحدث break، أي عندما تكون j أقل من i. 5. المخرجات: (1, 0), (2, 0), (2, 1).

تلميح: ركز على تأثير جملة break عند تحقق الشرط j == i.

التصنيف: سؤال اختبار | المستوى: صعب