Module: چرخه ها حلقه با پارامتر (for)


Problem

1/17

حلقه ها در برنامه نویسی

Theory Click to read/hide

موقعیتی را تصور کنید که باید همان کلمه را روی صفحه نمایش دهیم، مثلا کلمه "HELLO" را 10 بار بگوییم. چه کنیم؟
می توانید دستور را 10 بار بگیرید و بنویسید writeln('HELLO');

اما اگر شما نه 10 بار، بلکه 20، 30، 40 بار؟، و اگر 200 بار نیاز داشته باشید، چه؟ در این صورت کپی کردن زمان بسیار زیادی طول خواهد کشید. و اگر لازم است که کاربر بتواند انتخاب کند که چند بار اطلاعات روی صفحه نمایش داده شود؟ 

برای کنار آمدن با این کار، می توانیم از ساختار خاصی به نام LOOP
استفاده کنیم
حلقه یک ساختار الگوریتمی است که در آن توالی خاصی از دستورات چندین بار تکرار می شود.


در زبان برنامه نویسی پاسکال دو نوع حلقه وجود دارد: یک حلقه با متغیر (for) و یک حلقه با یک شرط (while)

بیایید آشنایی خود را با چرخه ها از نوع اول شروع کنیم.

حلقه با یک متغیر یا با تعداد مشخصی از مراحل (برای)

اغلب اتفاق می افتد که تعداد تکرارهای برخی از اقدامات را می دانیم یا می توانیم با استفاده از داده های شناخته شده تعداد تکرارها را محاسبه کنیم. برخی از زبان های برنامه نویسی دستوری دارند که در زبان روسی مانند REPEAT (تعداد دفعات) به نظر می رسد - یعنی می توانیم تعداد دقیق تکرار را مشخص کنیم. 

جالب است که ببینیم این چرخه در سطح ماشین چگونه کار می کند:
1. یک سلول حافظه خاص در حافظه اختصاص داده می شود و تعداد تکرارها روی آن نوشته می شود،
2. وقتی برنامه یک بار بدنه حلقه را اجرا می کند، محتویات این سلول (counter) یک کاهش می یابد.
3. اجرای حلقه زمانی به پایان می رسد که این سلول صفر شود.

در زبان برنامه نویسی پاسکال، چنین ساختاری وجود ندارد، اما برای ساخت وجود دارد.  

شکل کلی دستور حلقه for به صورت زیر است: <پیش> برای *start value* تا *end value* انجام دهید شروع /*یک دستور یا بلوک عبارات - بدنه حلقه*/; پایان؛ این ساخت مستلزم آن است که ما
1. به صراحت یک سلول حافظه را که یک شمارنده خواهد بود اختصاص داد و مقدار اولیه آن را تنظیم کرد
2. نحوه تغییر مقدار در این سلول را مشخص کنید.
3. یک شرط نوشته شد که تحت آن بدنه حلقه اجرا خواهد شد

در قسمت عملی سعی می کنیم کلمه Hello را 10 بار نمایش دهیم. در کارهای بعدی این ساخت و ساز را با جزئیات بیشتری تحلیل خواهیم کرد.

Problem

برنامه زیر 10 بار کلمه Hello را نمایش می دهد.
لطفاً توجه داشته باشید که ما 3 مرحله لازم را انجام داده ایم

1. به صراحت یک سلول حافظه را که یک شمارنده خواهد بود اختصاص داد و مقدار اولیه  - i := 1 
را در آن قرار داد 2. نشان داد که چگونه مقدار در سلول داده شده تغییر می کند  - به - پس از اجرای بدنه حلقه، مقدار متغیر i 1 افزایش می یابد
3. آخرین مقداری را که بدنه چرخه در آن اجرا خواهد شد ثبت کرد - 10   - بدنه حلقه (فرمان writeln) تا زمانی که i کمتر یا مساوی 10 باشد اجرا می شود

برنامه را اجرا کنید، مطمئن شوید که کلمه "سلام" را نشان می دهد 10 بار