دستور شرطی if و switch در متلب

 اگر یک برنامه ای طولانی بخواهید بنویسید قطعا دستورات شرطی مانند دستور شرطی if ودستور شرطی switch بسیار نیاز خواهید داشت. در این قسمت که یکی از مهم ترین بخش های آموزش متلب می باشد، سعی شده مثال های زیادی برای آموزش ارائه شود تا به طور کامل دستورات شرطی در متلب را فرا گرفته باشید. این قسمت جز کلیدی ترین بخش های آموزش برنامه نویسی به حساب می آید و تمرین و تکرار در این بخش شدیدا لازم می باشد. لذا سعی بر این بوده که مثال های فراوانی ارائه شود و مثال های بیش تر و توضیحات بیش تر در بخش ویدیوی موجود در این قسمت ارائه شده است. این قسمت در بخش m-file متلب توضیح داده می شود و همه ی مثال ها در بخش قبلی که مربوط به بخش m-fileها در متلب ارائه شد، کد نویسی خواهند شد. این جا لازم به ذکر است که بدانید m-fileها در متلب به پسوند (.m) ذخیره می شوند و برای فراخوانی آن ها کافیست از بخش Open موجود در شکل زیر بازخوانی می شوند، و شما می توانید هر برنامه ای که نوشتید را از این قسمت فراخوانی کرده و اجرا نمایید.

دستورات شرطی

دستور شرطی  if در متلب

در قسمت داده ها اطلاعات کافی مربوط به داده های منطقی و … توضیح داده شد. دستور شرطی if همان طور که از معنایش می توان فهمید “اگر”، به منزله ی این است که اگر یک شرطی درست باشد یک اتفاقی صورت بگیرد، به صورت زیر می توان این حلقه را در نظر گرفت:

دستور if

 

همان طور که از دیاگرام بالا مشاهده می کنید تعریف if بدین صورت انجام می گیرد که ابتدا شرط مورد نظر جلوی if چک می شود اگر درست بود، اتفاقی که خودمان می خواهیم صورت می گیرد و در انتها به else  می رسیم که می گوید ” در غیر اینصورت” یعنی اگر شرط if برقرار نشد عملیات دیگری که دوباره مد نظرمان است انجام شود و در آخر به end می رسیم که پایان  دستور if می باشد.

مثال: می خواهیم دو عدد a=2 و b=3 با هم مقایسه شوند و اگر a>b باشد بنویسد “a bozorg ast” در غیر اینصورت بنویسد”b bozorg ast” و سپس حلقه تمام شود.

کد مربوط به این مثال در زیر نشان داده شده است و با تابع disp نمایش دادن نتیجه استفاده شده است.

 www.sigmaland.ir % 

 ;clear

   ;clc

;a=2

;b=3

if a>b

   ;(‘ disp(‘a bozorg ast        

else

   ;(‘ disp(‘b bozorg ast           

end

و نتیجه نیز به شکل زیر خواهد بود:

اجرای دستورات شرطی

نکته: اگر می خواهیم چند شرط پشت سر هم چک شوند از else if استفاده می شود.

مثال: می خواهیم چک کنیم اگر a=2 و b=3 وc=4 باشد و اگر a>b نشان دهد “a bozorgtar az b”در غیر اینصورت بنویسد “b bozorgtar az a” و اگر a<c است بنویسد “a koochektar az c” در غیر اینصورت بنویسد “c bozorgtar az a”.

کد زیر برنامه ی مربوط به این بخش است:

 www.sigmaland.ir%

;clear

;clc

;a=2

;b=3

;c=4

if a>b

    ;(‘disp(‘a bozorgtar az b                

else if a<b

   ;(‘disp(‘b bozorgtar az a              

    if a>c

        ;(‘disp(‘a bozorgtar az c                   

    else if a<c

        ;(‘disp(‘c bozorgtar az a                

         end            

    end   

    end    

end

نتیجه ی حاصل نیز به صورت زیر خواهد بود:

حلقه های تکرار

حال می خواهیم بحث پیشرفته تری درباره ی دستورات شرطی بررسی کنیم. بدین صورت که خودمان عددی به متلب برای پارامترها داده و مثل مثال بالا همه را با هم چک کنیم.

نکته: برای دادن یک مقدار ورودی برای پارامترها در متلب از تابع input استفاده می کنیم. بدین صورت که اگر یک ورودی می خواهیم به a اختصاص دهیم کافیست بنویسیم input a و در اینصورت در قسمت command window مقدار مورد نظر را وارد می کنیم.  برای اینکه یک فرد دیگری برنامه ی ما را بخواند و متوجه شود بهتر است ابتدا نشان دهیم که چه چیزی به عنوان ورودی وارد کند. کد مربوط به این قسمت را مشاهده کنید.

 www.sigmaland.ir%

;clear

;clc

;’ ?a=’megdar a chand ast

;(a= input(a

;’ ?b=’megdar b chand ast

;(b= input(b

;’ ?c=’megdar c chand ast

;(c= input(c

if a>b

    ;(‘disp(‘a bozorgtar az b           

else if a<b

      ;(‘disp(‘b bozorgtar az a             

    if a>c

        ;(‘disp(‘a bozorgtar az c              

    else if a<c

          ;(‘  disp(‘c bozorgtar az a                           

         end                   

    end       

    end       

end

و در قسمت command windo خودمان برای a و b و c مقدار دادیم و نتیجه را در شکل زیر ملاحظه می کنیم:

دستورات if

مثال: می خواهیم سه عدد از ورودی بگیریم و در پایان مینیمم آن ها را پیدا نماییم؟

برای این مورد باید اعداد را به ترتیب با هم چک کنیم و در پایان مقدار کوچک تر را پیدا کرده و نمایش دهیم. کد زیر برای این مورد مناسب است.

 www.sigmaland.ir%

;clear

;clc

   ;’ ?a=’megdar a chand ast

;(a= input(a

;’ ?b=’megdar b chand ast

;(b= input(b

;’ ?c=’megdar c chand ast

;(c= input(c

if a<b & a<c

    ;(‘disp(‘minimum a

else if b<a & b<c

        ;(‘disp(‘minimum b

    else if c<a & c<b

            ;(‘disp(‘minimum c

        end                  

    end       

end

 

همان طور که می بینید درود دستور شرطی if نیز از عملگرهای منطقی استفاده کرده ایم و گفتیم اگر پارامتر از پارامتر دیگر کوچک تر باشد “و” همان پارامتر از پارامتر دیگری نیز کوچک تر باشد فلان اتفاق بیفتد. شکل زیر را می توان برای این مورد استفاده نمود.

اجرای دستورات شرطی در متلب

دستورات شرطی در متلب

دستور شرطی switch در متلب

دستور switch بسیار مهم است و در برنامه های کاربردی اهمیت فراوانی دارد و استفاده از آن می تواند برنامه ی شما را تا حد زیادی کوتاه کند و سرعت برنامه را افزایش دهد. هر چند خیلی از برنامه نویسان از switch استفاده نمی کنند و کد مورد نظرشان را با if می نویسند ولی استفاده از آن برای شما پیشنهاد می شود. گاهی در برنامه نوشته شده می خواهیم چک کنیم که اگر مقدار مورد نظر برابر یک مقدار از پیش تعیین شده باشد یک اتفاق برابر یک مقدار دیگر باشد یک اتفاق دیگر و… انجام شود.

ساختار کلی switch در شکل زیر نشان داده شده است:

دستور switch

مثال: می خواهیم از ورودی یک عدد بگیریم و اگر برابر صفر باشد چاپ کنیم عدد برابر صفر است. اگر یک باشد چاپ کنیم عدد برابر یک است و اگر ۲ باشد چاپ کنیم عدد برابر ۲ است و در غیر اینصورت چاپ کنیم عدد، عدد مورد نظر ما نیست؟

کد مربوط به این برنامه در m-file متلب به صورت زیر می باشد:

 www.sigmaland.ir%

;clear

;clc

;(‘ :n= input(‘yek adad vared konid

 switch n

     case 0

           ;(‘disp(‘adad barabar 0 ast

     case 1

        ;(‘ disp(‘adad barabar 1 ast 

     case 2

          ;(‘ disp(‘adad barabar 2 ast

     otherwise            

          ;(‘ disp(‘adad, adad mored nazar ma nist

 end

نتایج نیز به صورت شکل زیر خواهند بود:

دستورswitch در متلب

matlab

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.