08十天學會易語言圖解教程(王軍)文字校正-第八章_第1頁
08十天學會易語言圖解教程(王軍)文字校正-第八章_第2頁
08十天學會易語言圖解教程(王軍)文字校正-第八章_第3頁
08十天學會易語言圖解教程(王軍)文字校正-第八章_第4頁
08十天學會易語言圖解教程(王軍)文字校正-第八章_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第8章 易語言的子程序本章主要介紹易語言子程序的創(chuàng)建和調(diào)用、子程序參數(shù)的使用以及參數(shù)屬性的設(shè)置方法。 本章學習內(nèi)容:8.1 新建子程序 8.6 參數(shù)的參考屬性8.2 調(diào)用子程序 8.7 子程序的返回值8.3 兩類子程序的區(qū)別 8.8 課后練習8.4 子程序參數(shù) 8.5 參數(shù)的可空屬性將程序分割成較小的功能單元就可以簡化程序設(shè)計任務(wù),這些功能單元被稱為子程序,可以把共享的或常調(diào)用的功能置于子程序中,達到簡化程序設(shè)計、方便代碼重用和提高程序維護效率的目的,這是結(jié)構(gòu)化程序設(shè)計的主要特征之一。 子程序可把程序劃分成相對獨立的功能單元,每個單元都比無子程序的整個程序容易調(diào)試和理解; 一個應(yīng)用程序中的子程

2、序,往往不必修改或只需稍作改動,便可以成為另一個程序的子程序。8.1 新建子程序下面我們就開始新建第一個自定義子程序。方法十分簡單,一步一步跟我來吧!首先在啟動窗口添加一個按鈕,默認名稱為“按鈕1”。雙擊按鈕1進入代碼編輯界面。另一種更快捷的方法是,在代碼編輯區(qū)獲得焦點時,同時按下“Ctrl 鍵”和“N鍵”,也可以新建子程序。將光標移到代碼編輯行,右鍵單擊,在彈出菜單中選擇“新子程序”命令,就可以新建子程序。新建子程序的默認名稱為“子程序1”,依此類推。第三種方法,到主菜單上。選擇“插入” “新子程序”命令也可新建子程序?!白映绦?” 已經(jīng)存在,當另一個子程序被修改成“子程序1”時,易語言彈出

3、出錯提示。注意:在同一個程序集中,子程序名不能重復(fù)。特別在修改的時候,易語言會提示并修改已經(jīng)被使用過的名稱。被易語言修改的子程序名。新建的子程序沒有參數(shù),這需要操作者自行添加所需數(shù)目的參數(shù)并設(shè)置參數(shù)的類型以及參數(shù)的可空、參考和數(shù)組等屬性。特別應(yīng)該注意的是,每個新建的子程序都不會被易語言或其它子程序自動調(diào)用,下面將講解如何調(diào)用子程序。8.2 調(diào)用子程序前一節(jié)中講了如何建立子程序,下面演示如何調(diào)用一個子程序。在“_按鈕1_被單擊”事件子程序中添加程序代碼 “ 子程序1() ”或直接復(fù)制名稱,將其粘貼過來。在“子程序1”中添加代碼:信息框(“你好!我是信息框?!?,#信息圖標,) 同一個子程序可以被多

4、次調(diào)用。在“按鈕2”事件子程序中添加代碼 子程序1() 。 按F5鍵運行程序,分別單擊“按鈕1”和“按鈕2”,都能彈出“子程序1”里的信息框。一個子程序可以在事件子程序和其它新建的子程序中多次被調(diào)用,也可以被其它程序集的事件子程序和新建的子程序調(diào)用。要注意的是,在本程序中定義的子程序只能在本程序中使用。每次調(diào)用子程序時,子程序中的所有命令都將從第一條開始順序執(zhí)行,當執(zhí)行到子程序尾部或者遇到“返回”命令時即返回到調(diào)用此子程序命令的下一條命令處。這里的“子程序1”同時被修改為信息框子程序。把“子程序1”修改為“信息框子程序”。上節(jié)中提到了子程序名稱的問題,這里我們還要提一個小建議。當要修改一個子程

5、序名稱時,應(yīng)該直接到這個子程序的定義位置進行修改。這樣可以使調(diào)用它的程序代碼同步修改該子程序的名稱,如上圖所示。這可以避免因調(diào)用無效子程序?qū)е碌木幾g錯誤。 大家可以看到,子程序必須由其它子程序調(diào)用才能被執(zhí)行。子程序的調(diào)用方法與命令的調(diào)用方法完全一致。 8.3 兩類子程序的區(qū)別雖然新建的子程序(自定義子程序)和事件子程序的調(diào)用方法一樣,但它們之間也有一些不同之處。輸入?yún)?shù)名稱并設(shè)置類型。最后按F5鍵運行程序,單擊“按鈕1”,信息框不見了。這是“_按鈕1_被單擊”子程序的原型,沒有參數(shù)。光標選中子程序名稱,按Enter鍵添加一個參數(shù)。信息框看不到的原因是“_按鈕1_被單擊”子程序參數(shù)結(jié)構(gòu)被改變,易

6、語言就會把它當作新建的子程序,和“按鈕1”沒有任何聯(lián)系了,而新建子程序可以任意的添加參數(shù)。請大家自行總結(jié)一下新建的子程序和事件子程序的區(qū)別。8.4 子程序參數(shù) 參數(shù)和變量的使用方法一樣,可以使用賦值語句在參數(shù)內(nèi)臨時存儲數(shù)據(jù)。參數(shù)有參數(shù)名(用來在程序中引用一個參數(shù))、數(shù)據(jù)類型(確定參數(shù)能夠存儲數(shù)據(jù)的種類)以及“可空”和“參考”等屬性。參數(shù)只能在定義它的子程序中使用,相當于局部變量。把8.3中“_ 按鈕1_被單擊”事件子程序的“參數(shù)1”刪除。參數(shù)的“類型”屬性可為空。如果空,默認為整數(shù)型。在“信息框子程序”添加兩個文本型參數(shù)“參數(shù)1”和“參數(shù)2”。按F5鍵,程序無法運行,在輸出面板中可以看到出錯提

7、示。這就說明我們還要在調(diào)用上述子程序時提供具體的參數(shù)。用光標選中此行并雙擊,在括號內(nèi)添加“,”號,按Enter鍵??吹搅藛幔空{(diào)用子程序的命令前多了個“”號,我們可以將它展開。展開的方法:直接雙擊或用鍵盤上的右光標鍵。標簽的標題在此處設(shè)置。參數(shù)提示和實際參數(shù)的內(nèi)容是互相對應(yīng)的,在上面添加文本型數(shù)據(jù)“易語言”,當程序運行時,下面“參數(shù)1”保存的數(shù)據(jù)就是“易語言”。接下來我們在程序中為子程序提供具體的參數(shù)數(shù)據(jù)。用“Ctrl+Tab”組合鍵切換到界面設(shè)計狀態(tài),在窗體上添加兩個標簽和兩個編輯框,并將標簽的標題屬性設(shè)置為“輸入123”,提示用戶。這是前面提到的“按鈕1”,下面的是“按鈕2”。切換到代碼編輯

8、狀態(tài),在子程序調(diào)用處,分別為兩個參數(shù)提供數(shù)據(jù)(編輯框提供的文本型數(shù)據(jù))。修改“信息框子程序”代碼。按F5鍵運行程序,在“編輯框1”和“編輯框2”中輸入“123”,單擊“按鈕1”,第一個信息框被彈出。你也可以輸入其它的數(shù)據(jù),看一看效果。子程序如需要接收參數(shù)數(shù)據(jù),必須先在子程序定義處的參數(shù)表部分定義所需的參數(shù)。調(diào)用有參數(shù)的子程序時所傳遞過來的數(shù)據(jù)將被順序地填入對應(yīng)的參數(shù)中。如果傳遞過來的數(shù)據(jù)與對應(yīng)位置處的參數(shù)數(shù)據(jù)類型不一致,在可以互相轉(zhuǎn)換時,系統(tǒng)將自動將傳遞過來的數(shù)據(jù)轉(zhuǎn)換成對應(yīng)參數(shù)的數(shù)據(jù)類型后再賦值給該參數(shù);如果不能轉(zhuǎn)換,就會產(chǎn)生運行時錯誤。如上面的第 2 步在調(diào)用子程序的同時就把“編輯框1.內(nèi)容

9、”和“編輯框2.內(nèi)容”作為參數(shù)數(shù)據(jù)對應(yīng)地傳遞到了編輯框子程序內(nèi)的兩個參數(shù)“參數(shù)1”和“參數(shù)2”內(nèi)。 8.5 參數(shù)的可空屬性參數(shù)可空,就是說該參數(shù)是可選的,從字面上就能理解它的意思。就是在調(diào)用子程序時,可以不提供該參數(shù)所需的數(shù)據(jù)。看看下面的例子。將“參數(shù)2”可空屬性選中。方法是,選中該處單元格再單擊或選中后按空格鍵。把調(diào)用處的“參數(shù)2”刪除。如果某個參數(shù)的“可空”屬性為真,那么在調(diào)用本子程序時,可以不給此參數(shù)傳遞數(shù)據(jù)??煽盏膮?shù)主要用于支持具有默認值的參數(shù);另外,如果給某個子程序添加了新參數(shù)卻又不想去更改以前調(diào)用此子程序的代碼,那么只要將新參數(shù)設(shè)置為可空參數(shù)就行了。8.6 參數(shù)的參考屬性打個比方

10、,你家的門鎖有兩把鑰匙,分別由兩個人拿著。不管是哪一個人都可以打開房門,改變家里家具的擺放位置。如果子過程的參數(shù)具有“參考”屬性,那么,當調(diào)用子程序時負責提供該參數(shù)數(shù)據(jù)的是一個變量的話,在子程序中修改了該參數(shù)的值,那個變量的值也會跟著被改變。在“_按鈕1_被單擊”事件子程序中添加兩個局部變量。把編輯框提供的文本型數(shù)據(jù)轉(zhuǎn)換到整數(shù)型。注意:文本型數(shù)據(jù)默認具有參考屬性,所以此例中為了演示參數(shù)的參考屬性,把文本型數(shù)據(jù)轉(zhuǎn)換到整數(shù)型。添加信息框,顯示調(diào)用子程序后,“變量2”的值。將“信息框子程序”兩個參數(shù)的類型改為整數(shù)型。添加代碼,修改“參數(shù)2”的值。注意:為了更好地了解程序的運行過程,可以通過在關(guān)鍵代碼

11、行前設(shè)置斷點的方法來跟蹤代碼行的執(zhí)行情況。在代碼行前設(shè)置斷點。設(shè)置斷點的方法:用光標選中將被設(shè)置斷點的代碼行,再按F9鍵。按F5鍵運行程序,在啟動窗口的編輯框中輸入“123”,單擊“按鈕1”。窗口消失,程序停止,一個斷點變黃。這就說明在“_按鈕1_被單擊”事件子程序中,第一個斷點處的“信息框子程序”將被執(zhí)行?!皡?shù)2”的值被改變?!皡?shù)1”的值是“變量1”的值。兩個條件都成立。再按F5鍵,“信息框子程序”里的代碼被執(zhí)行。說明子程序已經(jīng)被調(diào)用。再按F5鍵,斷點變?yōu)榧t色,彈出條件成立的信息框。單擊“確定”按鈕。程序又跳到了“信息框子程序”被調(diào)用處的下一行代碼處,說明“信息框子程序”執(zhí)行完畢。再按F

12、5鍵,彈出“_按鈕1_被單擊”事件子程序中的信息框。由于運行開始時“編輯框1”內(nèi)的數(shù)據(jù)為空文本,轉(zhuǎn)換到整數(shù)后為“0”。即使“參數(shù)2”的數(shù)據(jù)被改變,“變量2”仍保存原值?!皡?shù)2”沒有設(shè)置參考。單擊“確定”按鈕,代碼運行結(jié)束。關(guān)閉程序,然后設(shè)置“參數(shù)2”的參考屬性,設(shè)置“參數(shù)2”的參考屬性的方法類似可空屬性的設(shè)置,在參數(shù)定義表“參考”欄相應(yīng)空格內(nèi)單擊使之出現(xiàn)一個“”號。按F5鍵運行。最后信息框顯示“變量2”的值和“參數(shù)2”的值是相同的。 當使用變量向子程序的參數(shù)傳遞數(shù)據(jù)時,如果所傳遞過來的變量為數(shù)組、用戶定義數(shù)據(jù)類型、庫定義數(shù)據(jù)類型、字節(jié)集型或文本型,則無論參數(shù)的“參考”屬性是否為真,都將是傳遞

13、變量的指針(即該變量的內(nèi)存地址),這樣在子程序中改變該參數(shù)的值時相應(yīng)變量的值也會被改變;如果所傳遞過來的變量類型與相應(yīng)參數(shù)的數(shù)據(jù)類型不一致但可以相互轉(zhuǎn)換,譬如將整數(shù)型變量傳遞到小數(shù)型的參數(shù)時,則在數(shù)據(jù)被實際傳遞前,系統(tǒng)將首先自動將整數(shù)型變量的值轉(zhuǎn)換為小數(shù)型數(shù)據(jù),然后再進行傳遞,在這種情況下,即使參數(shù)的“參考”屬性為真,系統(tǒng)也無法傳遞指向原變量的指針,只能傳遞經(jīng)過類型轉(zhuǎn)換后的變量的值。如果系統(tǒng)將數(shù)據(jù)指針成功地傳遞過來,那么在子程序中對此參數(shù)內(nèi)容的更改將會相應(yīng)地反映到調(diào)用子程序時負責提供相應(yīng)參數(shù)數(shù)據(jù)的變量上。8.7 子程序的返回值子程序可以返回數(shù)據(jù),稱為返回值,但必須首先定義返回值的類型,并且要在

14、子程序中使用“返回”命令進行返回。將“信息框子程序”的返回值類型設(shè)置為整數(shù)型。刪除下面兩行代碼。參數(shù)2 123信息框 (“參考的使用方法?!?#換行符 “變量2=” 到文本 (變量2), 0,)在“_按鈕1_被單擊”事件子程序中添加名稱為“返回值”的整數(shù)型變量?!胺祷刂怠弊兞坑脕肀4妗靶畔⒖蜃映绦颉狈祷氐恼麛?shù)型數(shù)值。在“信息框子程序”的每個分支處添加返回命令。將“信息框子程序”里的兩個“信息框”命令復(fù)制到“_按鈕1_被單擊”子程序的判斷語句中。最后按F5鍵運行程序。調(diào)用一個子程序時,子程序中的所有命令將從第一條開始順序執(zhí)行,當執(zhí)行到子程序尾部或者遇到“返回”命令時即返回到調(diào)用此子程序命令的下一

15、條命令處。當一個子程序有返回值時,如果需要使用該返回值,可以把子程序調(diào)用命令嵌在其它命令中,如“變量1=變量2+子程序名(參數(shù))+變量3”(這里假設(shè)“子程序名(參數(shù))”有返回值),也可以建立一個與該返回值數(shù)據(jù)類型相同的變量來接收該返回值,即使用“變量名=子程序名(參數(shù))”的形式(“=”在這里是賦值號)。8.8課后練習(1)練習子程序的建立與調(diào)用。 新建“Windows窗口程序”添加一個按鈕。添加如圖上的代碼。完成后運行一下程序看看。這兩個地方添加什么值,才可以使程序運行,并且能夠正確顯示呢?請大家來將這兩個命令補充完整。(2)練習編寫用子程序的方式表示兩數(shù)相加,返回和的例程。 ,新建易程序,放兩個編輯框組件與一個按鈕組件,雙擊按鈕組件,進入程序代碼界面。新建一個子程序,名稱為:“和是幾”。加入兩個數(shù)。參數(shù)類型為整數(shù)型。返回值類型為整數(shù)型。在“_按鈕1_.被單擊”事件子程序下輸入以下程序代碼:信息框 (和是幾 (到數(shù)值 (編輯框1.內(nèi)容), 到數(shù)值 (編輯框2.內(nèi)容), 0, )在“和是幾”子程序下輸入以下程序代碼:返回(數(shù)1+數(shù)2)最后按F5鍵運行程序看看。(2)用子程序的方式編寫判斷兩個數(shù)大小的程序,并返回最大數(shù)。 新建易程序,放兩個編輯框組件與一個按鈕組件,雙擊按鈕組件,進入程序代碼界面。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論