90 likes | 325 Views
فصل ششم : تصمیمگیری و کنترل روند، استفاده از حلقهها و دستورات شرطی در متلب. در اين فصل در مورد جملات شرطي و انواع حلقههاي تکرار صحبت خواهيم کرد. 6-1-حلقه for : شکل کلي حلقه for در متلب بصورت زير است: for x= آرايه دستورات end
E N D
فصل ششم : تصمیمگیری و کنترل روند، استفاده از حلقهها و دستورات شرطی در متلب عباس طبیبی-دانشگاه صنعتی اصفهان
در اين فصل در مورد جملات شرطي و انواع حلقههاي تکرار صحبت خواهيم کرد. 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 تک تک نمرات را چک کند و به صورت زیر آنها را تغییر دهد: • نمرات کمتر از ۵ را به ۹ تغییر دهد • نمرات بین ۵ و ۸ را به ۹.۵ تغییر دهد. • نمرات بین ۸ و ۱۰ را به ۱۰ تغییر دهد. • نمرات بین ۱۰ و ۱۵ را ۱ نمره افزایش دهد • نمرات بیشتر از ۱۵ و کمتر از ۲۰ را ۰.۵ نمره افزایش دهد. تکلیف ۲-۶: برنامه دیگری بنویسید که همان کارهای برنامه ۱-۶ را بدون استفاده از حلقه انجام دهد. عباس طبیبی-دانشگاه صنعتی اصفهان