دورات. حلقة مع معلمة (من أجل)


تخيل موقفًا نحتاج فيه إلى عرض نفس الكلمة على الشاشة ، دعنا نقول كلمة "HELLO" ، 10 مرات. ماذا يجب ان نفعل؟
يمكنك أخذ وكتابة الأمر 10 مرات writeln (& # 39 ؛ HELLO & # 39 ؛) ؛

ولكن ماذا لو لم تكن بحاجة إلى 10 مرات ، بل 20 ، 30 ، 40 مرة؟ ، وإذا كنت بحاجة إلى 200 مرة؟ في هذه الحالة ، سيستغرق النسخ وقتًا طويلاً. وإذا كان من الضروري أن يختار المستخدم عدد المرات لعرض المعلومات على الشاشة؟ & nbsp؛

للتعامل مع هذه المهمة ، يمكننا استخدام بنية خاصة تسمى LOOP

الحلقة هي بناء خوارزمي يتم فيه تكرار تسلسل معين من الأوامر عدة مرات.


في لغة برمجة باسكال ، هناك نوعان من الحلقات: حلقة بها متغير (for) وحلقة بشرط (while)

لنبدأ التعرف على دورات من النوع الأول.

الحلقات المتغيرة أو بعدد معروف من الخطوات (لـ)

غالبًا ما يحدث أننا نعرف عدد التكرارات لبعض الإجراءات ، أو يمكننا حساب عدد التكرارات باستخدام البيانات المعروفة لدينا. تحتوي بعض لغات البرمجة على أمر يبدو في اللغة الروسية مثل REPEAT (عدد المرات) - أي يمكننا تحديد العدد الدقيق للتكرار. & nbsp؛

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

في لغة البرمجة باسكال ، لا يوجد مثل هذا البناء ، لكن هناك بنية للبناء. نبسب ؛

الشكل العام لبيان الحلقة for هو كما يلي: <قبل> لـ * قيمة البداية * إلى * قيمة النهاية * تفعل يبدأ / * عبارة واحدة أو مجموعة من العبارات - loop body * /؛ end؛ هذا البناء يتطلب منا
1. تخصيص خلية ذاكرة بشكل صريح ، والتي ستكون عدادًا ، وتعيين قيمتها الأولية
2. حدد كيف ستتغير القيمة في هذه الخلية.
3. تم كتابة شرط يتم بموجبه تنفيذ جسم الحلقة

في الجزء العملي ، سنحاول عرض كلمة Hello 10 مرات. في المهام التالية ، سنقوم بتحليل هذا البناء بمزيد من التفصيل.

حلقة for هي وسيلة للتنقل بين الإجراءات المتكررة. دعونا نلقي نظرة فاحصة على كيفية عملها.

عادةً ما تؤدي أجزاء حلقة for الخطوات التالية: & nbsp؛
1. قم بتعيين القيمة الأولية. & nbsp؛
2. تحديد الخطوة التي سيتغير بها متغير الحلقة
3. تحديد القيمة النهائية.
3. تنفيذ إجراءات الحلقة. & nbsp؛
4. قم بتحديث القيمة (القيم) المستخدمة في الاختبار. & nbsp؛
ثم يتم تكرار الخطوات من 2 إلى 4 حتى يتم استيفاء الشرط. بمجرد أن يصبح الشرط خاطئًا ، تنتهي الحلقة ويتم تنفيذ العبارة التي تلي تعليمة الحلقة for.

دعنا نعود إلى الشكل العام لبيان الحلقة ونحلل بمزيد من التفصيل جميع الأجزاء <قبل> لـ * تعيين القيمة الأولية إلى متغير * إلى / أسفل * قيمة النهاية * تبدأ / * عبارة واحدة أو مجموعة من العبارات - loop body * /؛ end؛

تعيين متغير على قيمة أولية

مسؤول عن تحديد القيمة الأولية لمتغير الدورة (العداد) ، ولم يتم تمييزه بأقواس أو أي شيء آخر.
على سبيل المثال : <قبل> أنا: = 0 ؛ // متغير الدورة i يعطى القيمة الأولية التي تساوي الصفر. مع هذا السجل ، يجب التصريح عن المتغير i قبل الحلقة إلى / أسفل <قبل> هذه هي الخطوة التي سيتغير فيها المتغير المستخدم في الحلقة. إذا كتبنا إلى ، فستزيد قيمة المتغير بمقدار 1 في كل تكرار ، إذا انخفض إلى - ينخفض ​​بمقدار 1 <قبل> قيمة النهاية هي القيمة الأخيرة التي سيستمر تنفيذ جسم الحلقة عندها. على سبيل المثال ، إذا قمنا بتعيين القيمة الأخيرة على 100 ، فسيستمر تنفيذ الحلقة عند 100 ، ولن يتم تنفيذ الحلقة عند 101. لنتدرب على كتابة عنوان الحلقة for

يتكون رأس حلقة for في باسكال من عدة أجزاء:
1) كلمة لـ
2) ما المتغير والقيمة التي نسندها. في هذا البرنامج ، هذا هو b & nbsp ؛: = 1 ، أي نسند القيمة 1 إلى ب.
3) الكلمة & nbsp؛ to أو downto، التي تشير إلى الخطوة التي يتم بها تنفيذ الحلقة. إذا كتبنا إلى ، فإن المتغير سيزداد بمقدار 1 في كل تكرار ، إذا كان لأسفل ، ثم ينخفض ​​بمقدار 1.
4) القيمة النهائية للمتغير
5) كلمة & nbsp؛ تفعل
6) الكلمة & nbsp؛ start & nbsp؛ (يمكن حذفها إذا كان هناك سطر واحد فقط في نص الحلقة ، وإلا يجب كتابتها. إذا لم تكتب ، فحينئذٍ يبدأ السطر الأول فقط يتم تنفيذه من جسم الحلقة بالكامل). دعونا لا ننسى بعد نص الحلقة ، إذا كتبنا كلمة تبدأ ، فاكتب كلمة 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.