یکی از دستوراتی که کاربرد زیادی در برنامهنویسی دارند، دستورات تکرار (حلقهها) میباشند، این دستورات به ما کمک میکنند یک عمل مشخص را به دفعات دلخواه یا تحت شرایط خاصی تکرار کنیم.
در حالت عادی و در تعداد کم شاید بتوانیم چندین بار دستور مورد نظر را بنویسیم ولی برای تکرار یک عمل در تعداد بالا احتیاج داریم که از حلقهها استفاده کنیم، در ادامه با همیار آیتی همراه باشید تا با نحوه کار حلقهها آشنا شویم و بدانیم در چه مواقعی باید از آنها استفاده کنیم.
دستور تکرار (حلقه) از ۴ بخش اصلی تشکیل میشود:
- شمارنده: متغیری عددی که تعداد دفعات تکرار را کنترل میکند و مقدار آن در هر بار اجرای حلقه افزایش یا کاهش مییابد.
- مقدار اولیه: مقداری که قبل از شروع حلقه برای شمارنده تعیین میشود.
- شرط حلقه: شمارنده را کنترل کرده و پایان تکرار (خروج از حلقه) را مشخص میکند.
- دستورات حلقه: دستورات مورد نظر ما که در حلقه اجرا (و تکرار) میشوند.
مثال: الگوریتمی بنویسید که عدد ۱۰ را ۱۰۰ بار نمایش دهد.
- شروع
- count=1
- “۱۰” را نمایش بده
- count=count+1
- اگر count<=100 به مرحلهی ۳ برو
- پایان
توضیح مثال بالا: پس از شروع الگوریتم، مقدار اولیهی ۱ را در متغیر count قرار میدهیم، در مرحلهی بعد عدد ۱۰ را یکبار نمایش میدهیم، در مرحلهی ۴ یک واحد به مقدار اولیه اضافه میکنیم و مجددا آن را در متغیر شمارنده (count) قرار میدهیم، سپس بررسی میکنیم اگر شمارنده کوچکتر از ۱۰۰ بود مجددا دستور ۳ (نمایش عدد ۱۰) را تکرار میکنیم، مجددا مراحل را طی میکنیم تا به مرحلهی بررسی شرط برسیم، اگر شرط برقرار بود مجددا دستور اجرا میشود(به مرحلهی ۳ بازمیگردیم)، این فرآیند آنقدر تکرار میشود تا شرط حلقه از حالت برقرار بودن خارج شود (یعنی شمارنده به عدد ۱۰۱ برسد) در این حالت دستور شرط (رفتن به مرحلهی ۳) انجام نمیشود و الگوریتم از اجرای حلقه خارج میشود، نتیجهی این الگوریتم نمایش عدد ۱۰ به اندازهی ۱۰۰ مرتبه است!
مثال: الگوریتمی بنویسید که محیط و مساحت ۱۲ دایره را محاسبه کرده و نمایش دهد.
- شروع
- count=1
- R را دریافت کن
- P=2*3.14*R
- S=3.14*R*R
- S و P را نمایش بده
- count=count+1
- اگر count<=12 آنگاه به مرحلهی ۳ برو.
- پایان
مثال: الگوریتمی بنویسید که اعداد مثبت کوچکتر از ۵۰ را نمایش دهد.
- شروع
- count=1
- count را نمایش بده
- count=count+1
- اگر count<50 به مرحلهی ۳ برو
- پایان
مثال: الگوریتمی بنویسید که اعداد طبیعی کوچکتر از عدد دلخواه N را نمایش دهد.
- شروع
- N را دریافت کن
- count=1
- count را نمایش بده
- count=count+1
- اگر count<N آنگاه به مرحلهی ۴ برو
- پایان
مثال: الگوریتمی بنویسید که مجموع اعداد طبیعی کوچکتر از N را نمایش دهد.
- شروع
- N را دریافت کن
- count=1
- sum=0
- sum=count+sum
- count=count+1
- اگر count<N به مرحلهی ۵ برو
- sum را نمایش بده
- پایان
توضیح مثال بالا: در اینجا count را به عنوان شمارنده و sum را به عنوان مجموعهی اعداد در نظر گرفتیم، در مرحلهی ۵ مقدار شمارنده و مقدار مجموع با هم جمع شده و در sum ذخیره میشوند، سپس یک واحد به شمارنده افزوده میشود پس از آن شرط حلقه بررسی شده و اگر برقرار بود به مرحلهی ۵ بازمیگردیم. حال مقدار جدید شمارنده به حاصل جمعهای قبلی افزوده میشود و مجددا در sum ذخیره میشود، این دستورات تا زمانی که شرط حلقه برقرار باشد (شمارنده به مقدار N برسد) انجام میشود، پس از آن از حلقه خارج میشود و بقیه دستورات اجرا خواهند شد.
مثال: الگوریتمی بنویسید که تا زمانی که کاربر عدد منفی وارد نکرده از او عدد بگیرد و در پایان تعداد اعداد وارد شده را نمایش دهد.
- شروع
- count=0
- N را دریافت کن
- count=count+1
- اگر N>=0 به مرحلهی ۳ برو
- count را نمایش بده
- پایان
توضیح مثال بالا: در این الگوریتم ابتدا یک شمارنده به نام count ایجاد کردیم تا با استفاده از آن تعداد اعداد وارد شده را شمارش کنیم، سپس عدد N را دریافت میکنیم و بلافاصله یک واحد به شمارنده اضافه میکنیم، سپس بررسی میکنیم و اگر عدد وارد شده مثبت باشد (منفی نباشد) مجددا به مرحله ۳ رفته و عدد بعدی را دریافت میکنیم و یک واحد نیز به شمارنده اضافه میکنیم، حال شرط را چک کرده و در صورت برقرار بودن مجددا دستورا اجرا میشوند و در نهایت تعداد اعداد وارد شده (count) نمایش داده میشود.
همانگونه که متوجه شدید شرط این حلقه به شمارنده وابسته نبود و بستگی به این داشت که کاربر چه عددی را وارد کند، از شمارنده (در اینجا count) به عنوان متغیری برای شمارش تعداد اعداد وارد شده استفاده کردیم و در نهایت آنرا به کاربر نمایش دادیم.
برای اینکه این آموزش را بهتر یاد بگیرید تمرینهای زیر را انجام دهید:
- الگوریتمی بنویسید که مجموع و تعداد اعداد طبیعی مضرب ۳ و کوچکتر از ۱۰۰ را نمایش دهد.
- الگوریتمی بنویسید که مقدار عددی !N (مقدار N فاکتوریل) را برای عدد دلخواه N محاسبه کرده و نمایش دهد.