شرط ها در MATLAB – بخش اول (دستور if)
شرط به طور کلی نوعی محدودیت می باشد. مثلا برای استخدام باید شرایط مورد نظر را باید داشته باشید. همانند سن مناسب، بومی بودن و غیره. در خیلی از مسائل ریاضی و فیزیک نیز برای حل نیازمند شرط هستیم.
شرط ها در متلب به طور کلی به دو دستور if و switch تقسیم می شوند. دستور switch بر اساس مقادیر حقیقی 1 و 0 انجام می پذیرد. دستور if گسترده تر است و تنظیمات بیشتری دارد.
دستور if
این دستور شرط از 4 بخش تشکیل شده است.
- دستور شرط
- عبارت شرط
- عملیات شرط
- پایان شرط
1. دستور شرط
دستور شرط برای شرط if شامل 3 دستور متفاوت می باشد. برای مسائلی که به چندین شرط نیازمند هستند و برای هر شرط عملیات جداگانه ای را می خواهند باید از دستورهای شرط متفاوت استفاده نمود. اولین دستور مورد استفاده همیشه if می باشد. برای شرط دوم الی شرط یکی مانده به آخر، از elseif استفاده می شود. دستور آخر else می باشد.
2. عبارت شرط
برای نوشتن دستور if ابتدا واژه if را می نویسیم. با فاصله (کلید space) جدا می کنیم، رنگ نوشته آبی می شود. سپس، عبارت شرط را می نویسیم. عبارت شرط ممکن است شامل یک یا چند بخش باشد. برای مثال اگر بخواهیم تشخیص دهیم عدد a منفی است یا خیر به صورت زیر نوشته می شود:
سپس در خطوط بعدی دستورات مورد نیاز نوشته می شود.
3. عملیات شرط
در این بخش هرگونه عملیات ریاضی و منطقی مورد نیاز کاربر وارد می شود.
برای مثال می خواهیم متلب متن “این عدد مثبت است” را به نمایش بگذارد.
4. پایان شرط
اکنون برای اتمام end را می نویسیم. نتیجه به صورت زیر می باشد.
حال اگر بخواهیم در حالت منفی بودن عدد پیغام” این عدد منفی است” را نمایش دهد، به else نیازمندیم. کد به صورت زیر می باشد.
نکته 1: روبروی else هیچ گونه عبارت شرط نوشته نمی شود. چرا که else آخرین دستور بوده و در ازای برقرار نبودن دستورات شرط قبل اجرا می شود.
اگر شرط دیگری، برای تشخیص صفر بودن عدد بخواهد اضافه شود، کد به صورت زیر خواهد بود.
نکته 2: همانطور که مقابل elseif می بینید، برای عبارت شرط برابر بودن باید دو علامت مساوی گذاشته شود. یک علامت مساوی به معنی قرار دهی مقدار. دو علامت به معنی برابر بودن می باشد.
نکته 3: برای نوشتن دستور elseif نباید هیچ فاصله ای بین حروف آن باشد.
a=0; if a>0 disp('this is a positive number.') elseif a==0 disp('the number is zero.') else disp('this is a negative number.') end
مثال های دستور if
مثال 2: برنامه ای بنویسید که ریشه های یک چند جمله ای درجه دوم را محاسبه کند. در صورت نبودن ریشه، پیغام “ریشه ای وجود ندارد” را نمایش دهد.
clc clear x=input('please enter the coefficients: '); a=x(1); b=x(2); c=x(3); delta=(b^2)-(4*a*c); if delta>0 x1=(-b+sqrt(delta))/2*a; x2=(-b-sqrt(delta))/2*a; disp('It has two roots') x1 x2 elseif delta==0 x1=-b/2*a; disp('It has only one root') x1 else disp('It has no roots!') end
مثال 3: برنامه ای بنویسید که یک ماتریس را بگیرد، تعداد اعداد مثبت، منفی و صفر را بدست آورد.
clc clear a=input('please enter a matrix: '); [e,f]=size(a); p=0; n=0; z=0; for i=1:e for j=1:f if a(i,j)>0 p=p+1; elseif a(i,j)<0 n=n+1; else z=z+1; end end end a p n z
همانطور که در مثال 3 دیده می شود، برای هر عملیات شرط یک شمارنده (n، p یا z) داریم. برای صدا زدن درایه های ماتریس از حلقه for استفاده شده است.
مثال 4: برنامه ای بنویسید که نشان دهد عدد x در کجای بازه دلخواه می باشد. فرض می کنیم بازه (2،5] می باشد.
clc clear x=input('please enter your number: '); if x>=2 && x<5 disp('x is in the range') elseif x<2 disp('x is below minimum value') elseif x>5 || x==5 disp('x is above maximum value'); end
برخی مواقع ترجیح می دهیم عبارت شرط برای آخرین دستور شرط بنویسیم. مشاهده می شود که برای دستور آخر از elseif استفاده شده است. این کار موردی ندارد. اما، این کد با دستور شرط آخر else نیز همین پاسخ را می دهد. در کد فوق از عبارت شرط چند بخشی استفاده شد. توجه شود که علامت “&” و “|” دو بار استفاده شوند بهتر است.
در این مقاله دستور if مطرح شد. مثال های در باب آن حل شدند. در بخش های بعدی دستور switch و عبارات شرط خاص با دستورات متلب مانند isvector آموزش داده خواهند شد.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.