الحاسب الآلي · الصف الثالث الإعدادي · الترم الأول
الحلقات التكرارية LOOP في خرائط التدفق
مفهوم التكرار في خرائط التدفق، حلقة العد وحلقة الشرط، وأمثلة عملية مثل جمع الأعداد من 1 إلى 10 مع تحويلها إلى كود VB.NET باستخدام For وDo While.
آخر تحديث: · كيف نراجع المحتوى
معلومات الدرس
- المادة: الحاسب الآلي — حل المشكلات وبرمجة VB.NET
- الترم: الأول
- الفصل: الفصل الأول: حل المشكلات — الموضوع: السادس
المحتوى الرئيسي
مفهوم التكرار (Loop)
التكرار هو التركيب الثالث من تراكيب خرائط التدفق (بعد التتابع والتفرع)، ويُستخدم عندما تحتاج المشكلة إلى إعادة تنفيذ مجموعة من الخطوات أكثر من مرة، دون الحاجة لكتابة نفس الخطوات يدويًّا في كل مرة. يعتمد التكرار دائمًا على رمز القرار (المعين) لاختبار شرط الاستمرار أو التوقف في كل دورة (Iteration).
أنواع الحلقات التكرارية
1. حلقة العد (Counting Loop / For Loop)
تُستخدم عندما يكون عدد مرات التكرار معروفًا مسبقًا وثابتًا. تعتمد على متغير خاص يسمى عداد (Counter)، يبدأ من قيمة ابتدائية، ويزداد (أو يقل) بمقدار ثابت في كل دورة، حتى يصل إلى قيمة نهائية محددة فيتوقف التكرار.
عناصر حلقة العد الأساسية:
- قيمة بداية العداد.
- قيمة نهاية العداد (شرط التوقف).
- مقدار الزيادة (خطوة التكرار)، وغالبًا يكون 1.
2. حلقة الشرط (Conditional Loop / While Loop)
تُستخدم عندما يكون عدد مرات التكرار غير معروف مسبقًا، ويعتمد الاستمرار في التكرار أو التوقف عنه على تحقق شرط معين قد يتغير أثناء التنفيذ (مثل: استمر في القراءة حتى يُدخِل المستخدم القيمة صفر).
تمثيل حلقة العد في خريطة التدفق
خطوات المشكلة: جمع الأعداد من 1 إلى 10
- Start
- Sum = 0 , i = 1 (Process - تهيئة)
- هل i ≤ 10 ؟ (Decision - شرط الاستمرار)
- لا → اطبع Sum (Output)، ثم End
- نعم ↓
- Sum = Sum + i (Process - تنفيذ جسم الحلقة)
- i = i + 1 (Process - تحديث العداد)
- ارجع إلى الخطوة 3 (سهم عودة للأعلى)
يلاحَظ أن رمز المعين هنا يُختبَر في كل دورة، وأن هناك سهمًا يعود من نهاية جسم الحلقة إلى نقطة اختبار الشرط من جديد، وهذا السهم الراجع هو ما يميّز شكل حلقة التكرار في خريطة التدفق عن شكل التفرع العادي.
الكود المقابل بلغة VB.NET باستخدام For:
Dim i As Integer
Dim Sum As Integer
Sum = 0
For i = 1 To 10
Sum = Sum + i
Next i
Console.WriteLine("مجموع الأعداد من 1 إلى 10 = " & Sum)
هنا تتولى جملة For...Next تلقائيًّا إدارة العداد i (بداية القيمة، الزيادة بمقدار 1 تلقائيًّا، واختبار شرط التوقف)، فيما يقابل عناصر خريطة التدفق الأربعة (التهيئة، الشرط، جسم الحلقة، تحديث العداد) بشكل مضمّن داخل الجملة نفسها.
تمثيل حلقة الشرط في VB.NET
مثال: إدخال أعداد وجمعها، والتوقف فقط عند إدخال القيمة صفر (عدد مرات التكرار هنا غير معروف مسبقًا).
Dim Num As Integer
Dim Sum As Integer
Sum = 0
Num = Console.ReadLine()
Do While Num <> 0
Sum = Sum + Num
Num = Console.ReadLine()
Loop
Console.WriteLine("المجموع = " & Sum)
في هذا المثال، يستمر التكرار طالما الشرط Num <> 0 متحققًا، ويتوقف تلقائيًّا بمجرد أن يدخل المستخدم الرقم صفر، بصرف النظر عن عدد مرات الإدخال.
الفرق بين حلقة العد وحلقة الشرط
| وجه المقارنة | حلقة العد (For) | حلقة الشرط (While) |
|---|---|---|
| عدد مرات التكرار | معروف ومحدد مسبقًا | غير معروف، يعتمد على تحقق الشرط |
| العداد | إلزامي، يُدار تلقائيًّا | غير إلزامي |
| مثال | طباعة الأعداد من 1 إلى 100 | القراءة حتى يُدخِل المستخدم “توقف” |
خطر التكرار اللانهائي
يجب دائمًا التأكد من أن شرط التوقف قابل للتحقق فعليًّا بعد عدد محدود من الدورات؛ فإذا نُسي تحديث العداد (الخطوة 5 في المثال أعلاه) أو نُسي تغيير القيمة التي يعتمد عليها الشرط، فسيستمر التكرار إلى ما لا نهاية (Infinite Loop)، وهو خطأ منطقي شائع يجب الانتباه إليه عند تصميم أي حلقة.
النقاط الرئيسية
- التكرار يُستخدم لإعادة تنفيذ خطوات معينة أكثر من مرة دون تكرارها يدويًّا.
- حلقة العد (For): عدد مرات التكرار معروف مسبقًا، وتعتمد على عداد يبدأ ويزيد وينتهي بقيم محددة.
- حلقة الشرط (While): عدد مرات التكرار غير معروف، ويعتمد الاستمرار على تحقق شرط.
- في خريطة التدفق، تظهر الحلقة كسهم عودة من نهاية جسم الحلقة إلى رمز اختبار الشرط.
- نسيان تحديث العداد أو شرط التوقف يؤدي إلى تكرار لا نهائي (Infinite Loop)، وهو خطأ يجب تجنبه.
أسئلة للمراجعة
- ما الفرق الأساسي بين حلقة العد وحلقة الشرط؟
- ما العناصر الثلاثة الأساسية التي يجب توافرها في أي حلقة عد؟
- صمم خريطة تدفق (وصفًا) لحساب حاصل ضرب الأعداد من 1 إلى 5 (5!).
- حوّل الخريطة التي صممتها في السؤال السابق إلى كود VB.NET باستخدام
For...Next. - ما الخطأ الذي يؤدي إلى تكرار لا نهائي؟ وكيف يمكن تجنبه؟
- اكتب كود VB.NET باستخدام
Do Whileيطبع الأعداد الزوجية فقط من 2 إلى 20.
الأهداف العامة
- أن يوضّح الطالب مفهوم التكرار (Repetition/Loop) في خرائط التدفق.
- أن يميّز الطالب بين حلقة العد وحلقة الشرط.
- أن يصمم الطالب خريطة تدفق تحتوي على حلقة تكرارية لمشكلة مثل جمع أعداد من 1 إلى 10.
- أن يحوّل الطالب خريطة تدفق تكرارية إلى كود VB.NET باستخدام جملتي
ForوDo While.