|     
              
                  
                       
            
                
          
            تخيل موقفًا نحتاج فيه إلى عرض نفس الكلمة على الشاشة ، دعنا نقول كلمة "HELLO" ، 10 مرات. ماذا يجب ان نفعل؟ يمكنك أخذ وكتابة الأمر 10 مرات  writeln (& # 39 ؛ HELLO & # 39 ؛) ؛
 
 ولكن ماذا لو لم تكن بحاجة إلى 10 مرات ، بل 20 ، 30 ، 40 مرة؟ ، وإذا كنت بحاجة إلى 200 مرة؟ في هذه الحالة ، سيستغرق النسخ وقتًا طويلاً. وإذا كان من الضروري أن يختار المستخدم عدد المرات لعرض المعلومات على الشاشة؟ & nbsp؛
 
 للتعامل مع هذه المهمة ، يمكننا استخدام بنية خاصة تسمى  LOOP
 
 الحلقة هي بناء خوارزمي يتم فيه تكرار تسلسل معين من الأوامر عدة مرات.  em>
 
 في لغة برمجة باسكال ، هناك نوعان من الحلقات: حلقة بها متغير (for) وحلقة بشرط (while)
 
 لنبدأ التعرف على دورات من النوع الأول.
 
 الحلقات المتغيرة أو بعدد معروف من الخطوات (لـ)  u>
 
 غالبًا ما يحدث أننا نعرف عدد التكرارات لبعض الإجراءات ، أو يمكننا حساب عدد التكرارات باستخدام البيانات المعروفة لدينا. تحتوي بعض لغات البرمجة على أمر يبدو في اللغة الروسية مثل REPEAT (عدد المرات) - أي يمكننا تحديد العدد الدقيق للتكرار. & nbsp؛
 
 من المثير للاهتمام أن نرى كيف تعمل هذه الدورة على مستوى الماكينة:
 1. يتم تخصيص خلية ذاكرة معينة في الذاكرة ويتم كتابة عدد التكرارات عليها ،
 2. عندما ينفذ البرنامج جسم الحلقة مرة واحدة ، فإن محتويات هذه الخلية (العداد) تتناقص بواحد.
 3. ينتهي تنفيذ الحلقة عندما تكون هذه الخلية صفراً.
 
 في لغة البرمجة باسكال ، لا يوجد مثل هذا البناء ، لكن هناك بنية للبناء. نبسب ؛
 
 الشكل العام لبيان الحلقة for هو كما يلي:
<قبل>
  لـ * قيمة البداية * إلى * قيمة النهاية * تفعل
يبدأ
      / * عبارة واحدة أو مجموعة من العبارات - loop body * /؛
end؛ هذا البناء يتطلب منا1. تخصيص خلية ذاكرة بشكل صريح ، والتي ستكون عدادًا ، وتعيين قيمتها الأولية
 2. حدد كيف ستتغير القيمة في هذه الخلية.
 3. تم كتابة شرط يتم بموجبه تنفيذ جسم الحلقة
 
 في الجزء العملي ، سنحاول عرض كلمة Hello 10 مرات. في المهام التالية ، سنقوم بتحليل هذا البناء بمزيد من التفصيل.
 | 
		|     
              
                  
                       
            
                
          
             حلقة for هي وسيلة للتنقل بين الإجراءات المتكررة. دعونا نلقي نظرة فاحصة على كيفية عملها. 
 عادةً ما تؤدي أجزاء حلقة for الخطوات التالية: & nbsp؛
  1. قم بتعيين القيمة الأولية. & nbsp؛ 2. تحديد الخطوة التي سيتغير بها متغير الحلقة
  3. تحديد القيمة النهائية.  div>
  3. تنفيذ إجراءات الحلقة. & nbsp؛   4. قم بتحديث القيمة (القيم) المستخدمة في الاختبار. & nbsp؛ ثم يتم تكرار الخطوات من 2 إلى 4 حتى يتم استيفاء الشرط. بمجرد أن يصبح الشرط خاطئًا ، تنتهي الحلقة ويتم تنفيذ العبارة التي تلي تعليمة الحلقة for.
  دعنا نعود إلى الشكل العام لبيان الحلقة ونحلل بمزيد من التفصيل جميع الأجزاء
<قبل>
  لـ * تعيين القيمة الأولية إلى متغير * إلى / أسفل * قيمة النهاية * تبدأ
      / * عبارة واحدة أو مجموعة من العبارات - loop body * /؛
end؛   تعيين متغير على قيمة أولية  code> 
مسؤول عن تحديد القيمة الأولية لمتغير الدورة (العداد) ، ولم يتم تمييزه بأقواس أو أي شيء آخر.  
على سبيل المثال :
<قبل>
أنا: = 0 ؛ // متغير الدورة i يعطى القيمة الأولية التي تساوي الصفر. مع هذا السجل ،
يجب التصريح عن المتغير i قبل الحلقة
إلى / أسفل  strong>
<قبل>
هذه هي الخطوة التي سيتغير فيها المتغير المستخدم في الحلقة. إذا كتبنا إلى ، فستزيد قيمة المتغير بمقدار 1 في كل تكرار ، إذا انخفض إلى - ينخفض بمقدار 1
<قبل>
 قيمة النهاية
 هي القيمة الأخيرة التي سيستمر تنفيذ جسم الحلقة عندها. على سبيل المثال ، إذا قمنا بتعيين القيمة الأخيرة على 100 ، فسيستمر تنفيذ الحلقة عند 100 ، ولن يتم تنفيذ الحلقة عند 101.
لنتدرب على كتابة عنوان الحلقة for | 
		|     
              
                  
                       
            
                
          
             يتكون رأس حلقة for في باسكال من عدة أجزاء: 1) كلمة  لـ  strong>
 2) ما المتغير والقيمة التي نسندها. في هذا البرنامج ، هذا هو b & nbsp ؛: = 1 ، أي نسند القيمة 1 إلى ب.
 3) الكلمة & nbsp؛  to  أو  downto،  التي تشير إلى الخطوة التي يتم بها تنفيذ الحلقة. إذا كتبنا إلى ، فإن المتغير سيزداد بمقدار 1 في كل تكرار ، إذا كان لأسفل ، ثم ينخفض بمقدار 1.
 4) القيمة النهائية للمتغير
 5) كلمة & nbsp؛  تفعل  strong>
 6) الكلمة & nbsp؛  start & nbsp؛  (يمكن حذفها إذا كان هناك سطر واحد فقط في نص الحلقة ، وإلا يجب كتابتها. إذا لم تكتب ، فحينئذٍ يبدأ السطر الأول فقط يتم تنفيذه من جسم الحلقة بالكامل). دعونا لا ننسى بعد نص الحلقة ، إذا كتبنا كلمة  تبدأ  strong> ، فاكتب كلمة  end؛ !
 | 
		|     
              
                  
                       
            
                
          
            لا يمكن تسمية جميع البرامج ذات حلقة for التي كتبناها حتى الآن بأنها عالمية. لأننا حددنا عدد التكرارات لحلقة الجسم بأنفسنا. & nbsp؛ ولكن ماذا لو كان عدد التكرارات يعتمد على قيمة أخرى؟ على سبيل المثال ، يريد المستخدم نفسه تحديد عدد مرات تكرار الدورة.
 ماذا تفعل في هذه الحالة؟
 كل شيء بسيط للغاية. بدلاً من قيم البداية والنهاية الرقمية ، يمكننا استخدام أي متغيرات يمكن حسابها أو تعيينها بواسطة المستخدم.
 
 على سبيل المثال ، نحتاج إلى عرض مربعات الأرقام من 1 إلى n ، حيث يتم إدخال قيمة المتغير n من لوحة المفاتيح بواسطة المستخدم.
 سيبدو البرنامج كالتالي:
 نبسب ؛
<قبل>
var i، n: عدد صحيح ؛ // أنا & - متغير الحلقة ، n - العدد الأقصى الذي نحسب له المربع
يبدأ
 قراءة (ن) ؛ // إدخال ن من لوحة المفاتيح
 بالنسبة إلى i: = 1 to n do // loop: بالنسبة إلى كل i من 1 إلى n - المتغير i سوف يأخذ القيم بالتتابع من 1 إلى n
  writeln (& # 39 ؛ Kvadrat chisla & # 39 ؛، i ، & # 39 ؛ الغراب & # 39 ؛ ، i * i) ؛ // إخراج مربع الرقم بتنسيق معين والانتقال إلى سطر جديد
نهاية.
عند إدخال الحلقة ، يتم تنفيذ العبارة i: = 1 ، ثم تتم زيادة المتغير i بمقدار واحد (إلى) مع كل خطوة. يتم تنفيذ الحلقة بينما الشرط i & lt ؛ = n صحيح. في جسم الحلقة ، تقوم عبارة الإخراج الوحيدة بطباعة الرقم نفسه ومربعه على الشاشة وفقًا للتنسيق المحدد.
 للتربيع أو الأسس المنخفضة الأخرى ، من الأفضل استخدام الضرب.
 
 قم بتشغيل البرنامج وشاهد نتيجة عمله بقيم مختلفة للمتغير n.
 |