قسمت هفدهم

در این جلسه می خواهیم به نحوه نوشتن توابع و روال هایی که در یک برنامه نیازمند استفاده از آنها هستیم .
در بیشتر برنامه ها نیازمند این هستیم که عملیات خاصی انجام شود و به طبع آن نتایجی حاصل آید و این عملیات در قسمت های مختلف برنامه چندیدن بار مورد استفاده قرار می گیرند و اگر قرار باشد این کدها چند بار نوشته شود اول اینکه موجب اتلاف وقت شده و ثانیا از کارایی برنامه کاسته می شود به همین خاطر با نوشتن این کدها به عنوان تابع یا زیرروال می توان به دفعات از این کدها در هر جای برنامه که نیاز باشد استفاده کرد .
محل نوشته توابع وروال ها در کد برنامه قبل تمام رویداد ها و بعد از قسمت implementation می باشد .

- نوشتن زیرروال :
Procedure ها یا زیرروال ها برای مواقعی به کار می روند که بخواهیم عملیاتی انجام شوند و نتایجی حاصل شود .
فرم کلی نوشتن روال به صورت زیر می باشد :

Procedure پارامترها)نام روال);
تعریف متغیرها در صورت نیاز
begin
دستور و یا دستورات ;
end ;

- کلمه Procedure یک قسمت ثابت می باشد .
- قسمت پارامترها : در این قسمت لیستی از پارامترهایی است که در صورت نیاز لازم است به روال داده شود تا بر اساس آن متغیرها عملیات خاصی انجام شود .
= نحوه نوشتن پارامترها به صورت زیر می باشد :

(نوع متغیر:نام متغیر ; ...)

نکات :
= پارامترها با کارکتر ; از هم جدا می شوند و در صورتی که چند پارامتر از یک نوع باشند می توان با استفاده کاراکتر , از هم جدا و سپس نوع آنها را ذکر نمود . توجه داشته باشید که ترتیب پارامترها از چپ به راست است .
= این نوع پارامترها را پارامترهای ورودی می گویند یعنی تنها فقط برای ورود اطلاعات به روال می باشد و هیچگونه تغییری در اصل آنها پیدا نمی کنند .
= پارامترهایی داریم به نام ورودی - خروجی یعنی هم برای ورود اطلاعات به کار می روند و هم برای اینکه از روال اطلاعاتی را دریافت کنیم ، برای مشخص کردن پارامتر ورودی - خروجی باید قبل از نام متغیر کلمه کلیدی var را بنویسیم .
= یک روال می تواند بدون پارامتر باشد .

دو مثال ساده :

Procedure Msg(Ok : Boolean) ;
begin
if Ok then
ShowMessage('The parameter is true')
else
ShowMessage('The parameter is false') ;
end ;
----------------------------------
Procedure Set(Ok : Boolean ; var St : String);
begin
if Ok then
St := 'Ok'
else
St := 'Not Ok' ;
end ;

= این روال 2 پارامتر می گیرد ، پارامتر اول از نوع بولی می باشد که به عنوان ورودی عمل میکند و پارامتر دوم که از نوع رشته ای می باشد به صورت ورودی - خروجی عمل می کند . این روال دو پارامتر را می گیرد و بر طبق True و یا False بودن متغیر Ok‌ مقدار متغیر رشته ای St را تنظیم می کند .

نوشتن تابع :
* توابع برای موقعی به کار می روند که بخواهیم پس از انجام عملیاتی خاص نتیجه و مقداری را برای ما بر گرداند .
= فرم کلی نوشتن توابع به صورت زیر می باشد :

Function نوع مقدار بازگشتی : (پارامترها)نام تابع ;
تعریف متغیرها در صورت نیاز
begin
دستور و یا دستورات ;
Result := مقدار برگشتی تابع
end ;

همانطور که گفتیم توابع باید یک مقدار را برگردانند از این رو باید نوع مقدار برگشتی مشخص شود برای این کار نوع مقدار را جلوی نام تابع بعد از پرانتز پارامترها و علامت : می نویسیم . در واقع با این کار تابع را همانند متغیر ها تعریف می کنیم و نام تابع نیز همانند نام متغیرها عمل می کند. برای اینکه به نتیجه تابع مقدار دهیم از دستور Result استفاده می کنیم ، نوع مقداری که جلوی دستور Result نوشته می شود باید هم نوع مقدار برگشتی تابع باشد . نکاتی که در مورد روال ها گفتیم برای توابع نیز به کار میروند .

یک مثال ساده :

Function Equal(i : Integer) : Boolean ;
var
y : Integer ;
begin
y := 1383 ;
if i=y then
Result := True
else
Result := False ;
end ;

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

روال : Msg (True) ;
تابع : var
g : Boolean ;
G := Equal(1382) ;

نکات :
در مورد پارامترها باید ترتیب و نوع پارامترهای وارد شده با ترتیب و نوع پارامترهایی که در معرفی تابع یا روال نوشته شده هماهنگ باشد
در مورد توابع از آنجا که یک مقدار بر می گرداند همانند یک متغیر عمل کرده و می توان آنها را برابر متغیری از نوع خودش قرار داد .
توابع باید حتما مقدار بازگشتی داشته باشند .
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد