حلقه if else

در انجام پروژه های برنامه نویسی مختلف، در نرم افزار متلب ، حلقه ها دارای کاربرد فراوانی می باشند. از تعریف آرایه های ماتریس ها گرفته تا تعیین شرط های مرزی و ... . کمتر برنامه ای را می توان در نرم افزار مطلب  نوشت که در ان از حلقه های شرطی و ... استفاده نشده باشد. در این قسمت به نحوه عملکرد حلقه if else  در نرم افزار متلب خواهیم پرداخت.

عملكرد اين حلقه در متلب ( matlab ) بدين صورت است كه بجاي تعين تعداد تكرار حلقه، تعداد تكرار خود تابعي از برنامه يا دستوري مياشد كه در مقابل اين حلقه نوشته شده باشد و تا زمانيكه اين دستور صادق است، برنامه اجرا خواهد شد و در هر بار اجراي حلقه اين دستور نيز چك مي گردد و زمانيكه نقض گرديد، تكرا ر حلقه اتمام يافته و اجراي برنامه به خط بعد از اين حلقه موكول مي گردد :                                               

n=0

while n<100

    n=n+5

end

در مثال فوق n  طبق رابطه بيان شده افزايش مي ابد و بعد از هر باز دستور نوشته شده در مقابل while چك مي گردد و هر موقع كه نقض گرديد تكرار حلقه در متلب خاتمه مي یابد.

 

حلقه if-else-end  در نرم افزار مطلب:

بسياري از مواقع دستورات طوري هستند كه قبل از اجراي آنها شرايطي بايستي چك گردند و يا براي وارد شدن به يك قسمت از برنامه شرط مربوط به آن برآورده شود ، دستور عملكرد چنين برنامه هاي شرطي با حلقه if-else-end مي باشد كه ساده ترين حالت اين دستور  در matlab بفرم زير است :

if    (شرط اعمالي به برنامه )

         ( قسمتي از برنامه كه شرط اجراي آن ارضاء شرط گذاشته شده است)

end

مثال :

clc

clear all

n=0

while n<100

    n=n+5;

    if n<20

        d=(n+1)^2-3;

    end

end

دربرنامه فوق شرط وارد شدن به داخل حلقه if و محاسبه d اين است كه n<20 باشد. مادامي كه اين شرط برقرار باشد وارد حلقه خواهد شد.

از چندين شرط مي توانيد در برنامه خود بر اساس نياز استفاده نمائيد ، برنامه زير را دريك m-file مطلب نوشته و اجرا نمائيد :

clc

clear all

disp('please enter n=')

n=input('  ')

if n<0

    a=(1+n^2)+2*n+1

end

if n==0

    a=2

end

if n>0

    a=sqrt(n^5-3*n^3+2*n^2-5*n-11)

end

 

دربرنامه فوق دستور input يكي از توابع مطلب مي باشد كه به شما امكان مي دهد كه از بيرون ( توسط صفحه كليد ) ورديهاي برنامه  را وارد كنيد ، حال برنامه را اجرا كرده ، خواهيد ديد كه پيغام نوشته شده در داخل disp نمايش داده مي شود وتابع input منتظر است كه شما عدد مورد نظر را وارد كنيد تا در پارامتر n ذخيره نمايد، به دلخواه عددي را در صفحه command وارد كرده و كليد enter را فشار دهيد ، خواهيد ديد كه اگرعدد شما مثبت يا منفي يا صفر باشد

حلقه شرطي براي محاسبه a روند كنترل را در دست گرفته و ادامه برنامه را موكول به قسمتي مي نمايد كه شرط درآن برقرار است و شرطها تك به تك بررسي مي شوند و اگرهيچكدام از شرطها برقرار نبود ادامه برنامه به خط بعد از آخرين end سپرده مي شود ، مراحل اجراي برنامه فوق را درزير مشاهده مي كنید:

please enter n=

3

n =

     3

a =

   12.4097

 

please enter n=

0

n =

     0

a =

     2

 

please enter n=

-12

n =

   -12

a =

   122

در صورتيكه فردي كه از برنامه شما استفاده مي كند، و ورديها را اشتباه وارد مي كند و ميخواهيد در اين حالت يك پيغام خطا براي او اعلام كنيد ميتوانيد از پنجره هاي هشدار استفاده نمائيد اين پنجره ها در قسمت GUI مطلب شرح داده مي شود و در اينجا فقط يك نمونه از آن را استفاده مي كنيم

دستور زير را در هر قسمت از برنامه كه نياز داشتيد ميتوانيد بكار ببريد و پيغام داخل آن دقيقا نمايش داده ميشود

warndlg('Please Enter Number Currectely')

خروجي دستور فوق پنجره هشدار زير است :

 

  براي راحتي عملكرد درصورتيكه تعداد حلقه هاي شرطي شما زياد است مي توانيد از دستورات ساده شده زير استفاده نمائيد.

if   (شرط مربوطه )

             (برنامه )

else

 

 ( در صورتيكه شرط قبلي ارضاء نشود وارد اين قسم شده و دستور اجرا ميشود ) 

end

مثال :

clc

clear all

disp('please enter degree of polynomials =')

n=input(' ')

if n>=0

    y=2*5^n+1

else

     warndlg('Please enter Degree of ploynomial positive')  

end

درمثال فوق شرط وارد شدن به داخل حلقه else نقض شرط حلقه if مي باشد و درصورتيكه كه بخواهيم حلقه else نيز خود داراي شرط باشد از elseif استفاده مي نمائيم ، توجه داشته باشيد كه در استفاده از if با else يا elseif به هرچند تا كه باشد درانتهاي فقط يك end به منزله خاتمه كل حلقه قرار داده مي شود .

مثال :

clc

clear all

disp('please enter degree of polynomials =')

n=input(' ')

if rem(n,2) ~= 0

   M = (n^3-2*n^2-1)

elseif rem(n,4) ~= 0

   M = (n+1)

else

   M = (n-1)^2

end

مثال :

clc

clear all

A=input('A = ')

B=input('B = ')

if A > B

   'greater'

elseif A < B

   'less'

elseif A == B

   'equal'

end

تركيبي از حلقه ها تكرار و شرطي را مي توان  در matlab بكاربرد :

 clc

clear all

k=0;

for i=1:100

    k=k+1;

    if k<=20

        b=1+2*k;

    elseif 21<=k<=56

        d=1-k^2;

    elseif 57<=k<=99

        h=1/k;

    elseif k==100

        t=1/(1-k^2+k);

    end

end

دیدگاه خود را بنویسید

دیدگاه پس از تائید مدیریت منتشر می شود.