حلقه ها در MATLAB (بخش اول)
حلقه به طور کلی به معنی مسیر بسته می باشد. به این معنی که اگر از ابتدای آن به سمت انتهای آن بروید دوباره به نقطه ی شروع باز میگردید. مثل دوندگان ماراتن که یک حلقه را به دفعات تکرار می کنند و یا مثل سری ها و دنباله ها در ریاضی که در ازای اعداد متفاوت یک سری عملیات تکراری را انجام می دهند.
برای مثال اگر بخواهیم مجموعه اعداد 1 تا 1000 را حساب کنیم، می توانیم آنها را یک به یک با هم جمع کنیم و یا در یک حلقه این عمل را تکرار کنیم. در مورد اول، جمع اعداد ممکن است با خطا مواجه شود و همچنین بسیار وقتگیر می باشد. ولی در مورد دوم با استفاده از حلقه، بسیار سریعتر و با دقت بیشتری صورت می گیرد. برای مثال:
clc clear s=0; for i=1:1000 s=s+i; end disp(s)
حلقه ها در متلب
به طور کلی در متلب دو نوع حلقه داریم. حلقه for و حلقه while. حلقه for برای مسئله هایی کاربرد دارد که دارای تعداد تکرار مشخص می باشند. در حالی که حلقه while برای مسئله های دارای شرط توقف هستند، مانند مسائل همگرایی استفاده می شود.
حلقه for
این حلقه برای تعداد تکرارهای مشخص قابل استفاده می باشد.
ساختار این حلقه از 3 بخش تشکیل شده است.
1. شمارنده حلقه
- شمارنده
- بازه شمارنده
2. عملیات حلقه
3. پایان حلقه
1.شمارنده حلقه
برای نوشتن حلقه for، ابتدا واژه for را می نویسیم. با فاصله (کلید space) جدا می کنیم، رنگ نوشته آبی می شود. سپس، پارامتر شمارنده را می نویسیم. سپس پارامتر شمارنده (برای مثال i) را می نویسیم. پس از آن بازه شمارش i را بدین صورت می نویسیم.
ابتدا : گام شمارش : انتها.
برای مثال اگر بخواهیم پارامتر i از 1 تا 17 را با گام 5 برود (یعنی 5تا 5تا شمرده شود) این گونه نوشته می شود:
سپس در خطوط بعدی دستورات مورد نیاز نوشته می شود.
2.عملیات حلقه
در این بخش هرگونه عملیات ریاضی و منطقی مورد نیاز کاربر وارد می شود.
برای مثال برای نمایش پارامتر i؛
3.پایان حلقه
اکنون برای اتمام end را می نویسیم. نتیجه به صورت زیر می باشد:
شکل زیر خلاصه کاملی از آنچه گفته شد می باشد.
for i=1:5:17 disp(i) end
شکل 1
نکته1: توجه داشته باشید که در شکل فوق for و end در یک راستا می باشند و عملیات درونی فاصله بیشتری با آن ها دارد و با آن ها هم راستا نیست. گاهی ممکن است بدلیل اصلاح و تغییر برنامه راستای همه خط های حلقه با هم برابر شوند و مشخص نباشد که هر end مربوط به کدام حلقه می باشد. برای این کار یک مرتب سازی انجام دهید. بخش مورد نظر و یا تمامی کد را انتخاب نموده و کلید کنترل را همراه با i فشار دهید (Ctrl + i)، و یا پس از انتخاب، با right click، گزینه smart ident را گزینش کنید.
clc clear s=0; for i=1:1000 s=s+i; end disp(s)
کد مرتب نشده
clc clear s=0; for i=1:1000 s=s+i; end disp(s)
کد مرتب شده
نکته2: هر گاه روی for هر حلقه کلیک کنید، خود متلب end مربوط به همان for را با خطی به آن وصل می کند (مانند خط سمت چپ شکل 3).
مثال2: برنامه ای بنویسید که 7 عدد اول دنباله فیبوناچی را نمایش دهد.
clc clear a=1; b=1; x=[1 1]; for i=1:5 s=a+b; x(i+2)=(s); a=b; b=s; end x
شکل 2
مثال3: برنامه ای بنویسید که جدول ضرب 1 تا 10 را در ماتریسی 10 در 10 نمایش دهد.
for i=1:10 for j=1:10 k(i,j)=i*j; end end k
شکل 3
در حلقه هایی که گام شمارش 1 دارند، می توان گام را ذکر نکرد. به عبارتی پیش فرض گام، 1 می باشد.
همانطور که در مثال ها دیده شد، حلقه یک عملیات تکراری را انجام می دهد. حلقه for برای جاهایی استفاده می شود که تعداد تکرار مشخص باشد. اما گاهی تعداد تکرار مشخص نیست. بنابراین نمی توان از حلقه for استفاده کرد. برای این برنامه از حلقه while استفاده می شود که در ادامه به آن می پردازیم.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.