黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

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

2011計算機等級考試Delphi面向對象的編程方法

來源:考試吧Exam8.com) 2010-10-25 17:20:40 考試吧:中國教育培訓第一門戶 模擬考場
本章中,我們將討論Object Pascal的主要特點,并講解如何在事件處理過程和其他應用程序中,使用它來編制程序代碼。

  2.1.8.4 過程和函數的語句部分

  過程或函數的語句部分由begin開始,end結束。函數需要一個返回值。可以將返回值賦給函數名稱,也可以將返回值賦給Result變量。下面的例程將返回值賦給函數名稱:

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

  begin

  CalculateInterest := Principal * InterestRate;

  end;

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

  Result := Principal*InterestRate;

  下面是這個函數的調用方法:

  InterestEarned :=CalculateInterest(2000,0.012);

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

  2.1.8.5 函數的遞歸調用

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

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

  …

  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); {經前置說明,調用未執行的過程Test2}

  writeln(A);

  end;

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

  begin

  A :=A div 2;

  if A>0 rhen

  test1(A); {在Test2中調用已執行的過程Test1}

  end;

  procedure TForm1.Button1Click(Sender:TObject);

  begin

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

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

  end;

  按鈕的OnClick事件處理過程給Alpha賦初值,并實現先減1再除2的循環遞歸調用,直到Alpha小于0為止。

  2.1.8.6 過程和函數的參數

  當您的程序代碼在調用一個過程或函數時,通常用參數傳遞數據到被調用的過程或函數中。最常用的參數有數值參數、變量參數和常量參數三種。

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

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

  procedure Calculate(CalNo:Integer);

  begin

  CalNo := CalNo*10;

  end;

  用以下例程調用Calculate函數:

  …

  Number := StrToInt(Edit1.Text);

  Calculate(Number);

  Edit2.Text := IntToStr(Number);

  …

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

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

  procedure Calculate(var CalNo : Integer);

  則CalNo并不在內存中占據一個位置,而是指向實參Number。當一個變參被傳遞時,任何對形參所作的改變會反映到實參中。這是因為兩個參數指向同一個地址。將上一個例程中過程頭的形參CalNo前面加上var,再以同樣的程序調用它,則在第二個編輯框中會顯示計算的結果,把第一個編輯框中的數值放大十倍。這時形參CalNo和實參Number的值都是Nnmber初始值的10倍。

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

上一頁  1 2 3 4 5 6 7 8 9 10  ... 下一頁  >> 
  相關推薦:2010年9月計算機等級考試試題及答案解析專題
       預告:名師解析2010年9月計算機等級考試試題答案
       2010年9月計算機等級考試成績查詢時間及入口
       2010年9月計算機等考成績查詢短信免費提醒開通
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
主站蜘蛛池模板: 透明奶罩的邻居三级在线观看 | 久青草视频在线播放 | 深夜在线 | 成年人免费在线 | 欧美日韩在线免费看 | 美女视频很黄很暴黄是免费的 | 99精品视频在线播放2 | 999www成人 | 国产丰满眼镜女在线观看 | 日韩伦理片在线播放 | 中国成熟xxx视频 | 亚洲欧美在线观看视频 | 麻豆一区区三三四区产品麻豆 | 台湾一级毛片 | 香港经典a毛片免费观看爽爽影院 | 婷婷六月久久综合丁香乐透 | 天天干干干干 | 人人做人人爽人人爱 | 天干天夜啪天天碰 | 黄 片在线影院 | 香蕉视频一区二区 | 亚洲欧美人成综合导航 | 国产精品成人观看视频国产 | 九九热精品在线视频 | 立即播放免费毛片一级 | 国产精品一区二区手机看片 | 成年网站免费观看 | h无遮挡成人漫画网站 | 九九热视频在线免费观看 | 精品国产一区二区三区免费 | 日韩中文字幕精品一区在线 | 国产日韩精品欧美一区视频 | 美国一区二区三区 | 最近2019年中文字幕大全视频 | 狠狠插视频 | 成人a免费α片在线视频网站 | 极品成人 | bt7086国产一区合集亚洲 | 曰批全过程免费视频观看软件 | 老司机免费福利视频无毒午夜 | 日韩毛片网 |