آموزش برنامه نویسی در نرم افزار متلب

آموزش برنامه نویسی در نرم افزار متلب

آموزش برنامه نویسی در نرم افزار متلب  :  در پست های قبلی مطالب زیادی از آموزش متلب قرار داده شده است. برخی از مباحث پیش نیاز این مبحث است و پیشنهاد می شود که قبل از مطالعه این قسمت مطالعه شود.  لینک های مربوط به اموزش های درس های قبلی متلب در آخر همین پست قرار داده شده است.

 

یکی از مهمترین قسمت های نرم افزار متلب، برنامه نویسی (کنترل جریان برنامه) است. در این پست کنترل جریان برنامه و آموزش برنامه نویسی در نرم افزار متلب به طور مختصر و ساده توضیح داده شده است.

شرط if,elseif,else

ساختار کلی دستور if در نرم افزار متلب به صورت زیر است

if         expression
statements
elseif    expression
statements
else
          statements
end

در قسمت expression شرط مورد نظر نوشته می شود و در قمست statements عبارتی که برای آن شرط است قرار داده می شود. برای مثال می خواهیم اگر عدد a  بزرگتر از ۵ باشد عبارت “a is bigger than 5”  چاپ شود.

a=7

if a>5

    disp(‘a is bigger than 5’)

end

اگر بخواهیم چند شرط داشته باشیم باید چند expression و statements داشته باشیم.

یک مثال ساده از دستور فوق میزنیم

فرض کنید که شما نمره ای را وارد میکنید. برنامه ی نوشته شده بررسی میکند

  • اگر نمره ی شما عددی بالای ده بود چاپ میکند که “شما قبول شده اید”
  • واگر نمره ی شما زیر ده بود میگوید که “شما مردود شده اید”
  • اگر نمره ی شما کمتر از صفر و بالای ۲۰ بود پیام خطا می دهد.

کد به صورت زیر است.

a=input(‘your mark=’)
if a>=10 & a<=20
    disp(‘you pass the exam’)
elseif a<10 & a>=0
    disp(‘you fail the exam’)
else
    disp(‘Error’)
end

با اجرای برنامه در m file  متلب برنامه از شما میخواهد نمره را وارد کنید. بعد از آن بررسی می کند و عبارت مناسب را چاپ می کند.

شرط if,elseif,else

شرط if,elseif,else

حلقه for در نرم افزار MATLAB

از سری مباحث آموزش برنامه نویسی در نرم افزار متلب در این قسمت در مورد حلقه ی for  صحبت می شود. حلقه ی  for زمانی استفاده می شود که هدف تکرار پروسه ای است که تعداد تکرار آن مشخص باشد. برای مثال شما میخواهید عدد یک تا ۱۰ را زیر هم چاپ کنید. یا میخواهید عدد ۱ تا ۱۰۰۰ را با هم جمع کنید.تاکید میکنم زمانی که تعداد تکرار مشخص باشد.

for    index = values
program statements
:
end

ساختار حلقه بسیار ساده است بدین صورت که شمارنده مساوی با یک بردار است که این بردار میتواند هر مقدار خاصی باشد. باری مثال

for i=1:10

این حلقه ده بار تکرار می شود. و شمارنده ی آن i از ۱ تا ۱۰ تغییر میکند.

یا مثال زیر

for  k=[3 1 5  ۴]

حلقه چهار بار تکرار می شود، تعداد تکرار حلقه برابر با تعداد ارایه ی شمارنده است و شمارنده در هر حلقه یکی از اعداد بردار را استفاده می کند.

index = values مربوط  به شمارنده است. که تعداد حلقه را مشخص می کند. در عبارت program statements  شما روندی که قرار است تکرار شود را می نویسید و در پایان با نوشتن end حلقه پایان می یابد بدین صورت که به تعداد ارایه های شمارنده حلقه تکرار و پس از آن تمام می شود.

چند مثال از حلقه ی for در زیر نشان داده شده است.

مثال ۱: یک بردار دلخواه وارد کنید از با استفاده از حلقه ی for  اعضای آن را با یکدیگر جمع کنید و حاصل مجموع تمام آرایه ها را بنویسید.

clear;
clc;
sum=0;

for  x=[5 6 7 6]
sum=sum+x
end

روند کد فوق به صورت زیر است که در ابتدا یک متغیر خالی به نام sum تعریف شده است سپس بردار دلخواهی که در مثال فوق یک بردار چهار مولفه ای است قرار داده شده است. یعنی حلقه چهار بار تکرار می شود، چون تعداد اعضای بردار چهار است. و در خط بعد   sum=sum+x  هر بار یکی از آرایه های بردار را با مقادیر قبلی جمع میکند تا حلقه پایان یابد تمام اعضای ارایه جمع شده اند.

حلقه for در نرم افزار MATLAB

حلقه for در نرم افزار MATLAB

مثال ۲: حاصل سری دو متغیره ی زیر را محاسبه کنید.

حل سری در متلب

حل سری در متلب

 

 

 

 

 

ساختار کد به صورت زیر است

clear;
clc;
su=0;
for x=1:100
for y=1:10
su=su+x^2*y+3*y;
end
end
su

در کد نوشته شده به دلیل وجود دو سری باید دو حلقه ی for تو در تو ایجاد شود. و یک متغیر خالی که حاصل جمع مقادیر مختلف را یکی یکی در خود جای دهد. بدین صورت که زمانی که x اولین مقدار خود را میگیرد وارد حلقه ی دوم می شود. y نیز اولین مقدار خودر را میگیرد و سپس در متغیر خالی su قرار میدهد. بعد از آن حلقه ی مربوط به y ده بار تکرار میشود و هر بار مقادیر درون متغیر su قرار میگیرد. پس از اتمام حلقه ی مربوط به y مجدد وارد حلقه ی دوم x  میشود. و مجددا حلقه ی y ده بار تکرار میشود. و به همین ترتیب ادامه پیدا می کند تا کل مقادیر درون su قرار گیرند و سری حاصل شود. شکل زیر کد و خروجی را نشان می دهد.

حل سری با حلقه for در نرم افزار متلب

حل سری با حلقه for در نرم افزار متلب

البته لازم به ذکر است که در حالت کلی برای حل چنین مسائلی درنرم افزار متلب نیاز به استفاده از حلقه نیست اما برای اموزش حلقه ی for این مسئله را مطرح کردم تا با ساختمان حلقه ی for  و نحوه ی کار با آن اشنا شوید.

مثال ۳: برنامه ای بنویسید که هر مقداری به متلب دادید فاکتوریل آن را حساب کند.

clear;
clc;
n=input(‘n=’);
p=1;
for i=1:n
p=p*i;
disp(p)
end

حل فاکتوریل در متلب با حلقه for

حل فاکتوریل در متلب با حلقه for

 

حلقه while در نرم افزار MATLAB

از سری مباحث آموزش برنامه نویسی در نرم افزار متلب در این قسمت در مورد حلقه ی while صحبت میکنیم. از حلقه ی while زمانی استفاده می شود که میخواهیم عملیات تکراری خاصی را انجام دهیم اما تعداد حلقه مشخص نیست و در عوض شرط توقف داریم. تاکید میکنم تعداد حلقه مشخص نیست و در عوض شزط توقف داریم. تفاوت حلقه for با حلقه while در این است که زمانی از حلقه for  استفاده میکنیم، تعداد تکرار مشخص است ولی در حلقه ی while  تعداد توقف مشخص نیست و فقط شرط توفق وجود دارد.

ساختمان کلی حلقه ی while به صورت زیر است.

while  expression
        statements
end

برنامه ای بنویسید که اعداد  …,۱,۲,۳,۴,۵ را تاجایی با هم جمع کند که مجموع آنها کمتر از ۱۰۰۰ شود. و سپس بگوید که جمع اعداد از یک تا چه عددی جمع شود که مجموع آن بزرگترین عدد کمتر از هزار باشد.

حل سری با حلقه while در متلب

حل سری با حلقه while در متلب

 

 

 

 

 

clear;
clc;
sum=0;
i=0;
while sum<=1000
        i=i+1;
        sum=sum+i;
end
sumation=sum-i
n=i-1

به دلیل اینکه شرط را در اول حلقه مورد بررسی قرار داده است .در نهایت جمله ی آخر و حلقه ی آخر کم شده است.

حل سری به کمک while در متلب

حل سری به کمک while در متلب

 

 

 

 

 

 

 

 

 

 

عبارت شرطی Switch,Case

در ادامه آموزش برنامه نویسی در نرم افزار متلب   به سراغ دستور switch case می رویم. این دستور در برنامه نویسی خیلی شبیه به ساختار if است. زمانی از دستور swith استفاده می شود، که میخواهید در چند حالت مختلف تصمیم های مختلفی گرفته شود. ساختمان آن به صورت زیر است.

switch    switch_expression
             case case_expression
            statements
            case case_expression
            statements
             …
             otherwise
             statements
end

مثال : برنامه ای بنویسید که دو عدد دلخواه بگیرد، اگر مورد ۱ را وارد کردید آن دو را جمع کند، اگر مورد ۲ را وارد کردید آنها را از هم کم کند، اگر مورد ۳ را وارد کردید آنها را با هم جمع و اگر مورد ۴ را وارد کردید، آنها را از هم کم کند.

clear
a=1;
b=2;
c=0;
x=input(‘x=’);
switch x
     case 1
c=a+b;
     case 2
c=a-b;
     case 3
c=a*b;
     case 4
c=a/b;
     otherwise
disp(‘Error’);
end
disp([‘c=’,num2str(c)])

در نهایت برنامه نوشته ی شده ی فوق را پنج بار پشت سر هم اجرا و به ازای مقادیر مختلف x خروجی ها به صورت زیر است. در برنامه از کاربر میخواهد عددی وارد کند. اگر عدد ۱ باشد دو عدد a و b را با هم جمع میکند، اگر عدد ورودی ۲ باشد دو عدد را از هم کم میکندو به همین ترتیب

Capture

در این پست آموزش برنامه نویسی در نرم افزار متلب قرار داده شد. در پست های آتی مطالب پیشرفته تری از متلب و سیمولینک برای آموزش نشان داده خواهد شد.

 آموزش های نرم افزار MATLAB در پست های پیشین

 

 

 

محسن رضایی

کارشناسی : مهندسی مکانیک جامدات، کارشناسی ارشد: مهندسی مکانیک طراحی کاربردی، دکتری: دانشجوی دکتری مکانیک گرایش دینامیک کنترل و ارتعاشات دانشگاه شیراز زمینه های تحقیقاتی: دینامیک، کنترل، ارتعاشات، دینامیک پرواز، دینامیک خودرو، آیروالاستیسته، بهینه سازی زمینه های کاری صنعتی: طراحی مکانیزم های خطوط تولید،طراحی جرثقیل ها،طراحی ماشین الات صنعتی،بررسی عیوب و بهینه سازی ماشین الات صنعتی نرم افزارهای مسلط: متلب-سیمولینک- سیم مکانیک-انسیس - انسیس ورکبنچ-آدامز-سالیدورکس-آباکوس سوابق کاری:استاد سابق دانشگاه ازاد اسلامی، دانشگاه علمی کاربردی،مدرس نرم افزارهای مکانیک مجتمع فنی تهران (شعبه ی شیراز) و آموزشگاه فواد، مشاور مهندسی و طراح در یک شرکت معتبر تلفن تماس: 09369074440 ایمیل : mechanic.soft[at]yahoo.com , info[at]mechanicsoft.ir نوشته‌های تازه

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *