پاورپوینت کلاس آموزشی متلب فصل ششم تصمیمگیری و کنترل روند، استفاده از حلقهها و دستورات شرطی در متلب (pptx) 9 اسلاید
دسته بندی : پاورپوینت
نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )
تعداد اسلاید: 9 اسلاید
قسمتی از متن PowerPoint (.pptx) :
فصل ششم :
تصمیمگیری و کنترل روند،
استفاده از حلقهها و دستورات شرطی در متلب
در اين فصل در مورد جملات شرطي و انواع حلقههاي تکرار صحبت خواهيم کرد.
6-1-حلقه for:
شکل کلي حلقه for در متلب بصورت زير است:
for x= آرايه
دستورات
end
در اينصورت حلقه فوق به تعداد ستونهاي آرايه مشخصشده تکرار خواهد شد و در هر تکرار يکي از ستونهاي اين آرايه در متغير x قرار گرفته و در بدنه حلقه قابل استفاده است. در صورتيکه آرايه يک بردار باشد، هر بار يک عنصر از آن در متغير x قرار خواهد گرفت.
تذکر: با توجه به تواناييهاي ماتريسي متلب از کاربرد حلقهها در متلب تا حد ممکن بايد پرهيز گردد زيرا اينکار باعث کند شدن شديد برنامه ميشود و نياز به کد نويسي بسيار بيشتري دارد.
6-1- حلقه for-ادامه-
مثال:
for n=1:10
x(n) = sin(n * pi / 10);
end;
--------------
for k=[1,2,3,7]
x(k) = k+1;
end;
>>x
x=
2 3 4 0 0 0 0 8
6-2- حلقه while :
در مواردي که بخواهيم يک يا چند دستور تا برقراري شرط خاصي تکرار گردند از اين حلقه استفاده ميکنيم. شکل کلي حلقه while بصورت زير است:
while شرط
دستورات
end
حلقه فوق تا زمانيکه شرط ذکر شده برقرار باشد تکرار خواهد شد.
6-2- حلقه while –ادامه-
مثال:
t=1;
while t ~= -1
t = input( ‘ Enter a number to continue or -1 to exit from this block: ‘);
…
end
6-2- حلقه while –ادامه-
مثال:
در اين مثال بالاترين دقت محاسبات نقطه اعشار در متلب محاسبه ميشود
Epsilon=1;
while ( 1 + Epsilon ) > 1
Epsilon = Epsilon / 2;
end;
disp(‘This is the smallest floating point number in matlab: );
disp ( Epsilon);
نکته : متغير ويژه eps در متلب حاوي کوچکترين عددي است که اگر با يک جمع شود مقدار حاصل از يک بزرکتر خواهد بود. که اين عدد دوبرابر Epsilon بدست آمده از روش فوق است.
6-3- ساختار if-else-end
هرگاه بخواهيم يک يا چند جمله در صورت برقرار بودن شرط خاصي (يکبار) اجرا شود، از بلوک if استفاده ميکنيم. شکل کلي استفاده از اين دستور بصورت زير است:
if 1 شرط
دستورات
elseif 2 شرط
دستورات
elseif …
…
else
دستورات
end;
6-3- ساختار if-else-end –ادامه-
مثال:
Epsilon = 1;
while 1 > 0
Epsilon = Epsilon / 2;
if Epsilon + 1 == 1
break;
end
end
نکته: با دستور break ميتوان يک حلقه while يا for را شکست. در اينصورت اجراي برنامه از نخستين دستور بعد از حلقه ادامه خواهد يافت.
تکلیف ۱-۶: برنامهای بنویسید که نمرات چند دانشجو را به صورت یک بردار بگیرد و عملیات زیر را انجام دهد:
در صورتیکه ورودی کاربر بردار نباشد(ماتریس یا اسکالر باشد) پیام خطا دهد.(راهنمایی برای دادن پیام خطا میتوانید از تابع error به جای disp استفاده کنید)
با استفاده از حلقه for و دستورات شرطی if-else-end تک تک نمرات را چک کند و به صورت زیر آنها را تغییر دهد:
نمرات کمتر از ۵ را به ۹ تغییر دهد
نمرات بین ۵ و ۸ را به ۹.۵ تغییر دهد.
نمرات بین ۸ و ۱۰ را به ۱۰ تغییر دهد.
نمرات بین ۱۰ و ۱۵ را ۱ نمره افزایش دهد
نمرات بیشتر از ۱۵ و کمتر از ۲۰ را ۰.۵ نمره افزایش دهد.
تکلیف ۲-۶: برنامه دیگری بنویسید که همان کارهای برنامه ۱-۶ را بدون استفاده از حلقه انجام دهد.