📝 ملخص الصفحة
📚 حلقات التكرار في البرمجة
المفاهيم الأساسية
حلقة For: تُستخدم عندما تريد تكرار مجموعة من الأوامر لعدد محدد من المرات، ويتم تحديد عدد التكرارات في معامل النطاق (range()).
حلقة While: تُستخدم عندما لا يكون عدد التكرارات معروفًا. تتكرر الحلقة طالما الشرط صحيحًا، وعندما يصبح خطأً يتوقف التكرار.
خريطة المفاهيم
```markmap
الوحدة الخامسة: برمجة الروبوت
الأدوات
VEXcode VR
#### واجهة بيئة VEXcode VR
##### فئات اللبنات البرمجية
###### التكرارات (Loops)
####### أنواع التكرارات
######## حلقة For
######### الغرض
- تكرار مجموعة أوامر لعدد محدد من المرات.
######### كيفية الاستخدام
- تحديد عدد التكرارات باستخدام `range()`.
######### مثال 9: تكرار الحركة
########## الهدف
- تكرار حركة الروبوت 9 مرات.
########## منطق البرنامج
- ضبط سرعة القيادة إلى 80%.
- التكرار 9 مرات باستخدام `for repeat_count in range(9):`.
- داخل الحلقة: التحرك للأمام 200 ملم، ثم الانتظار 5 مللي ثانية.
########## قواعد مهمة
- يجب أن تكون هناك مسافة بادئة (Indentation) قبل العبارات المكررة.
- يتم إضافة تأخير 5 مللي ثانية بشكل افتراضي عند استخدام الحلقة.
######## حلقة While
######### الغرض
- تكرار مجموعة أوامر طالما تحقق شرط معين (عندما لا يكون عدد التكرارات معروفًا).
######### كيفية الاستخدام
- فحص الشرط بعد كل تكرار.
- إذا كان الشرط خطأ من البداية، لا تُنفذ عبارات الحلقة.
######### مثال 10: العد
########## الهدف
- زيادة عداد حتى تصبح قيمته أكبر من 5.
########## منطق البرنامج
- إنشاء متغير `Counter` وتعيينه إلى 0.
- التكرار باستخدام `while not Counter > 5:`.
- داخل الحلقة: زيادة `Counter` بمقدار 1، ثم الانتظار 1 ثانية.
##### عرض الكود (Code Viewer)
###### مقارنة الأوامر واللبنات
####### `for repeat_count in range(9):` ↔ لبنة "تكرار 9"
####### `while not Counter > 5:` ↔ لبنة "تكرار حتى Counter < 5"
```
نقاط مهمة
- حلقة For مناسبة عندما تعرف عدد مرات التكرار مسبقًا.
- حلقة While مناسبة عندما يعتمد التكرار على شرط متغير.
- المسافة البادئة (Indentation) ضرورية لتحديد العبارات التي تنتمي داخل الحلقة.
- في الأمثلة المعطاة، تُستخدم الحلقات للتحكم في حركة الروبوت (For) وللعد (While).
📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
نوع: محتوى تعليمي
حلقة For
نوع: محتوى تعليمي
يتم استخدام حلقة for عندما تريد تكرار مجموعة من الأوامر لعدد محدد من المرات، ويتم تحديد عدد التكرارات في معامل النطاق (range ()).
نوع: محتوى تعليمي
في هذا المثال، ستكرر الحلقة for الخطوات التي تم وضع مسافة بادئة لها 9 مرات. سيتحرك الروبوت بسرعة 80 %، ويتقدم للأمام مسافة 200 مليمتر، ثم يكرر ذلك 9 مرات.
نوع: محتوى تعليمي
يجب أن تكون هناك مسافة بادئة قبل العبارات المكررة.
نوع: محتوى تعليمي
يتم إضافة تأخير 5 مللي ثانية بشكل افتراضي عند استخدام الحلقة.
نوع: محتوى تعليمي
حلقة While
نوع: محتوى تعليمي
يتم استخدام حلقة while عندما لا يكون عدد التكرارات معروفًا. عندما يكون الشرط صحيحًا فإن الحلقة تتكرر، ثم يتم فحص الشرط بعد كل تكرار. وعندما يكون الشرط خطأ يتوقف التكرار ويُنفذ الصف الذي يلي الحلقة في المقطع البرمجي. أما إذا كان الشرط خطأ من البداية فلن يتم تنفيذ عبارات الحلقة على الإطلاق.
نوع: محتوى تعليمي
في هذا المثال، ستنشئ متغيرًا باسم Counter ، ويتم تعيينه على 0 في بداية المقطع البرمجي، ثم يضيف المقطع البرمجي 1 حتى تكون قيمة المتغير Counter أكبر من 5.
نوع: NON_EDUCATIONAL
وزارة التعليم Ministry of Education 2025-1447
نوع: NON_EDUCATIONAL
360
🔍 عناصر مرئية
مثال 9: تكرار الحركة
A block-based programming example for a For loop, titled 'Example 9: Repeat Movement'. It shows a sequence of blocks: 'عندما بدأت' (When started), 'اضبط سرعة القيادة إلى 80 %' (Set drive velocity to 80%), 'تكرار 9' (Repeat 9 times), and inside the loop 'تحرك إلى الأمام عدد 200 mm' (Drive forward 200 mm).
A Python-like code snippet demonstrating a For loop. The code defines a function `when_started()` which sets drive velocity, then iterates 9 times to drive forward 200 mm and waits for 5 milliseconds.
مثال 10: العد
A block-based programming example for a While loop, titled 'Example 10: Counting'. It shows a sequence of blocks: 'عندما بدأت' (When started), 'مجموعة Counter إلى 0' (Set Counter to 0), 'تكرار حتى Counter < 5' (Repeat until Counter < 5), and inside the loop 'تغيير Counter من قبل 1' (Change Counter by 1), 'الانتظار 1 ثانية' (Wait 1 second).
A Python-like code snippet demonstrating a While loop. The code defines a function `when_started()` which initializes a global variable `Counter` to 0, then enters a loop that continues as long as `Counter` is not greater than 5. Inside the loop, `Counter` is incremented by 1, and there's a 1-second wait.
📄 النص الكامل للصفحة
حلقة For
يتم استخدام حلقة for عندما تريد تكرار مجموعة من الأوامر لعدد محدد من المرات، ويتم تحديد عدد التكرارات في معامل النطاق (range ()).
في هذا المثال، ستكرر الحلقة for الخطوات التي تم وضع مسافة بادئة لها 9 مرات. سيتحرك الروبوت بسرعة 80 %، ويتقدم للأمام مسافة 200 مليمتر، ثم يكرر ذلك 9 مرات.
يجب أن تكون هناك مسافة بادئة قبل العبارات المكررة.
يتم إضافة تأخير 5 مللي ثانية بشكل افتراضي عند استخدام الحلقة.
حلقة While
يتم استخدام حلقة while عندما لا يكون عدد التكرارات معروفًا. عندما يكون الشرط صحيحًا فإن الحلقة تتكرر، ثم يتم فحص الشرط بعد كل تكرار. وعندما يكون الشرط خطأ يتوقف التكرار ويُنفذ الصف الذي يلي الحلقة في المقطع البرمجي. أما إذا كان الشرط خطأ من البداية فلن يتم تنفيذ عبارات الحلقة على الإطلاق.
في هذا المثال، ستنشئ متغيرًا باسم Counter ، ويتم تعيينه على 0 في بداية المقطع البرمجي، ثم يضيف المقطع البرمجي 1 حتى تكون قيمة المتغير Counter أكبر من 5.
وزارة التعليم Ministry of Education 2025-1447
360
--- VISUAL CONTEXT ---
**DIAGRAM**: مثال 9: تكرار الحركة
Description: A block-based programming example for a For loop, titled 'Example 9: Repeat Movement'. It shows a sequence of blocks: 'عندما بدأت' (When started), 'اضبط سرعة القيادة إلى 80 %' (Set drive velocity to 80%), 'تكرار 9' (Repeat 9 times), and inside the loop 'تحرك إلى الأمام عدد 200 mm' (Drive forward 200 mm).
Data: The blocks illustrate a programming sequence: start event, setting a robot's drive velocity to 80%, then a loop that repeats 9 times. Inside the loop, the robot drives forward 200 mm.
Key Values: 80 %, 9 تكرار, 200 mm
Context: Illustrates the structure and parameters of a For loop for controlling robot movement using a visual block interface.
**CODE_SNIPPET**: Untitled
Description: A Python-like code snippet demonstrating a For loop. The code defines a function `when_started()` which sets drive velocity, then iterates 9 times to drive forward 200 mm and waits for 5 milliseconds.
Data: The code defines a function `when_started()` (line 1). Inside, `drivetrain.set_drive_velocity(80, PERCENT)` sets the robot's speed (line 2). A `for` loop `for repeat_count in range(9):` runs 9 times (line 3). Within the loop, `drivetrain.drive_for(FORWARD, 200, MM)` moves the robot forward 200 mm (line 4), and `wait(5, MSEC)` pauses for 5 milliseconds (line 5). Finally, `vr_thread(when_started1)` starts the function in a separate thread (line 7).
Key Values: 1 def when_started():, 2 drivetrain.set_drive_velocity(80, PERCENT), 3 for repeat_count in range(9):, 4 drivetrain.drive_for(FORWARD, 200, MM), 5 wait(5, MSEC), 6, 7 vr_thread(when_started1)
Context: Provides a textual representation of the For loop example shown in block code, highlighting indentation and specific function calls in a Python-like syntax.
**DIAGRAM**: مثال 10: العد
Description: A block-based programming example for a While loop, titled 'Example 10: Counting'. It shows a sequence of blocks: 'عندما بدأت' (When started), 'مجموعة Counter إلى 0' (Set Counter to 0), 'تكرار حتى Counter < 5' (Repeat until Counter < 5), and inside the loop 'تغيير Counter من قبل 1' (Change Counter by 1), 'الانتظار 1 ثانية' (Wait 1 second).
Data: The blocks illustrate a programming sequence: start event, initializing a variable 'Counter' to 0, then a loop that repeats as long as 'Counter' is less than 5. Inside the loop, 'Counter' is incremented by 1, and there is a 1-second wait.
Key Values: Counter إلى 0, 5 < Counter, تغيير Counter من قبل 1, الانتظار 1 ثانية
Context: Illustrates the structure and parameters of a While loop for counting, where the loop continues as long as a condition is met, using a visual block interface.
**CODE_SNIPPET**: Untitled
Description: A Python-like code snippet demonstrating a While loop. The code defines a function `when_started()` which initializes a global variable `Counter` to 0, then enters a loop that continues as long as `Counter` is not greater than 5. Inside the loop, `Counter` is incremented by 1, and there's a 1-second wait.
Data: The code initializes `Counter = 0` (line 1). A function `def when_started():` is defined (line 3). Inside, `global Counter` declares `Counter` as a global variable (line 4), and `Counter` is re-initialized to 0 (line 5). A `while` loop `while not Counter > 5:` continues as long as `Counter` is not greater than 5 (line 6). Within the loop, `Counter = Counter + 1` increments `Counter` (line 7), and `wait(1, SECONDS)` pauses for 1 second (line 8). Finally, `vr_thread(when_started1)` starts the function in a separate thread (line 10).
Key Values: 1 Counter = 0, 2, 3 def when_started():, 4 global Counter, 5 Counter = 0, 6 while not Counter > 5:, 7 Counter = Counter + 1, 8 wait(1, SECONDS), 9, 10 vr_thread(when_started1)
Context: Provides a textual representation of the While loop example shown in block code, highlighting global variable usage and the loop condition in a Python-like syntax.
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 5 بطاقة لهذه الصفحة
متى يتم استخدام حلقة `for` في البرمجة؟
- أ) عندما لا يكون عدد التكرارات معروفًا.
- ب) لتنفيذ مجموعة من الأوامر مرة واحدة فقط.
- ج) عندما ترغب في تكرار مجموعة من الأوامر لعدد محدد من المرات.
- د) لتعريف المتغيرات في بداية المقطع البرمجي.
الإجابة الصحيحة: c
الإجابة: عندما ترغب في تكرار مجموعة من الأوامر لعدد محدد من المرات.
الشرح: تستخدم حلقة `for` عندما يكون عدد التكرارات معلومًا ومحددًا مسبقًا، حيث يتم تحديد هذا العدد في معامل النطاق `range()` عادةً.
تلميح: فكر في الحالات التي تعرف فيها مسبقًا كم مرة تحتاج لتكرار إجراء معين.
التصنيف: مفهوم جوهري | المستوى: سهل
ما هو الاستخدام الرئيسي لحلقة `while` في البرمجة؟
- أ) لإنشاء متغيرات جديدة في البرنامج.
- ب) عندما يكون عدد التكرارات محددًا مسبقًا وواضحًا.
- ج) لتنفيذ جزء من التعليمات البرمجية مرة واحدة فقط.
- د) عندما لا يكون عدد التكرارات معروفًا مسبقًا وتعتمد على صحة شرط معين.
الإجابة الصحيحة: d
الإجابة: عندما لا يكون عدد التكرارات معروفًا مسبقًا وتعتمد على صحة شرط معين.
الشرح: تستخدم حلقة `while` عندما لا تعلم عدد التكرارات التي ستحتاجها، حيث تستمر الحلقة في العمل طالما أن الشرط الخاص بها صحيح.
تلميح: فكر في الحالات التي تستمر فيها العملية طالما أن هناك شرطًا معينًا لم يتحقق بعد.
التصنيف: مفهوم جوهري | المستوى: سهل
ما هو الفرق الأساسي بين حلقة `for` وحلقة `while` من حيث متى يتم استخدام كل منهما؟
- أ) حلقة `for` أسرع دائمًا من حلقة `while` في التنفيذ.
- ب) حلقة `for` تستخدم فقط مع الأرقام، بينما `while` مع النصوص.
- ج) حلقة `for` تستخدم لعدد تكرارات محدد مسبقًا، بينما حلقة `while` تستخدم لعدد تكرارات غير معروف ويعتمد على شرط.
- د) حلقة `while` تتوقف تلقائيًا بعد 10 تكرارات، بينما `for` تستمر بلا نهاية.
الإجابة الصحيحة: c
الإجابة: حلقة `for` تستخدم لعدد تكرارات محدد مسبقًا، بينما حلقة `while` تستخدم لعدد تكرارات غير معروف ويعتمد على شرط.
الشرح: الاختلاف الجوهري يكمن في معرفة عدد التكرارات؛ `for` للعدد المحدد، و`while` للعدد غير المحدد الذي يعتمد على شرط.
تلميح: ركز على معرفة أو عدم معرفة عدد مرات التكرار قبل بدء الحلقة.
التصنيف: فرق بين مفهومين | المستوى: متوسط
ما هي المتطلبات الهيكلية الأساسية التي يجب تطبيقها على العبارات داخل حلقة تكرارية مثل `for` أو `while` لكي تعمل بشكل صحيح؟
- أ) يجب أن تبدأ كل عبارة بعلامة تعجب.
- ب) يجب أن تكون هناك مسافة بادئة قبل العبارات المكررة لتمييزها كجزء من الحلقة.
- ج) لا توجد متطلبات خاصة، يمكن كتابتها بأي شكل.
- د) يجب وضع جميع العبارات في سطر واحد.
الإجابة الصحيحة: b
الإجابة: يجب أن تكون هناك مسافة بادئة قبل العبارات المكررة لتمييزها كجزء من الحلقة.
الشرح: المسافة البادئة (Indentation) ضرورية في العديد من لغات البرمجة (مثل بايثون) لتحديد الكتل البرمجية التي تنتمي إلى الحلقة، وتفصلها عن التعليمات التي تلي الحلقة.
تلميح: تذكر كيف يتم تنظيم الكود لتعريف ما هو داخل الحلقة وما هو خارجها.
التصنيف: صيغة/خطوات | المستوى: سهل
في حلقة `while`، ماذا يحدث إذا تم تقييم الشرط على أنه `خطأ` (False) في أول مرة يتم فحص الشرط فيها؟
- أ) ستنفذ الحلقة مرة واحدة على الأقل قبل التوقف.
- ب) ستدخل الحلقة في تكرار لا نهائي.
- ج) لن يتم تنفيذ عبارات الحلقة على الإطلاق.
- د) ستتوقف الحلقة بعد عدد محدد من التكرارات (مثلاً 5 مرات).
الإجابة الصحيحة: c
الإجابة: لن يتم تنفيذ عبارات الحلقة على الإطلاق.
الشرح: لأن حلقة `while` تفحص الشرط قبل الدخول في أي تكرار، فإذا كان الشرط خاطئًا من البداية، لن يتم تنفيذ محتوى الحلقة أبدًا.
تلميح: تذكر أن حلقة `while` تتحقق من الشرط *قبل* كل تكرار.
التصنيف: سؤال اختبار | المستوى: متوسط