متلب
صفحات وبلاگ
نویسنده: پ متلب - جمعه ۱۸ فروردین ،۱۳٩۱

تابع Function 

 

میتوان گفت بیشتر دستر ها وتوابعی که در متــــــــلب به کار

 

میگیریم دارای یکm-file هستند بدین معنی که برنامه ای برای

 

 تابع ویا دستور مربوطه نوشته شده است.

 

ولی همه این نوابع از سیستم خاصی کهfunction آنها را موظف

 

می کند پیروی می کنند.

 

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

 

عمل کنیم.

 

در صورتی که می خواهید مثالی از این تابع ببینید ،میتوانید به

 

شاخه \MATLAB7\toolbox رفته و از داخل یکی از جـــــعبه

 

 ابزارها یک m-file را باز کنید.می بینید که هر کدام برنــامه ای

 

کامل است .

 

ولی چیزی که شاید توجه تان را جلب کند سطر اول همـــــه

 

برنامه هاست که با function شروع میشود .

 

Function  output= function  name (input)                      

 

 

( input,outputپارامتر ورودی وخروجی هستند function  name

 

 نام تابع است).

 

اگر برنامهای را بصورت تابع نوشته ایم میتــــــوانیم در هر جایی

 

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

 

حال چگونه یک تابع بسازیم :

 

شاید با عنوان کردن این موضوع این سوال برایتان پیـــش اید که

 

 چگونه برنامه نوشته شده را به تابع تبدیل کنیم؟  بــــاید بگوییم

 

تبدیل برنامه نوشته شده به تابع بجز اضافه وکم کـــــــردن  چند

 

سطر کاری ندارد یعنی به عبارتی  اگر بخواهید یک برنامه کــامل

 

 را به تابع تبدیل کنید چند دقیقه بیشتر طول نخواهد کــــــــشید

 

 البته اگر روند ساخت تابع را بدانید  این کار را راحت وبا تــــسلط

 

 انجام خواهید داد.

 

همه میدانیم که ورودی تابع را با خود تابع وارد میکـنیم و در حین

 

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

 

 شده برای تابع ،از دریافت هر گونه مقدار و ورودی در حین اجرا

 

باید بدور باشیم وهمه ورودی ها را در اول برنامه در دســــــــتور

 

 function تعریف نماییم.

 

هیچ تابعی پس اجرا جمله ویا علائم اخباری چاپ نمــی کند پس

 

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

 

خروجی ها را باز در دستور function تعریف می کنیم.

 

خط اول هر برنامه تابعی بدینگونه نوشته می شود:

 

                       

Function  output=  name (input)                                                           

                                  

در عبارت بالا :

 

Name،نام تابعی است که می سازیم که باید ایـــــــن نام با نام

 

 فامیل ذخیره شده یکی باشد وگرنه سیستم در هنگام استفاده

 

 کردن تابع خطا خواهد داد.

 

((تکرار می کنیم که حتماً تابع با نام فامیل ذخــیره شـــــــده اند

 

 یکی باشد)).

 

البته وقتی در سطر اول functionرا بکار ببریم سیــستم بصورت

 

خودکار نام تابع را برای نام فایل قرار خواهد داد.

 

Input  همان مقادیر ورودی است که در برنامه ها بیشتر باinput

 

دریافت می شود.

 

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

 

به ازای هر کدامیک پارامتر در داخل پرانتز قرار می دهــــیم.به این

 

  مثال توجه فرمایید:

 

((از اول یک تابع جمع سه عدد می نویسیم ونـــام آن را numadd 

 

می گذاریم))

 

(این دستورات به ترتیب در m-file نوشته میشوند)

 

اولی خط برنامه چنین خواهد بود:

 

Function  d= numadd(a,b,c)        

 

می بینید که در دســــتور function نام ورودی و خـــــروجی را

 

تعریف نمودیم ولی اگر مـــــــی خواســــتیم این دستورات را با

 

input بنویسیم باید فـــــقط ســــه بار دســــتور input استفاده

 

می کردیم.

 

حال سه عدد ورودی را با هم جمع کنیم و پاســــخ بـــرنامه را

 

نمایش دهیم.

                                                        

 

D=a+b+c;                                                                                   

 

 

یادتان باشد که تابع هایی را که میسازند در انتهای سطر ها ((;))

 

 قرار دهید تا نتیجه اجرای سطر نمایش داده نشود (البته برای بار

 

 اول خطا یابی طبیعتاً اینگونه نبست).

 

 

با اضافه کردن سطر دوم  برنامه تابع جمع سه عدد تمام شد آن

 

 را با فشار دادن کلیدsave در منوی file ذخیره می کـــــــنیم اگر

 

دقت کرده باشید می بینید که با فشار کــــلید save پنــــجره ای

 

برای دریافت نام ومسیر از شما می خواهد که مسیررا نباید تغییر

 

 داد والبته نام نمایش داده شده برای تابـــــع است که گفتیم باید

 

 یکی باشد پس باید بدون هیچ تغییری ذخیره کنیم.

 

اگر function دارای ورودی نباشد می توانیم ازm-file اجرا نماییم

 

(با فشار دادن f5).

 

 

>>numadd(1 ,2 ,3 )                                                                              

 

Ans=                                                                                          

6                                                                                              

که با اجرای برنامه پاسخ نمایش داده می شود.

 

اگر توضیحاتی  در مورد برنامه می خواهید بدهید بــــاید پس از

 

دستور function(خط اول )باید باشد .

 

                                                                            

Function d=numadd(a,b,c)                                                        

% this function is additional  of the three number                         

D=a+b+c                                                                                

                           

 

گفتیم چگونه m-file و  یا همان برنامه نوشته شــــــــده را به

 

function   تبدیل نماییم؟

 

به نظر میرسد تا حدی با نحوه انجام کار آشنا شـــــــده باشید.

 

ولی در چند جمله کوتاه می گوییم که:

 

همه ورودی ها (input…)  پاک شده وپارامتر مربوطه در ورودی

 

 تابع قرار داده شود.

 

همه خروجب ها وهر گونه چاپ و علائم  و نوشته ها (disp…)

 

  باید حذف گردد.

 

پس از اجرای برنامه تغییر داده شده وبدون خطا ،در پـــایان هر

 

 خط علامت ; گذارده شود.

 

کنترل ها در برنامه نویسی

 

این توابع برای تصمیم گیری  برای انجام کاری ویا انجام به دفعات

 

 بکار میرود.

 

این توابع به چند دسته تقسیم میشوند:

 

توابع شرطی

 

If این تا بع در صورت صــادق بودن شــــرط وارد شده دستورات

 

 معین شده را یکبار اجرا می کند.

 

whilel ایـــــن تابع تا وقتی که شرط وارد شده برقرار است

 

 دستورات وارد شده انجام خواهد شد وتعداد تکرار مهم نیست.

                                                          

Switch    این دستور تصمیم گیری در میان چندین موضـــــــوع

 

 همسان را بر عهده دارد تا حدی شبیه به دستور if  است.

 

For      بوسیله این دستور می توانیم قســــمتی از برنامه را به

 

 تعداد معلوم تکرار نماییم.

 

While    تکرار به دفعات نا متناهی را می توان انجام داد.

 

در پایان همه این دستورات ،دستور end اســـــتفاده میشود که

 

 نشان دهنده پایان چرخه است.

 

If……..end

 

گفتیم که این تابع برای اجرای قسمتی از برنامه  در صـــــــورت

 

صادق بودن شرط وارد شده به کار میرود.

 

شکل این دستور بدین صورت است:

 

 

                                                                     شرط تعیین شده  if

                                                                     دستورات وارد شده

                                                                               

 

 

End                                                                             

 

اگر شرط صدق کند دستورات داخل این عبارت اجرا میــــشود.

 

ولی اگر شرط صدق نکند کل عبارت if نادیده گرفــته میشود و

 

اجرای دستورات به بعد از خط end منتقل می شود.

 

میتوان چندین عبارت  if را داخل هم استفاده کرد.

 

به مثال زیر توجه فرمایید(در m-file نوشته شود):

 

A=input('please entered  2  and enter');                                      

If  a==2                                                                                    

Disp ('your entered number is 2');                                         

End                                                                                          

 

اجرای بر نامه:

 

 

Running the program…………….                                                  

 

Please enter  a number                                                               

   4                                                                                            

 

your entered number is not 2                                                       

else       در غیر این صورت

 

این دستور داخل عبارت if استفاده میگردد ودر صورتی که شرط

 

وارد شده صدق نکند دستورات وارد شده اجرا می شوند.

 

به مثال زیر توجه فرمایید(در m-file نوشته شود):

 

 

 

A=input('please enter number:');                                                           

If  a==2                                                                                             

Disp ('your entered number is 2');                                                    

Else                                                                                                   

   Disp ('your entered number is not 2');                                             

End           

 

اجرای بر نامه:

 

  

 

Running the program…………….                                                  

Please enter 2 and pess enter                                                     

2                                                                                             

 

your entered number is 2                                                          

                                                                                       

 

elseif      چند شرط همزمان

 

ممکن است در یک زمان چند شرط را هــمزمان وپشـــــت سر هم

 

 وارد کنیم این کار را بوسیله elseif انجام می دهیم.

 

به مثال زیر توجه فرمایید (در m-file نوشته می شود):

 

    

a=input(' Please enter  a number:')                                         

if a==2                                                                                

 Disp ('your entered number is 2');                                        

Elseif  a==3                                                                           

Disp ('your entered number is 3');                                      

Elseif  a==4                                                                          

Disp ('your entered number is 4');                                     

Else                                                                                    

Disp ('your entered number is not 2 3 4 ');                          

End                                            

نویسندگان وبلاگ:
کدهای اضافی کاربر :