1. 程式人生 > >Delphi整理七(function and procedure)

Delphi整理七(function and procedure)

過程與函式

過程(procedure) and 函式(function)———-實現面向物件的重要手段

通用過程的定義

Procedure<過程名>[(<形參表>)];
[區域性宣告];
begin
<語句序列>;
end;

<形參表>的格式為:

[Const|Var]<形參名>:型別

1)保留字Procedure是定義通用過程的首部,’過程名’要遵循規則
2)<形參表>同類型逗號隔開,不同型別分號。無形參,可省略括號
3)區域性宣告可以:常量、變數、型別
4)程式開始begin,end結尾帶分號

通用過程的呼叫

呼叫格式:

過程名(引數表);

1)引數表中個數、型別、順序一致
2)如果形參用前冠var,對應實參必須是變數,否則同類型表示式就好

函式:和過程一樣,函式也是子程式的一種形式。區別:函式有返回,過程沒有
函式定義格式:

Function<函式名>[(形參表1)]:<函式返回型別>;
[區域性宣告];
begin
<語句序列>;
end

<形參表>個格式:

[Const|Var]<形參名>:型別

函式體中不給函式名賦值,函式返回預設值(數值)0、(布林)false、(字元)空字元

引數傳遞:

變數引數:引數前冠var,表示可變引數。
傳遞方式:

地址傳遞。引數值改變影響實際引數值。
例,(console Application中測試)
//這是一個簡單的過程

procedure ce(a:integer;var b:integer);
begin
b:=a;
end;
//測試主體
var
result:integer;
begin
ce(1,result)
write(inttostr(result));
//傳入1和result,把結果轉化為int型,輸出
readln;
end;

如果,b不是var前冠,結果為2130567168

值引數和常量引數

引數前冠const:常量引數,無var也無const就是值引數
值引數:傳遞過程不是一個儲存單元(地址),形參改變不會影響實參
常量引數:

是否實參,結果不變
預設引數:在定義的時候給值
例,(過程)

procedure <方法名>(xm:string;xb:widestring='男';mz:string='漢族');

139頁

子程式的巢狀與遞迴

1)在子程式(函式或過程中)定義了另外的子程式(function or procedure),稱為(function or procedure)的巢狀。
2)子程式(function or procedure)直接或間接呼叫自己。有分直接和間接遞迴

變數的作用域

公有變數:

單元介面 interface決定了本單元哪些變數是公有的。
一個單元需要用如(DMata),只需在uses中引入該單元

私有變數:

在私有部分宣告,只能被本單元使用
區域性變數:(多用)
只能在該子程式中有效
全域性變數:(少用全域性,防止全域性變數副作用)
需要多個子程式之間交換資料,則可以通過全域性變數