易語言教程第8章易語言的子程序_第1頁
易語言教程第8章易語言的子程序_第2頁
易語言教程第8章易語言的子程序_第3頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

2、只需稍作改動(dòng),便可以成為另一個(gè)程序的子程序。1638.1新建子程序F面我們就開始新建第一個(gè)自定義子程序。方法十分簡單,一步一步 跟我來吧!窗口程序集名備莊窗口程序集1首先在 啟動(dòng)窗口添 加一個(gè)按 鈕,默認(rèn)名 稱為“按鈕 1 ”。雙擊按 鈕1進(jìn)入代 碼編輯界 面。子程序i新建子程 序的默認(rèn)名稱 為“子程序1 ”, 依此類推。子程序名返回值類型公開備拄交詡L.被單擊2匚乩新子程序4Ctrl+N1kJ11.撤消叢刪除Ctrl+H C.復(fù)制Ctrl+C 粘貼Ctrl+V子程序名將光標(biāo)移到代碼編輯行, 右鍵單擊,在彈出菜單中選擇 “新子程序”命令,就可以新建 子程序。另一種更快 捷的方法是,在 代碼編輯

3、區(qū)獲 得焦點(diǎn)時(shí),同時(shí) 按下“ Ctrl鍵” 和“ N鍵”,也 可以新建子程 序。窗口程序集名IS閒IBI ?電S新孑程序匸新窗口吠N新現(xiàn)行組件Ctrl+NM.新程序集第三種方法,到主 菜單上。選擇“插入”“新子程序”命令也可 新建子程序。注意: 在同 個(gè)程序集中, 子程序名不 能重復(fù)。特別 在修改的時(shí) 候,易語言會(huì) 提示并修改 已經(jīng)被使用 過的名稱。廠“子程序1 ”已經(jīng)存在, 當(dāng)另一個(gè)子程 序被修改成“子程序1 ” 時(shí),易語言彈出 出錯(cuò)提示。新建的子程序沒有參數(shù),這需要操作者自行添加所需數(shù)目的參數(shù)并設(shè)置 參數(shù)的類型以及參數(shù)的可空、參考和數(shù)組等屬性。特別應(yīng)該注意的是,每個(gè)新建的子程序都不會(huì)被易語

4、言或其它子程序自 動(dòng)調(diào)用,下面將講解如何調(diào)用子程序。8.2調(diào)用子程序在“子 程序1”中添 加代碼:信息 框(“你好!我是信息框?!保? 信息圖標(biāo),)窗口程序集名備注宙口程序集】子程序名返回值類型公開備注子程序1子程序名 延回值類型公開備注左鈕彼單擊|子程序1 0 ” M . n m h . . _ n 慣息懂丄 喰麒 寒是信縣框齊二.割司昌圖逐.)子程序名翹回值類型公開備注歩融1 被單擊子程序1 0子惶序名遞回值類型仝幵備注:子程序1 :信息框你妊我是厲息框.”.褲息國標(biāo),在“按鈕 1_被單擊”事件 子程序中添加 程序代碼“子 程序1()”或直接復(fù)制名稱, 將其粘貼過來。同子程序可以 被多次調(diào)

5、用。- J子程序名返回值類型公開備注爭(zhēng)站2被單擊子皤1 0按F5鍵運(yùn)行程序,分別單擊“按鈕1”和“按鈕2 ”,都能彈出“子程序1”里的信息框。在本一個(gè)子程序可以在事件子程序和其它新建的子程序中多次被調(diào)用,可以被其它程序集的事件子程序和新建的子程序調(diào)用。要注意的是,程序中定義的子程序只能在本程序中使用。每次調(diào)用子程序時(shí),子程序中的所有命令都將從第一條開始順序執(zhí) 行,當(dāng)執(zhí)行到子程序尾部或者遇到“返回”命令時(shí)即返回到調(diào)用此子程序 命令的下一條命令處。把“子 程序1 ”修改 為“信息框 子程序”。子程序名返回值裘型公開臾鈕單擊信息框子程序0這里的“子程序1”同 時(shí)被修改為信 息框子程序。入丿子程序名返

6、回值類型公開備注信區(qū)愜罐圧:上節(jié)中提到了子程序名稱的問題,這里我們還要提一個(gè)小建議。當(dāng)要 修改一個(gè)子程序名稱時(shí),應(yīng)該直接到這個(gè)子程序的定義位置進(jìn)行修改。這 樣可以使調(diào)用它的程序代碼同步修改該子程序的名稱,如上圖所示。這可 以避免因調(diào)用無效子程序?qū)е碌木幾g錯(cuò)誤。大家可以看到,子程序必須由其它子程序調(diào)用才能被執(zhí)行。子程序的 調(diào)用方法與命令的調(diào)用方法完全一致。8.3兩類子程序的區(qū)別行總結(jié)一下新建的子程序和事件子程序的區(qū)別。而新建子程序可以任意的添加參數(shù)。請(qǐng)大家自子程序參數(shù)結(jié)構(gòu)被改變,易語言就會(huì)把它當(dāng)作光標(biāo)選中 子程序名稱, 按Enter鍵添 加一個(gè)參數(shù)。這是“ 鈕1_被單擊 程序的原型, 有參數(shù)。輸

7、入?yún)?shù) 名稱并設(shè)置 類型。最后 按F5鍵運(yùn)行 程序,單擊“按鈕1 ”, 信息框不見 了。8.4子程序參數(shù)可以使用賦值參數(shù)名(用來在 (確定參數(shù)能夠存等屬性。參新建的子程序,和“按鈕 1”沒有任何聯(lián)系了參數(shù)和變量的使用方法一樣語句在參數(shù)內(nèi)臨時(shí)存儲(chǔ)數(shù)據(jù)。參數(shù)有 程序中引用一個(gè)參數(shù))、數(shù)據(jù)類型儲(chǔ)數(shù)據(jù)的種類)以及“可空”和“參考 數(shù)只能在定義它的子程序中使用,相當(dāng)于局部變量。信息框看不到的原因是 “按鈕1被單擊”1子程序名1返回值類型公開備&吐僉西1_菠軍擊:子 沒子程序名返回值類型公開A鈕-被單擊-卷數(shù)名類型7參敎1n整數(shù)型u把8.3中“_按鈕1_被單擊”事件子程序的“參數(shù)1 刪除。在“信息 框子程

8、序”添 加兩個(gè)文本型 參數(shù)“參數(shù)1 和“參數(shù)2”。r孑程序名懸回值類型備信息電子程序類型參考m空數(shù)書數(shù)1立本型一丄文本型D參數(shù)的“類 誹”屬性可為 空。如果空,默 認(rèn)為整數(shù)型。丿信息框你好!我是信息框.”,諾息圖標(biāo)看到了 嗎?調(diào)用子 程序的命令 前多了個(gè)“+”號(hào), 我們可以將 它展開。子程序名返回值類型公主7克鈕L被車擊箱息框子程序C )展開的方 法:直接雙擊或 用鍵盤上的右 光標(biāo)鍵。言”,當(dāng)程序運(yùn) 行時(shí),下面“參 數(shù)1 ”保存的數(shù)據(jù)就是“易語O參數(shù)提示和實(shí) 際參數(shù)的內(nèi)容 是互相對(duì)應(yīng)的,在上面添加文 本型數(shù)據(jù)“易語孑程序名返回值類型公開備注參數(shù)名類型參考可空數(shù)爼備注參數(shù)1丈本型參數(shù)2文本型接下

9、來我們?cè)诔绦蛑袨樽映绦蛱峁┚唧w的參數(shù)數(shù)據(jù)。用 “Ctrl+Tab ”組合鍵切換到界面設(shè)計(jì)狀態(tài),在窗體上添加兩個(gè)標(biāo)簽和兩 個(gè)編輯框,并將標(biāo)簽的標(biāo)題屬性設(shè)置為“輸入123”,提示用戶。標(biāo)簽的標(biāo) 題在此處設(shè)置。這是前面提到的“按 鈕1”,下面的是“按鈕2”。標(biāo)簽ft標(biāo)簽)可停留言臣*無以*A停留順序0每題輸入也3謔第fMfl/V1在此處 琴弊爭(zhēng)件飪理予程序T1禽1雇性切換到代碼編輯 狀態(tài),在子程序調(diào)用 處,分別為兩個(gè)參數(shù) 提供數(shù)據(jù)(編輯框提 供的文本型數(shù)據(jù))。子程序名題回值類型去開備注炎剛 被單擊信息框子程序 饋輯框1.內(nèi)客_編涓框2.內(nèi)容1 竦參數(shù)1:編輯框1.內(nèi)容子程序名遞回值類型公開備注信息框

10、子程序參數(shù)名類型口空數(shù)組備注參數(shù)1立本型參數(shù)E立本型匸丄+ :主I.如杲夠礬!工_ -男竽二.S-. 2 =.:丄竽二丄: 【廠信息框你好辛我是信息框 J 編息團(tuán)標(biāo) :信息框(“輸入錯(cuò)泯或後有輸入?!?,黠昔誤閨標(biāo),叫昔誤”)碼。修 改“信息 框子程 序”代按F5鍵運(yùn)行程序,在“編輯框1”和“編輯框2”中輸入“123”,單擊“按鈕1”,第一個(gè)信息框被彈出。你也可以輸入其它的數(shù)據(jù),看一看效果。子程序如需要接收參數(shù)數(shù)據(jù),必須先在子程序定義處的參數(shù)表 部分定義所需的參數(shù)。調(diào)用有參數(shù)的子程序時(shí)所傳遞過來的數(shù)據(jù)將 被順序地填入對(duì)應(yīng)的參數(shù)中。如果傳遞過來的數(shù)據(jù)與對(duì)應(yīng)位置處的 參數(shù)數(shù)據(jù)類型不一致,在可以互相轉(zhuǎn)

11、換時(shí),系統(tǒng)將自動(dòng)將傳遞過來 的數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)參數(shù)的數(shù)據(jù)類型后再賦值給該參數(shù);如果不能轉(zhuǎn) 換,就會(huì)產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。如上面的第 2步在調(diào)用子程序的同時(shí) 就把“編輯框1.內(nèi)容”和“編輯框2.內(nèi)容”作為參數(shù)數(shù)據(jù)對(duì)應(yīng)地傳遞 到了編輯框子程序 內(nèi)的兩個(gè)參數(shù)“參數(shù)1”和“參數(shù)2”內(nèi)。子程序容返回值類型公開備注信息框子程序參數(shù)名類型可空數(shù)組備注參數(shù)1文本型:參駆:文本型:口如果 痿數(shù)L二 叫?3且參數(shù)2 = 卜信息框l你好?我是信息框.j息團(tuán)標(biāo),)將“參數(shù) 2”可空屬性 選中。方法 是,選中該處 單元格再單 擊或選中后 按空格鍵。8.5參數(shù)的可空屬性參數(shù)可空,就是說該參數(shù)是可選 的,從字面上就能理解它的意思。

12、就 是在調(diào)用子程序時(shí),可以不提供該參 數(shù)所需的數(shù)據(jù)。看看下面的例子。信息框“輸入錯(cuò)誤或沒有輸入.樣菅誤圖標(biāo)“錯(cuò)謀肝)*把調(diào)用處 的“參數(shù) 2 ” 刪除。把調(diào)用處的“參數(shù) 2刪除。Z如果某個(gè)參數(shù)的“可空”屬性為真,那么在調(diào)用本子程序時(shí),可以不給此參數(shù)傳遞數(shù)據(jù)??煽盏膮?shù)主要用于支持具有默認(rèn)值的參數(shù);另外,如果給某個(gè)子程序添加了新參數(shù)卻又不想去更改以前調(diào)用此子程序的代碼,那么只要將新參數(shù)設(shè)置為可空參數(shù)就行了。8.6參數(shù)的參考屬性O(shè)在“按鈕1_被單擊”事件子 程序中添加兩個(gè)局部變量。打個(gè)比方,你家的門鎖有兩把鑰匙,分別由兩個(gè)人拿著。不管是哪一個(gè)人都可以打開房門,改變家里家具的擺放位置。如果子過程的參

13、數(shù)具有“參考”屬性,那么,當(dāng)調(diào)用子程序時(shí)負(fù)責(zé)提供該參數(shù) 數(shù)據(jù)的是一個(gè)變量的話,在子程序中修改了該參數(shù) 的值,那個(gè)變量的值也會(huì)跟著被改變。子程序名備注鈕1 被單此變晝1 =到數(shù)值 康輯框1.內(nèi)容值I錦輯框E內(nèi)容1信息框十櫃把編輯框提 供的文本型數(shù)據(jù) 轉(zhuǎn)換到整數(shù)型。把編輯框提供的文本型數(shù)據(jù)轉(zhuǎn)換到整數(shù)型。注意:添加信息框,顯文本型數(shù)據(jù)默認(rèn)具有參考屬性,所以此例中為了演示參數(shù)的參考屬性,把文示調(diào)用子程序后,“變本型數(shù)據(jù)轉(zhuǎn)換到整數(shù)型。量2”的值。*矽廳符+嚴(yán)豊壟的便用方法7鼻變星1 =到數(shù)值 福輻框1.內(nèi)容I變量2 =卿值履輯框2.內(nèi)容1 信息哆矗陵量匚變量R+ 窗&參 殖爾方罠二祂證二啓空 三 到竝?

14、便範(fàn):G改為整數(shù)型。將“信息框子程序”兩 個(gè)參數(shù)的類型添加代 碼,修改“參 數(shù)2”的值。孑程序名返回值類型備注信息框孑程序參數(shù)名類型參若可空數(shù)爼備注整數(shù)型菱數(shù)r整數(shù)型數(shù)2 = 123/口 如果 隆數(shù)3 k參數(shù)2 = 123)廠/ 廠信息框巧沁混信右框躺扈圖標(biāo)$卜信息框夕唸皓誤或明佑輸入O#4昔倶團(tuán)標(biāo),叫背倶”)注意:為了更好地了解程序的運(yùn)行過程,子程序名返回值類型啟田匚被單擊以通過在關(guān)鍵代碼行前設(shè)置斷點(diǎn)的方法來跟蹤代碼行的執(zhí)行情況。站名類型靜態(tài)吏量1整數(shù)型整數(shù)型孌提I =到數(shù)值饋料El F 吏呈r =到逍値編輯H12. F 倍息IB子程序 段星1,瓷鑒 信息框1“彗芳的使用方法口在代碼行前設(shè)置

15、斷點(diǎn)。設(shè)置斷點(diǎn)的方法:置斷點(diǎn)的代碼行,再按子程序名遞回值裘型信息悵子程序類型Hl整數(shù)型參數(shù)2整數(shù)型肆數(shù)2 = 123口如果匿數(shù)1二瑋3卜-信息框嚴(yán)你好?我是営 信息框錯(cuò)誤或沒O按F5鍵運(yùn)行程序,在啟動(dòng)窗口的編 輯框中輸入“123 ”,單擊“按鈕1”。窗口消失,程序停止,一個(gè)斷點(diǎn)變黃。這就說明在“按鈕1被單擊”事件子程序中,第一個(gè)斷點(diǎn)處的“信息框子程序”將被執(zhí)行。養(yǎng)數(shù) = 123廣 “參數(shù)2的值被改變。 k“參數(shù)1”的值是“變量T的值。兩個(gè)條件都成立。再按F5鍵,“信息框子 程序”里的代碼被執(zhí)行。說 明子程序已經(jīng)被調(diào)用。丸如果隧數(shù)1二1Z3且帑嚨=心汀 信息框(你好?我是信息框 卜信息框杯輸入諸

16、誤或沒有輸O再按F5鍵,斷點(diǎn)變?yōu)榧t 色,彈出條件成立的信息框。十息框(“你好f我是信息框,褊息團(tuán)標(biāo),)4/信息框輸入錯(cuò)碳或泯有輸入-,捉昔饃圖標(biāo),叫昔逞單擊“確定”按鈕。信息框子程序戲量1,變量卩+ 信息框亍謗萼的使用方注廠+頑行寤匚飛吏屋云孑丁孕反衣険1廠 J程序又跳到了“信息框子程序”被調(diào)用處的下一行代碼處,說明“信 息框子程序”執(zhí)行完畢。子程序名返回值類型公開1信息框孑程序類型參數(shù)1整數(shù)型參數(shù)2整數(shù)型參考的使用方法.“參數(shù)2 ”沒再按F5鍵,、彈出“按鈕1_ 被單擊”事件子 程序中的信息 框。即使“參數(shù) 2” 的數(shù)據(jù)被改變,“變量 2”仍保存原值。有設(shè)置參考。I由于運(yùn)行開始時(shí)“編 輯框1

17、”內(nèi)的數(shù)據(jù)為空文 本,轉(zhuǎn)換到整數(shù)后為“ 0”。單擊“確定”按鈕,代碼運(yùn)行結(jié)束。關(guān)閉程序,然后設(shè)置“參數(shù)2”的參考屬性,設(shè)置“參數(shù)2”的參考屬性的方法類似可空屬性的設(shè)置, 在參數(shù)定義表“參考” 欄相應(yīng)空格內(nèi)單擊使之出現(xiàn)一個(gè)“V”號(hào)。按F5鍵運(yùn)行。最后信息框顯示“變量2”的值和“參數(shù)2”的值是相同的。當(dāng)使用變量向子程序的參數(shù)傳遞數(shù)據(jù)時(shí),如果所傳遞過來的變量為組、用戶定義數(shù)據(jù)類型、庫定義數(shù)據(jù)類型、字節(jié)集型或文本型,則無論參數(shù)的“參考”屬性是否為真,都將是傳遞變量的指針(即該變量的內(nèi)存地址),這 樣在子程序中改變?cè)搮?shù)的值時(shí)相應(yīng)變量的值也會(huì)被改變;如果所傳遞過來的 變量類型與相應(yīng)參數(shù)的數(shù)據(jù)類型不一致但

18、可以相互轉(zhuǎn)換,譬如將整數(shù)型變量傳 遞到小數(shù)型的參數(shù)時(shí),則在數(shù)據(jù)被實(shí)際傳遞前,系統(tǒng)將首先自動(dòng)將整數(shù)型變量的值轉(zhuǎn)換為小數(shù)型數(shù)據(jù), 然后再進(jìn)行傳遞,在這種情況下,即使參數(shù)的“參考 屬性為真,系統(tǒng)也無法傳遞指向原變量的指針,只能傳遞經(jīng)過類型轉(zhuǎn)換后的變量的值。如果系統(tǒng)將數(shù)據(jù)指針成功地傳遞過來,那么在子程序中對(duì)此參數(shù)內(nèi)容 的更改將會(huì)相應(yīng)地反映到調(diào)用子程序時(shí)負(fù)責(zé)提供相應(yīng)參數(shù)數(shù)據(jù)的變量上。8.7 子程序的返回值 將“信息框子程 序”的返回值類型設(shè) 置為整數(shù)型。 刪除下面兩行代碼。參數(shù)2 = 123信息框(“參考的使用方法?!?+ #換行符 + “變量2=” +至収本(變量2), 0,)變量1 =到數(shù)值饋輯框1

19、.內(nèi)容) /變量2 =到數(shù)值饋輯框2內(nèi)容) 在“按鈕1_被單擊”事件子程序中 添加名稱為“返回值”的整數(shù)型變量?!胺祷刂怠弊兞坑脕肀4妗靶畔?框子程序”返回的整數(shù)型數(shù)值。廠調(diào)用一個(gè)子程序時(shí),子程序中的所有命令將從第一條開始順序執(zhí)行,當(dāng)執(zhí)行到子程序尾部或者遇到“返回”命令時(shí)即返回到調(diào)用此子程序命令的下一條命令處。當(dāng)一個(gè)子程序 有返回值時(shí),如果需要使用該返回值,可以把子程序調(diào)用命令嵌在其它命令中,如“變量仁變量2+子程序名(參數(shù))+變量3”(這里假設(shè)“子程序名(參數(shù))”有返回值),也可以建立一個(gè)與該返回值數(shù)據(jù)類型相同的變量來接收該返回值,即使用“變量名=子程序名(參數(shù))”的形式(“=”在這里是賦值

20、號(hào))。8.8課后練習(xí)(1)練習(xí)子程序的建立與調(diào)用。新建Windows窗口程序”添加一個(gè)按鈕。蔚口程存集若備注番口程仔集1歪回值=孑程序1 o:Q如果捱回值=1 卜值息桓廣是鈕”,口 :h値息框(円否鈕”,U,)O遞回恒二信息班(廠q添加如圖上的代碼。完成后運(yùn)行一下程序看 看。子程序名延回値類型幻f備汪煲鈕1-後單擊喪量名類型備注返回眉子程序塔遞回值類型備注孑程序1類型靜態(tài)數(shù)退返回値整數(shù)里邀回值二握刨 也回0土嵌理回到調(diào)用方的值:o這兩個(gè)地方添加什么值, 才可以使程序運(yùn)行,并且能夠正確顯示呢?請(qǐng)大家來 將這兩個(gè)命令補(bǔ)充完整。(2)練習(xí)編寫用子程序的方式表示兩數(shù)相加,返回和的例程。子程序名返回值類型公開備注和是幾整數(shù)型參數(shù)名類型可空數(shù)組備注數(shù)1整數(shù)型 r數(shù)2整數(shù)型和晅回僂虹+數(shù)門 新建

溫馨提示

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

評(píng)論

0/150

提交評(píng)論