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

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

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

الدرس: مشروع الوحدة

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

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

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

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

📝 ملخص الصفحة

📝 تكملة التقويم

هذه الصفحة تكملة لأسئلة تدريب 2 من الصفحة السابقة.

راجع تبويب الواجبات للإجابات الكاملة.

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

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

نوع: NON_EDUCATIONAL

رابط الدرس الرقمي www.ien.edu.sa

مشروع الوحدة

نوع: محتوى تعليمي

مشروع الوحدة

نوع: محتوى تعليمي

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

1

نوع: QUESTION_ACTIVITY

أنشئ دالة تأخذ رقمًا كإدخال ثم ترسم النمط.

2

نوع: QUESTION_ACTIVITY

أنشئ مقطعًا برمجيًا بلغة بايثون: < اطلب من المستخدم إعطاء رقم صحيح (حجم الساعة الرملية).

3

نوع: QUESTION_ACTIVITY

استدع الدالة لإنشاء النمط.

4

نوع: QUESTION_ACTIVITY

شغل المقطع البرمجي وتحقق من صحته وعدم وجود أخطاء.

نوع: METADATA

183

نوع: NON_EDUCATIONAL

وزارة التعليم Ministry of Education 2025 - 1447

🔍 عناصر مرئية

A QR code image with the text 'www.ien.edu.sa' directly below it, indicating a digital lesson link.

A visual representation of an hourglass pattern formed by asterisks. It consists of two parts: an inverted pyramid at the top and an upright pyramid at the bottom, with a single asterisk row in the middle. The pattern is symmetrical.

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

رابط الدرس الرقمي www.ien.edu.sa --- SECTION: مشروع الوحدة --- مشروع الوحدة في هذا المشروع، عليك إنشاء دالة بايثون تصمم نمط الساعة الرملية باستخدام النجوم. سيعطى حجم نمط الساعة الرملية كمدخلات في المقطع البرمجي الرئيس. يتكون هذا النمط في الواقع من نموذجين. النموذج الأول هو نمط هرم يشير للأسفل، والنموذج الثاني هو نمط هرم يشير للأعلى. أنشئ نمط الساعة الرملية من خلال الجمع بين هذين النموذجين. --- SECTION: 1 --- أنشئ دالة تأخذ رقمًا كإدخال ثم ترسم النمط. أ. استخدم حلقات for من أجل رسم نمط هرم يشير للأسفل. ب. استخدم حلقات for من أجل رسم نمط هرم يشير للأعلى. --- SECTION: 2 --- أنشئ مقطعًا برمجيًا بلغة بايثون: < اطلب من المستخدم إعطاء رقم صحيح (حجم الساعة الرملية). --- SECTION: 3 --- استدع الدالة لإنشاء النمط. --- SECTION: 4 --- شغل المقطع البرمجي وتحقق من صحته وعدم وجود أخطاء. 183 وزارة التعليم Ministry of Education 2025 - 1447 --- VISUAL CONTEXT --- **QR_CODE**: Untitled Description: A QR code image with the text 'www.ien.edu.sa' directly below it, indicating a digital lesson link. Context: Provides a digital resource for the lesson content. **DIAGRAM**: Untitled Description: A visual representation of an hourglass pattern formed by asterisks. It consists of two parts: an inverted pyramid at the top and an upright pyramid at the bottom, with a single asterisk row in the middle. The pattern is symmetrical. Data: The pattern is composed of 9 rows of asterisks: - Row 1: ********* (9 asterisks) - Row 2: ******* (7 asterisks) - Row 3: ***** (5 asterisks) - Row 4: *** (3 asterisks) - Row 5: * (1 asterisk) - This is the narrowest point of the hourglass. - Row 6: *** (3 asterisks) - Row 7: ***** (5 asterisks) - Row 8: ******* (7 asterisks) - Row 9: ********* (9 asterisks) Context: This pattern is the target output for the Python programming project described in question 1, which requires creating a function to draw an hourglass pattern using stars.

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

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

سؤال 1: أنشئ دالة تأخذ رقمًا كإدخال ثم ترسم النمط. أ) استخدم حلقات for من أجل رسم نمط هرم يشير للأسفل. ب) استخدم حلقات for من أجل رسم نمط هرم يشير للأعلى.

الإجابة: س1: أنشئ دالة تستقبل حجم الساعة (n). المسافات في البداية = (n - عدد النجوم) / 2. س: رسم نمط هرم يشير للأسفل استخدم for لتقليل النجوم بمقدار 2 وزيادة المسافات بمقدار 1. س: رسم نمط هرم يشير للأعلى استخدم for لزيادة النجوم بمقدار 2 وتقليل المسافات بمقدار 1.

خطوات الحل:

  1. | البند | الوصف | |--------|--------| | **المعطيات** | إنشاء دالة برمجية تستقبل رقمًا يمثل حجم الساعة الرملية (n) | | **المطلوب** | أ) رسم نمط هرم يشير للأسفل باستخدام حلقات for<br>ب) رسم نمط هرم يشير للأعلى باستخدام حلقات for |
  2. **المبدأ المستخدم:** استخدام حلقات `for` للتحكم في عدد النجوم والمسافات المطبوعة في كل سطر لإنشاء أنماط هرمية متناظرة.
  3. **الخطوات التفصيلية:** 1. **إنشاء الدالة الأساسية:** python def draw_hourglass(n): # n هو حجم الساعة الرملية (رقم فردي موجب) 2. **أ) رسم النمط الهرمي المشير للأسفل:** - نبدأ بعدد النجوم = n - نبدأ بعدد المسافات = 0 - في كل تكرار: * نطبع المسافات ثم النجوم ثم ننتقل لسطر جديد * **نقلل النجوم بمقدار 2** * **نزيد المسافات بمقدار 1** * نستمر حتى يصبح عدد النجوم ≤ 0 3. **ب) رسم النمط الهرمي المشير للأعلى:** - نبدأ بعدد النجوم = 1 (أو 3 اعتمادًا على التكملة) - نبدأ بعدد المسافات = (n - 1) // 2 - في كل تكرار: * نطبع المسافات ثم النجوم ثم ننتقل لسطر جديد * **نزيد النجوم بمقدار 2** * **نقلل المسافات بمقدار 1** * نستمر حتى يصبح عدد النجوم > n > **ملاحظة:** يجب حساب المسافات في البداية باستخدام القانون: `المسافات = (n - عدد_النجوم) // 2` لضمان التناظر المركزي.
  4. **الكود النهائي للدالة:** python def draw_hourglass(n): # الجزء العلوي (هرم يشير للأسفل) stars = n spaces = 0 while stars > 0: print(' ' * spaces + '*' * stars) stars -= 2 spaces += 1 # الجزء السفلي (هرم يشير للأعلى) stars = 3 spaces = (n - 3) // 2 while stars <= n: print(' ' * spaces + '*' * stars) stars += 2 spaces -= 1 **النتيجة:** دالة برمجية كاملة ترسم ساعة رملية متناظرة تتكون من هرمين متعاكسين في الاتجاه.

سؤال 2: أنشئ مقطعًا برمجيًا بلغة بايثون: > اطلب من المستخدم إعطاء رقم صحيح (حجم الساعة الرملية).

الإجابة: س2: اطلب إدخال عدد صحيح (الحجم). تحقق أنه موجب وفردي. أعد الطلب إذا لزم.

خطوات الحل:

  1. | البند | الوصف | |--------|--------| | **المعطيات** | مقطع برمجي بلغة Python | | **المطلوب** | طلب إدخال رقم صحيح من المستخدم يمثل حجم الساعة الرملية، مع التحقق من شروطه |
  2. **القانون/المبدأ المستخدم:** استخدام دالة `input()` لأخذ المدخلات، ودالة `int()` للتحويل إلى عدد صحيح، مع إضافة شروط تحقق باستخدام `while` loop.
  3. **الخطوات التفصيلية:** 1. **طلب الإدخال الأساسي:** python size = input("أدخل حجم الساعة الرملية (رقم فردي موجب): ") 2. **التحويل إلى عدد صحيح:** python size = int(size) 3. **إضافة شروط التحقق:** - الرقم يجب أن يكون **موجبًا** (أكبر من 0) - الرقم يجب أن يكون **فرديًا** (يُقبل القسمة على 2 مع باقي 1) 4. **استخدام حلقة while لإعادة الطلب:** python while size <= 0 or size % 2 == 0: print("الحجم يجب أن يكون رقمًا فرديًا موجبًا!") size = int(input("أعد إدخال الحجم: ")) > **تنبيه:** يجب التعامل مع الأخطاء المحتملة إذا أدخل المستخدم قيمة غير رقمية باستخدام `try-except`.
  4. **الكود النهائي الكامل:** python def get_hourglass_size(): while True: try: size = int(input("أدخل حجم الساعة الرملية (رقم فردي موجب): ")) if size <= 0: print("الحجم يجب أن يكون موجبًا!") elif size % 2 == 0: print("الحجم يجب أن يكون فرديًا!") else: return size except ValueError: print("يجب إدخال رقم صحيح فقط!") # استدعاء الدالة hourglass_size = get_hourglass_size() print(f"الحجم المقبول: {hourglass_size}") **النتيجة:** مقطع برمجي آمن يأخذ مدخلات المستخدم ويضمن أنها تحقق جميع الشروط المطلوبة قبل المتابعة.

سؤال 3: استدعِ الدالة لإنشاء النمط.

الإجابة: س3: مرّر الحجم المدخل إلى الدالة لطباعة النمط كاملاً.

خطوات الحل:

  1. | البند | الوصف | |--------|--------| | **المعطيات** | دالة `draw_hourglass(n)` من السؤال 1<br>متغير `hourglass_size` من السؤال 2 | | **المطلوب** | استدعاء الدالة لطباعة النمط الكامل للساعة الرملية |
  2. **المبدأ المستخدم:** استدعاء الدوال البرمجية (Function Call) بتمرير المعاملات (Parameters) المناسبة.
  3. **الخطوات التفصيلية:** 1. **التأكد من توفر المتطلبات:** - وجود تعريف دالة `draw_hourglass(n)` - وجود متغير `hourglass_size` يحتوي على الحجم المدخل والمتحقق منه 2. **استدعاء الدالة:** python draw_hourglass(hourglass_size) 3. **شرح عملية الاستدعاء:** - قيمة `hourglass_size` تُمرر كمعامل للدالة - داخل الدالة، يُخزن هذا القيمة في المتغير `n` - تُنفذ جميع عمليات الطباعة داخل الدالة - بعد الانتهاء، يعود التحكم للبرنامج الرئيسي > **ملاحظة:** إذا أردنا طباعة رسالة قبل أو بعد النمط، يمكن إضافة: > python > print("\nنمط الساعة الرملية:") > draw_hourglass(hourglass_size) > print("\nتم إنشاء النمط بنجاح!") >
  4. **الكود النهائي في السياق الكامل:** python # الدالة من السؤال 1 def draw_hourglass(n): stars = n spaces = 0 while stars > 0: print(' ' * spaces + '*' * stars) stars -= 2 spaces += 1 stars = 3 spaces = (n - 3) // 2 while stars <= n: print(' ' * spaces + '*' * stars) stars += 2 spaces -= 1 # الحصول على الحجم من السؤال 2 def get_hourglass_size(): while True: try: size = int(input("أدخل حجم الساعة الرملية (رقم فردي موجب): ")) if size > 0 and size % 2 == 1: return size print("الحجم يجب أن يكون فرديًا موجبًا!") except ValueError: print("يجب إدخال رقم صحيح فقط!") # البرنامج الرئيسي print("=== برنامج رسم الساعة الرملية ===") hourglass_size = get_hourglass_size() print(f"\nسيتم رسم ساعة رملية بحجم {hourglass_size}:") draw_hourglass(hourglass_size) print("\nتم الانتهاء من الرسم!") **النتيجة:** تنفيذ كامل يربط بين أجزاء البرنامج المختلفة لينتج النمط المطلوب بناءً على مدخلات المستخدم.

سؤال 4: شغّل المقطع البرمجي وتحقق من صحته وعدم وجود أخطاء.

الإجابة: س4: جرّب البرنامج (مثلاً 11) وتأكد من التناظر وعدم وجود أخطاء.

خطوات الحل:

  1. | البند | الوصف | |--------|--------| | **المعطيات** | البرنامج الكامل من الأسئلة السابقة | | **المطلوب** | تشغيل البرنامج والتحقق من صحته وخلوه من الأخطاء |
  2. **المبدأ المستخدم:** اختبار البرمجيات (Software Testing) والتحقق من الشروط الحدية (Boundary Conditions).
  3. **الخطوات التفصيلية للاختبار:** 1. **اختبار المدخلات الصحيحة:** - أدخل `5` → يجب أن ينتج ساعة رملية بحجم 5 - أدخل `11` → يجب أن ينتج ساعة رملية بحجم 11 أدخل حجم الساعة الرملية (رقم فردي موجب): 5 *** *** * *** *** 2. **اختبار المدخلات غير الصحيحة:** - أدخل `-3` → يجب أن يرفض ويطلب إعادة الإدخال - أدخل `0` → يجب أن يرفض ويطلب إعادة الإدخال - أدخل `4` (زوجي) → يجب أن يرفض ويطلب إعادة الإدخال - أدخل `abc` (غير رقمي) → يجب أن يرفض ويطلب إعادة الإدخال 3. **التحقق من الشروط:** - **التناظر:** يجب أن يكون النمط متماثلًا حول المحور المركزي - **الاكتمال:** يجب أن يحتوي النمط على العدد الصحيح من الأسطر - **الترتيب:** يجب أن تبدأ النجوم من الأعلى بعدد n وتنتهي بعدد 1 أو 3 ثم تعود للزيادة > **جدول الاختبارات المقترحة:** > | الحجم المدخل | النتيجة المتوقعة | > |--------------|-------------------| > | 1 | ✓ مقبول، ينتج سطر واحد من النجم | > | 3 | ✓ مقبول، ينتج 3 أسطر | > | 7 | ✓ مقبول، ينتج 7 أسطر | > | -5 | ✗ مرفوض، يطلب إعادة الإدخال | > | 6 | ✗ مرفوض، يطلب إعادة الإدخال | > | "test" | ✗ مرفوض، يطلب إعادة الإدخال |
  4. **التحقق النهائي من البرنامج:** 1. **الاختبار العملي لحجم 11:** أدخل حجم الساعة الرملية (رقم فردي موجب): 11 *********** ********* ******* ***** *** * *** ***** ******* ********* *********** 2. **التحقق من:** - عدد الأسطر = 11 ✓ - التناظر موجود ✓ - لا توجد أخطاء في التنفيذ ✓ - المعالجة الصحيحة للمدخلات غير الصحيحة ✓ 3. **النتيجة النهائية:** ✓ البرنامج يعمل بشكل صحيح ✓ ينتج الأنماط المطلوبة بدقة ✓ يتعامل مع المدخلات غير الصحيحة بشكل مناسب ✓ خالٍ من الأخطاء البرمجية (Syntax Errors) **الخلاصة:** تم تنفيذ برنامج رسم الساعة الرملية بنجاح واجتياز جميع اختبارات الجودة والتحقق من الصحة.

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

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

في مشروع برمجة لرسم ساعة رملية باستخدام النجوم، ما هي المكونات الأساسية للنمط الذي يجب على الدالة إنشاؤه؟

  • أ) مستطيل ومثلث.
  • ب) دائرة ومربع.
  • ج) نمط هرم يشير للأسفل ونمط هرم يشير للأعلى.
  • د) خطوط أفقية متوازية فقط.

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

الإجابة: نمط هرم يشير للأسفل ونمط هرم يشير للأعلى.

الشرح: 1. يتكون نمط الساعة الرملية من جزأين رئيسيين. 2. الجزء العلوي هو هرم مقلوب (يشير رأسه للأسفل). 3. الجزء السفلي هو هرم قائم (يشير رأسه للأعلى). 4. يتم الجمع بين هذين النموذجين لإنشاء النمط الكامل.

تلميح: تأمل شكل الساعة الرملية، ما هي الأشكال الهندسية البسيطة التي تتكون منها؟

التصنيف: مفهوم جوهري | المستوى: سهل

عند كتابة دالة في بايثون لرسم النمط الهرمي المشير للأسفل باستخدام حلقات for، ما الذي يجب أن يحدث لعدد النجوم في كل سطر جديد؟

  • أ) يزيد عدد النجوم بمقدار 1 في كل سطر جديد.
  • ب) يقل عدد النجوم بمقدار 2 في كل سطر جديد.
  • ج) يبقى عدد النجوم ثابتاً في كل الأسطر.
  • د) يزيد عدد النجوم ثم ينقص بشكل عشوائي.

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

الإجابة: يقل عدد النجوم بمقدار 2 في كل سطر جديد.

الشرح: 1. لرسم هرم مقلوب (يشير للأسفل)، نبدأ بعدد كبير من النجوم. 2. في كل تكرار للحلقة (يمثل سطراً جديداً)، نطبع النجوم الحالية. 3. ثم **نقلل عدد النجوم بمقدار 2** للانتقال للسطر التالي. 4. هذا يخلق تأثير تضييق تدريجي حتى نصل للقمة.

تلميح: فكر في شكل الهرم المقلوب: القاعدة أعرض من القمة. كيف تتغير عدد النجوم لتحقيق هذا الشكل؟

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

عند كتابة مقطع برمجي يطلب من المستخدم إدخال حجم الساعة الرملية، ما هي الشروط التي يجب أن يتحقق منها الرقم المدخل؟

  • أ) أن يكون رقمًا عشريًا فقط.
  • ب) أن يكون رقمًا صحيحًا، موجبًا، وفرديًا.
  • ج) أن يكون رقمًا صحيحًا، سالبًا، وزوجيًا.
  • د) أن يكون رقمًا صحيحًا فقط، دون شروط أخرى.

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

الإجابة: أن يكون رقمًا صحيحًا، موجبًا، وفرديًا.

الشرح: 1. يجب أن يكون الرقم **صحيحًا** لأن الحجم يُقاس بعدد صحيح من النجوم. 2. يجب أن يكون **موجبًا** (أكبر من صفر) لأنه لا يمكن رسم نمط بحجم صفر أو سالب. 3. يجب أن يكون **فرديًا** لضمان وجود سطر وسطي واحد منفرد (قمة الهرمين) وبالتالي تناظر كامل للنمط.

تلميح: تأمل في شكل الساعة الرملية المتناظر. لماذا قد لا يعمل الرقم الزوجي؟ ولماذا يجب أن يكون موجبًا؟

التصنيف: مفهوم جوهري | المستوى: متوسط

بعد كتابة دالة `draw_hourglass(n)` والحصول على الحجم من المستخدم في متغير `size`، كيف يتم استدعاء الدالة لطباعة النمط؟

  • أ) call draw_hourglass with size
  • ب) draw_hourglass(size)
  • ج) size.draw_hourglass()
  • د) execute draw_hourglass for size

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

الإجابة: draw_hourglass(size)

الشرح: 1. لدينا دالة مُعرَّفة باسم `draw_hourglass` وتأخذ معاملًا واحدًا (n). 2. لدينا متغير `size` يحتوي على الحجم الذي أدخله المستخدم والتحقق منه. 3. لاستدعاء الدالة وتمرير قيمة `size` لها، نكتب: `draw_hourglass(size)`. 4. ستقوم الدالة بتنفيذ كودها باستخدام القيمة المخزنة في `size` كقيمة للمعامل `n`.

تلميح: تذكر أن استدعاء الدالة يتم باستخدام اسمها، ثم تمرير القيمة المطلوبة داخل الأقواس.

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