حلقه
حلقه ها
فرض کنید می خواهیم یک الگوریتم برای تراش کردن مداد بنویسیم:
1- شروع
2-تراش را با دست چپ بردار.
3-مداد را با دست راست بردار.
4-مداد را درون حفره تراش قرار بده.
5- 3 بار مداد را داخل تراش بچرخان.
6-مداد را از تراش خارج کن.
7- تمام.
در مثال بالا با انجام 7 مرحله یک الگوریتم برای تراش کردن یک مداد نوشتیم!
یک سوال؟ اگر بخواهیم الگوریتمی برای تراش کردن یک جعبه مداد رنگی 24 رنگ بنویسیم چکار میکنیم؟؟؟
یک روش اینه که ما دستورهای 3 تا 6 را برای هر کدوم از 24 مدادی که داریم بنویسیم اما الگوریتم ما خیلی طولانی خواهد شد و مدام دستورات تکراری را دوباره نویسی کرده ایم!
در اینجا بهتر است که از ساختار حلقه درون الگوریتم خود استفاده کنیم
به اینصورت که دستورهای 3 تا 6 که تکراری هستند را درون یک حلقه قرار میدهیم و با استفاده از یک شمارشگر حلقه را کنترل میکنیم که 24 بار تکرار شود!
1- شروع
2-تراش را با دست چپ بردار.
3-فرض کن k دارای مقدار صفر است.
4-تا زمانیکه k کمتر از 24 است.
4/1- مداد را با دست راست بردار.
4/2- مداد را درون حفره تراش قرار بده.
4/3- 3 بار مداد را داخل تراش بچرخان.
4/4- مداد را از تراش خارج کن.
4/5- یک واحد به k اضافه کن و برو به خط 4.
7- تمام.
در الگوریتم بالا ما از یک حلقه شرطی استفاده کردیم که 24 بار تکرار میشود! و در هر بار تکرار یک مداد تراش خواهد شد . پس جمعا 24 عدد مداد رنگی در پایان این الگوریتم تراش خواهند شد!
شمارشگر چیست؟
عموما هر شمارشگر یک متغیر است که وظیفه شمارش را به ساده ترین روش به وسیله آن انجام میدهیم
مثلا در مثال بالا ما از k به عنوان شمارشگر استفاده کرده ایم به اینصورت که در ابتدا مقدار آن را برابر 0 گرفتیم و بعد در هر تکرار حلقه به آن یک واحد اضافه کردیم و ساختمان الگوریتم را هم طوری نوشتیم که تا وقتی که k کمتر از 24 باشه حلقه تکرار شود.
یک نکته: در الگوریتم بالا خط 4 شروع حلقه ماست و دستوراتی که قرار است در هر بار تکرار حلقه تکرار بشه بصورت 4/1 تا 4/5 شماره گذاری شده است تا مشخص باشد که دستورات مربوط به حلقه کدوم ها هستند!
توجه: در هر بار تکرار حلقه شرطی زمانی که به آخرین خط درون حلقه( در اینجا خط 4/5 ) برسیم دوباره به شروع حلقه ( در اینجا خط 4) برمیگردیم تا دوباره شرط ورود به حلقه رو چک کنیم!
خب حالا میدانیم که حلقه ها برای تکرار دستوراتی که قرار است چندین بار انجام شود استفاده میشود! مثل بالا که دستورات کلی تراش کردن یک مداد را درون حلقه ای با یک شمارشگر انداختیم تا 24 بار تکرار شود!
ساختار کلی حلقه شرطی
تا زمانیکه ( شرط)
دستور 1
دستور 2
.
.
.
دستور n
مثال: الگوریتمی بنویسید که اعدا 1 تا 100 را چاپ کند!
1- شروع
2-a=1 را از نوع int تعریف کن.
3-تا زمانیکه(a<=100)
3/1- a را چاپ کن.
3/2- a=a+1.
4- تمام.
در اینجا a را به عنوان یک شمارشگر در نظر گرفتیم که مقدار اولیه آن 1 است و در هر تکرار حلقه بعد از چاپ مقدار آن به آن یک واحد اضافه کردیم و در هنگام خروج از حلقه مقدار آن برابر با 101 خواهد بود!
- ۹۲/۰۶/۲۹
سلام !!!
خانم علیرضایی فردا از ما امتحان تعیین سطح می گیرین !!!؟؟؟ :(