首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計算機(jī)等級考試 | 軟件水平考試 | 職稱計算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會計從業(yè)資格考試會計證) | 經(jīng)濟(jì)師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務(wù)師
注冊資產(chǎn)評估師 | 高級會計師 | ACCA | 統(tǒng)計師 | 精算師 | 理財規(guī)劃師 | 國際內(nèi)審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價師 | 土地估價師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項目管理師 | 土地登記代理人 | 環(huán)境影響評價師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實(shí)用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

2011計算機(jī)等級考試Delphi面向?qū)ο蟮木幊谭椒?/h1>

本章中,我們將討論Object Pascal的主要特點(diǎn),并講解如何在事件處理過程和其他應(yīng)用程序中,使用它來編制程序代碼。

  2.1.8.4 過程和函數(shù)的語句部分

  過程或函數(shù)的語句部分由begin開始,end結(jié)束。函數(shù)需要一個返回值?梢詫⒎祷刂蒂x給函數(shù)名稱,也可以將返回值賦給Result變量。下面的例程將返回值賦給函數(shù)名稱:

  function CalculateInterest(Principal,InterestRate: Double):Double;

  begin

  CalculateInterest := Principal * InterestRate;

  end;

  將返回值賦給Result變量也是可以的,則上面的程序改為:

  Result := Principal*InterestRate;

  下面是這個函數(shù)的調(diào)用方法:

  InterestEarned :=CalculateInterest(2000,0.012);

  在Implementation后面的過程和函數(shù),可以且只能被此庫單元的事件處理過程使用。要讓過程和函數(shù)可以被其他的程序庫單元使用,則需要將過程或函數(shù)的標(biāo)題部分放在庫單元中的interface部分,而把含標(biāo)題的整個過程或函數(shù)放在庫單元的inplementation部分,并在要訪問這個過程或函數(shù)的庫單元的uses子句中加入說明這個過程或函數(shù)的庫單元名稱。

  2.1.8.5 函數(shù)的遞歸調(diào)用

  在Object Pascal中,過程或函數(shù)必須先說明再調(diào)用。上文的NoValue函數(shù)必須在使用它的事件處理過程之前說明和執(zhí)行,否則程序會報告一個未知標(biāo)識符的錯誤。

  以上規(guī)則在遞歸調(diào)用時是例外情況。所謂遞歸調(diào)用,是指函數(shù)A調(diào)用函數(shù)B,而函數(shù)B又調(diào)用函數(shù)A的情況。在遞歸調(diào)用中,函數(shù)要進(jìn)行前置,即在函數(shù)或過程的標(biāo)題部分最后加上保留字forword。下文的例程是一個遞歸調(diào)用的典型例子:

  …

  implementation

  var

  alpha:Integer;

  procedure Test2(var A:Integer):forword;

  {Test2被說明為前置過程}

  procedure Test1(var A:Integer);

  begin

  A :=A-1;

  if A>0 then

  test2(A); {經(jīng)前置說明,調(diào)用未執(zhí)行的過程Test2}

  writeln(A);

  end;

  procedure Test2(var A:Integer);{經(jīng)前置說明的Test2的執(zhí)行部分}

  begin

  A :=A div 2;

  if A>0 rhen

  test1(A); {在Test2中調(diào)用已執(zhí)行的過程Test1}

  end;

  procedure TForm1.Button1Click(Sender:TObject);

  begin

  Alpha := 15; {給Alpha賦初值}

  Test1(Alpha); { 第一次調(diào)用Test1,遞歸開始}

  end;

  按鈕的OnClick事件處理過程給Alpha賦初值,并實(shí)現(xiàn)先減1再除2的循環(huán)遞歸調(diào)用,直到Alpha小于0為止。

  2.1.8.6 過程和函數(shù)的參數(shù)

  當(dāng)您的程序代碼在調(diào)用一個過程或函數(shù)時,通常用參數(shù)傳遞數(shù)據(jù)到被調(diào)用的過程或函數(shù)中。最常用的參數(shù)有數(shù)值參數(shù)、變量參數(shù)和常量參數(shù)三種。

  由被調(diào)用過程或函數(shù)定義的參數(shù)為形參,而由調(diào)用過程或函數(shù)指明的參數(shù)叫實(shí)參。在NoValue函數(shù)中,說明函數(shù)體中的AnEditBox是形參,而調(diào)用時在if NoValue(Edit1)…中,Edit1是實(shí)參。

  數(shù)值參數(shù)在運(yùn)行過程中只改變其形參的值,不改變其實(shí)參的值,即參數(shù)的值不能傳遞到過程的外面。試看下面的例程:

  procedure Calculate(CalNo:Integer);

  begin

  CalNo := CalNo*10;

  end;

  用以下例程調(diào)用Calculate函數(shù):

  …

  Number := StrToInt(Edit1.Text);

  Calculate(Number);

  Edit2.Text := IntToStr(Number);

  …

  Number接受由編輯框1輸入的數(shù)值,經(jīng)Calculate過程運(yùn)算。它是一個數(shù)值型實(shí)參。在進(jìn)入Calculate函數(shù)后,會把Number實(shí)參拷貝給形參CalNo,在過程中CalNo增大十倍,但并未傳遞出來,因此Number值并未改變,在編輯框2中顯示仍然是編輯框1中的輸入值。形參和實(shí)參占用不同的內(nèi)存地址,在過程或函數(shù)被調(diào)用時,將實(shí)參的值復(fù)制到形參占用的內(nèi)存中。因此出了過程或函數(shù)后,形參和實(shí)參的數(shù)值是不同的,但實(shí)參的值并不發(fā)生變化。

  如果您想改變傳入的參數(shù)值,就需要使用變量參數(shù),即在被調(diào)用程序的參數(shù)表中的形參前加上保留字var。例如:

  procedure Calculate(var CalNo : Integer);

  則CalNo并不在內(nèi)存中占據(jù)一個位置,而是指向?qū)崊umber。當(dāng)一個變參被傳遞時,任何對形參所作的改變會反映到實(shí)參中。這是因為兩個參數(shù)指向同一個地址。將上一個例程中過程頭的形參CalNo前面加上var,再以同樣的程序調(diào)用它,則在第二個編輯框中會顯示計算的結(jié)果,把第一個編輯框中的數(shù)值放大十倍。這時形參CalNo和實(shí)參Number的值都是Nnmber初始值的10倍。

  如果當(dāng)過程或函數(shù)執(zhí)行是要求不改變形參的值,最保險的辦法是使用常量參數(shù)。在參數(shù)表的參數(shù)名稱前加上保留字const可以使一個形參成為常量參數(shù)。使用常量參數(shù)代替數(shù)值參數(shù)可以保護(hù)您的參數(shù),使您在不想改變參數(shù)值時不會意外地將新的值賦給這個參數(shù)。

上一頁  1 2 3 4 5 6 7 8 9 10  ... 下一頁  >> 
  相關(guān)推薦:2010年9月計算機(jī)等級考試試題及答案解析專題
       預(yù)告:名師解析2010年9月計算機(jī)等級考試試題答案
       2010年9月計算機(jī)等級考試成績查詢時間及入口
       2010年9月計算機(jī)等考成績查詢短信免費(fèi)提醒開通
文章搜索
計算機(jī)等級考試欄目導(dǎo)航
版權(quán)聲明:如果計算機(jī)等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機(jī)等級考試網(wǎng)內(nèi)容,請注明出處。