2-4-1.حلقه ها (حلقه های for)
يكشنبه, ۲۰ مرداد ۱۳۹۲، ۰۸:۵۱ ب.ظ
در حل بسیاری از مسائل با عملیاتی روبرو میشویم که نیاز به تکرار دارند و عمل تکرار آنها به تعداد مشخصی انجام می گیرد. فرض کنید می خواهیم میانگین 100 عدد را محاسبه نمائیم، در این صورت منطقی به نظر نمی رسد که 100 متغیر تعریف نموده و آنها را جداگانه از ورودی دریافت نمائیم و عملیات را انجام دهیم.
در اینگونه مسائل حلقه ها را بکار می بریم که در ادامه مطلب آنها را بطور کامل توضیح می دهیم.
حلقه ها انواع گوناگونی دارند که ما در اینجا به دو نوع که مهمترین آنها هستند اشاره می کنیم.- حلقه های نوع اول( حلقه های For):
ویژگی های این حلقه ها عبارتند از:
1- اندیس حلقه دارند که معمولاً با i نمایش داده میشود.
2- مقدار اولیه حلقه.
3- مقدار افزاینده اندیس حلقه (در هر بار اجرای حلقه به تعداد مشخص که معمولاً 1 واحد است به اندیس حلقه افزوده می شود).
4- مقدار نهائی حلقه (تعداد تکرار حلقه) که معمولاً با n نمایش داده می شود.
5- شرطی برای کنترل مقدار نهائی.
فلوچارت حلقه For به شکل زیر است:
در توضیح فلوچارت بالا باید گفت در آغاز مقدار حلقه را برای برنامه مشخص می کنیم که معمولاً از 1 شروع می شود، پس از آن مقدار اندیس را با مقدار نهائی می سنجیم، اگر بزرگتر بود از حلقه خارج شده و ادامه برنامه را اجرا می کند و در غیر این صورت ( مقدار کمتر یا مساوی بود) وارد حلقه شده، فرامین داخلی حلقه را به نوبت اجرا نموده و در پایان یک واحد به اندیس حلقه افزوده و به ابتدای حلقه باز می گردد. این چرخه تا زمانیکه اندیس بزرگتر از مقدار شرط نشده ادامه می یابد.
در ادامه مثالی را حل می کنیم.
تمرین 4 ص 45- فلوچارتی رسم نمائید که N عدد از ورودی دریافت کرده، تعدا اعداد مثبت، منفی و صفر را شمرده و در خروجی چاپ نماید.
پاسخ:
ابتدا فلوچارت را رسم نموده و سپس توضیح لازم را ارائه می نمائیم.
همانگونه که در فلوچارت مشاهده می نمائید پس از آغاز، 4 متغیر i (اندیس حلقه) و neg, pos , zer به عنوان شمارنده تعداد اعداد منفی، مثبت و صفر را تعریف کرده ایم و به آنها مقدار اولیه نسبت داده ایم. N مقدار نهائی حلقه می باشد. برنامه با شروع حلقه با خواندن اولین عدد به بررسی این نکته می پردازد که عدد کوچکتر از یک است یا نه؟ اگر بود یک واحد به neg افزوده و سپس یک واحد نیز به اندیس حلقه i افزوده و شرط چرخش حلقه را بررسی می کند، اگر درست بود ادامه حلقه و در غیر این صورت از حلقه خارج شده و دستور بعدی که چاپ است را اجرا می کند. در قسمت بررسی منفی بودن اگر پاسخ منفی بود شرط مثبت بودن را بررسی می کند اگر درست بود مانند بخش منفی عمل می کند و اگر درست نبود نتیجه می گیرد که عدد صفر است و یک واحد به صفر اضافه می شود و ادامه برنامه اجرا شده و در نهایت پس از رسیدن به عدد N از حلقه خارج شده و تعداد اعداد منفی، مثبت و صفر را چاپ کرده و از برنامه خارج می شود.
در پست بعدی نوع دیگر حلقه را شرح می دهیم.
- ۹۲/۰۵/۲۰