تخيل موقفًا نحتاج فيه إلى عرض نفس الكلمة على الشاشة ، دعنا نقول كلمة "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.
|