清華大學VB經(jīng)典教案第七節(jié)-過程_第1頁
清華大學VB經(jīng)典教案第七節(jié)-過程_第2頁
清華大學VB經(jīng)典教案第七節(jié)-過程_第3頁
清華大學VB經(jīng)典教案第七節(jié)-過程_第4頁
清華大學VB經(jīng)典教案第七節(jié)-過程_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章過程7.1過程的概念及其形式過程是完成某一特定功能的一段程序,又稱子程序。結構化程序設計的核心思想就是將一個復雜的問題不斷細分成多個結構簡單、功能單一的模塊,每個模塊只完成一個相對獨立的功能,多個模塊組合起來完成復雜的功能,在VisualBasic中,將這種程序模塊稱為過程,一個大的應用程序可以包含多個過程。過程的應用大大提高了代碼的可重用性,簡化了編程,使程序更具有可讀性。過程與過程之間有調用與被調用的關系,一個過程可以調用其他的過程,也可以被其他的過程調用,當一個過程調用其他的過程時,被調用過程執(zhí)行完畢后,返回調用過程的下一條語句繼續(xù)執(zhí)行,如圖7-1所示。在VisualBasic中,過程可以分為兩大類:Sub過程(子過程)和Function過程(函數(shù)過程)。Sub過程和Function過程最基本的區(qū)別是:Sub過程可以沒有返回值,也可以有一個或多個返回值,即Sub過程可以有0~多個返回值;Function過程只有一個返回值。7.2Sub過程Sub過程可以分為:事件過程和通用過程兩類。7.2.1事件過程事件過程指的是當對象的某個事件被觸發(fā)時,去執(zhí)行對應這個事件的一段程序,事件過程是VisualBasic應用程序的主體。1.事件過程名事件過程依附于窗體或控件,依附于窗體的事件過程名由Form、短下劃線“_”和事件名三個部分組成;依附于控件的事件過程名由控件名(控件的Name屬性值)、短下劃線“_”和事件名三個部分組成。2.事件過程的格式依附于窗體或控件的事件過程的一般格式如下:

PrivateSubForm|控件名_事件名([<形參表>]) <語句組> EndSub注意:(1)事件過程的開始和結束語句,最好由系統(tǒng)用事件過程模板自動生成;(2)由于控件的事件過程名與控件名緊密相關,因此,如果生成了事件過程以后,再改變控件名,則控件的事件過程名中的控件名不會自動更改。7.2.2通用過程及其定義通用過程又稱為用戶自定義的Sub過程,一般用于完成一個通用功能,通用過程不依賴于任何對象。通用過程的定義格式如下:

[Private|Public|Static]Sub<通用過程名>([<形參表>]) <語句組> [ExitSub] <語句組> EndSub說明:(1)Sub前的關鍵字Private、Public決定了通用過程的作用域;Static決定了過程中過程級變量的生存期(所有的過程級變量都是靜態(tài)變量,前面章節(jié)已經(jīng)介紹);(2)通用過程名應滿足標識符的命名規(guī)則,而且,在同一個模塊中過程名要惟一;(3)當通用過程有多個形式參數(shù)時,相互之間用逗號分隔;(4)在通用過程中不能再定義過程,但可以調用其他的過程。創(chuàng)建通用過程的方法有如下兩種:(1)直接在代碼窗口中輸入,只要輸入通用過程的開始,按下回車鍵后,通用過程的結束語句EndSub會自動產生;(2)執(zhí)行“工具”菜單下的“添加過程”命令,打開“添加過程”對話框,如圖7-2所示,輸入名稱,選擇“類型”和“范圍”,單擊“確定”按鈕即可。

7.2.3Sub過程的調用調用Sub過程的方法有兩種: (1)Call<過程名>([實參表]) (2)<過程名>[實參表]說明:(1)實參表是實際參數(shù)列表,當過程有多個實際參數(shù)時,相互之間用逗號分隔;(2)用第一種方法調用Sub過程時,實參表必須用圓括號括起來;用第二種方法調用Sub過程時,實參表不能用圓括號括起來,但過程名與實參表之間要加一個空格。【例7-1】編寫一個求n!的通用過程,在由四個命令按鈕組成的控件數(shù)組中分別計算4!、6!、8!以及1~10的階乘和并輸出,如圖7-3所示?!纠?-2】編寫一個求三個數(shù)的最大值和最小值的通用過程,在命令按鈕的Click事件過程中,任意輸入三個數(shù)調用該通用過程求它們的最大值和最小值并輸出,如圖7-4所示。7.3滾動條控件滾動條通常用于附加在窗口上幫助觀察數(shù)據(jù)或確定位置,也可以作為數(shù)據(jù)輸入的工具或者數(shù)量、進度的指示器。滾動條控件有兩種:水平滾動條和垂直滾動條。兩種滾動條的結構和操作完全一樣。1.滾動條的常用屬性(1)Value屬性設置或返回滾動條滑塊的當前位置值。(2)Max屬性滾動條能表示的最大值,范圍為-32768~32767。當滑塊位于水平滾動條的最右端或垂直滾動條的最下端時,Value屬性所取的值。(3)Min屬性滾動條能表示的最小值,范圍為-32768~32767。當滑塊位于水平滾動條的最左端或垂直滾動條的最上端時,Value屬性所取的值。(4)LargeValue屬性當用鼠標單擊滾動框的空白處,或滾動條獲得焦點時按下PageUp或PageDown鍵時,Value屬性值的改變量。(5)SmallValue屬性當用鼠標單擊滾動條兩端的箭頭,或滾動條獲得焦點時按下箭頭鍵←、↑或→、↓鍵時,Value屬性值的改變量。2.滾動條的常用事件(1)Change事件當移動滑塊或在代碼中改變Value屬性值時觸發(fā)滾動條的Change事件。(2)Scroll事件當拖動滑塊時觸發(fā)滾動條的Scroll事件。

【例7-3】設計一個調色板。7.4Function過程在VisualBasic中,提供了大量的內部函數(shù),用戶編寫程序時可以直接調用內部函數(shù),為了完成特定的功能,用戶也可以編寫自己的函數(shù),F(xiàn)unction過程就是用戶自定義的函數(shù)過程。Function過程的調用與內部函數(shù)的調用完全相同。7.4.1Function過程的定義Function過程的定義格式如下:[Private|Public|Static]Function<函數(shù)過程名>([<形參表>])[As<數(shù)據(jù)類型>] <語句組> [ExitFunction] <語句組> [<函數(shù)過程名>=<表達式>]EndFunction說明:Function前的三個關鍵字的含義以及對函數(shù)過程名、形參和函數(shù)過程的要求與通用過程相同。Function過程的創(chuàng)建方法與通用過程的創(chuàng)建方法一樣也有兩種方法。需要強調的是:Function過程的返回值在函數(shù)過程中一定要賦給函數(shù)過程名。7.4.2Function過程的調用Function過程的一般調用格式為:

<函數(shù)名>[(<實參表>)]其中,實參表可以是一個或多個參數(shù),參數(shù)可以是常量、變量或表達式,如有多個參數(shù),參數(shù)之間用逗號分隔,如果函數(shù)沒有參數(shù),調用時可以省略圓括號。Function過程在程序代碼中的具體調用形式主要有四種(前面章節(jié)已經(jīng)介紹)?!纠?-4】將例7-1中的求n!的通用過程改成Function過程實現(xiàn)同樣的功能。【例7-5】輸入一個正整數(shù)n的值,計算s=1*(1+2)*(1+2+3)*…*(1+2+3+…+n)的值,要求先編寫求1+2+3+…+k的Function過程,然后調用這個Function過程求前n項的乘積,如圖7-6所示。【例7-6】編寫一個判斷正整數(shù)n是否是素數(shù)的Function過程,調用這個過程求100~1000之間所有的孿生素數(shù)并輸出,如圖7-7所示。孿生素數(shù)是指兩個素數(shù)的差值為2的素數(shù),如:101和103就是孿生素數(shù)?!纠?-7】編寫用輾轉相除法求兩個正整數(shù)的最大公約數(shù)的Function過程,調用這個Function過程求四個正整數(shù)的最大公約數(shù)并輸出,如圖7-8所示。7.5過程參數(shù)7.5.1形式參數(shù)與實際參數(shù)在VisualBasic中,調用過程時,使用參數(shù)傳遞的方式實現(xiàn)調用過程與被調用過程之間的數(shù)據(jù)傳遞,即將調用過程中的實際參數(shù)傳給被調用過程對應的形式參數(shù)。形式參數(shù)簡稱形參,是在定義Sub過程或Function過程時,出現(xiàn)在圓括號中的變量名或數(shù)組名,其作用是接受調用程序傳來的數(shù)據(jù);實際參數(shù)簡稱實參,是在調用Sub過程或Function過程時,傳遞給Sub過程或Function過程的常量、變量、表達式或數(shù)組。需要強調的是:(1)在定義Sub過程或Function過程時,在圓括號中定義的形參表,即變量名或數(shù)組名(),只需要在過程的圓括號中寫成:變量名|數(shù)組名()As數(shù)據(jù)類型;(2)形參表與實參表中對應位置的形參名和實參名可以相同也可以不同,VisualBasic都認為不同;(3)在傳遞參數(shù)時,一般情況下,要求形參表與實參表中參數(shù)的個數(shù)、數(shù)據(jù)類型和位置順序都必須一一對應,除非在形參的前面加上關鍵字Optional或ParamArray;(4)當數(shù)組作為過程的形參和實參時,必須寫成數(shù)組名和空的圓括號“()”;(5)實參如果是變量也必須定義,而且數(shù)據(jù)類型與對應的形參要相同;(6)不能用定長字符串變量或定長字符串數(shù)組作為形參,但可以用定長字符串變量作為實參。過程形參的格式如下:[ByVal|ByRef|Optional|ParamArray]<變量名>|<數(shù)組名()>[As<數(shù)據(jù)類型>]7.5.2按地址傳遞與按值傳遞參數(shù)在過程形參的前面加上關鍵字ByRef或省略關鍵字,表示按地址或者按引用傳遞參數(shù),簡稱傳地址,默認的過程參數(shù)傳遞方式是傳地址;在過程形參的前面加上關鍵字ByVal,表示按值傳遞參數(shù),簡稱傳值。1.傳控地址傳地味址指復的是屯用實采參去萄代替逆或者待替換掙對應唐的形蘆參,事由實癥參本匙身參雖與過頁程的尚計算染,因幟此,技在過鋸程中峰如果幣改變揭了形浪參的游值,歉實際專上就帥改變飲了對氏應的帝實參爭的值買?!纠?-優(yōu)8】傳地翠址調憂用過放程。音輸入況兩個鳳正整殲數(shù),妄調用織例7-西7中用惡輾轉姐相除京法求秩兩個蘭正整匹數(shù)的嫁最大宜公約置數(shù)的Fu尼nc糾ti乖on過程謝,求陜它們必的最衰大公位約數(shù)已并輸不出,機如圖7-縮慧9所示吃?!纠?-黃9】傳值南調用禽過程邪。將煉例7-狡7中用撥輾轉電相除峽法求押兩個炊正整盈數(shù)的辯最大棟公約會數(shù)的Fu朋nc錄ti孕on過程捉的形侄參m、n前分塑別加沉上關況鍵字By龜Va炒l,或傾者調在用這染個Fu魚nc賴ti縣on過程妥時給站實參a、b加上淺圓括件號,殃輸入疤兩個鹿正整哭數(shù),景求它遮們的菌最大壺公約槐數(shù)并觸輸出蒜,如授圖7-扣10所示右。2.傳底值傳值族指的香是將就實參葛的值駕復制筒給對制應的棗形參腦,實盒參本蒙身不財參與把過程督的計仿算,舉而由百形參匆參與度過程元的計淘算,漠因此勵,在環(huán)過程呆中即鑒使改蔽變了拘形參烤的值取,實截參的享值不勾變。如果強定義紛過程小時采葛用的汗是默寬認方鳥式傳疊地址綿,調往用過陽程時沫只要聲將實暑參用鴨圓括糾號括牲起來法,也景可以滋變成晉傳值形。7.蜜5.牌3可選汪參數(shù)性及其候默認護值在過大程形嗓參的戰(zhàn)前面孩加上聰關鍵純字Op登ti亮on阻al表示什可選殿的參侍數(shù),幟調用家該過森程時晚,可某以提吧供或伙不提析供(穴省略燭)與字此形舞參相問對應智的實匪參,約但在象過程日中需盒要用撞函數(shù)Is訪Mi恩ss結in票g(<形參班名>)來處巡壽理。農當在菠過程補的某緊個形恨參前咸加上覺關鍵桑字Op雙ti掩on豎al后,兆其后命所有孔的形雖參都擱成為浩可選艙的參輸數(shù),瘋因此偽,可冒選的悲參數(shù)罵一般傍放在諸形參疾表的旁后面嘗,而緒且數(shù)井據(jù)類仿型為Va欄ri炭an曉t(默感認數(shù)瓶據(jù)類飾型)武?!纠?-大10屢】編寫言一個Fu賀nc邀ti米on過程受,調光用該食過程辱計算骨兩個碑數(shù)的東和、蘿三個騙數(shù)的老和、該四個圣數(shù)的俊和并舉輸出華,如怠圖7-掠11所示死。加上蘇關鍵遵字Op焦ti燒on么al的可吹選參邊數(shù),淘還可按以設箭置默箱認值敞(缺高省值衛(wèi)),翼當一抹個可餅選的襯形參熄設置船了默梳認值睜后,愿調用允過程分時如詠果為和該形奸參傳缺遞實鑰參則緩接受山實參監(jiān)的值困,否汪則,舅將使鎮(zhèn)用默紀認值向?!纠?-婦11土】將例7-碼10中Fu錢nc塘ti掀on過程泊的形魚參c、d的默曾認值盯設為0,調灑用該寸過程極計算望兩個躺數(shù)的丙和、目三個凳數(shù)的攝和、凝四個傍數(shù)的鐵和并富輸出乓。7.功5.談4可變蝦參數(shù)在過林程形耗參的堵前面解加上希關鍵揚字Pa潛ra略mA途rr網(wǎng)ay可以究傳遞塘任意伐個數(shù)惕的參都數(shù),盾但其糟后的仙形參珠必須綿是Va妻ri奧an盟t類型拘(默丙認數(shù)頌據(jù)類仰型)邊的數(shù)位組,爐而且騾只能華用于見形參患表的光最后郵一個法參數(shù)匠,Pa塘ra年mA態(tài)rr攜ay不能術與By訂Va絨l、By狀Re群f或Op吼ti兔on此al關鍵削字一本起使凳用?!纠?-耗12篇】將例7-封10中Fu氏nc縮慧ti狗on過程丙的形憲參設筒為可殺變參鎮(zhèn)數(shù),恐調用雖該過脈程計其算兩隔個數(shù)赴的和和、三撲個數(shù)殿的和帳、四利個數(shù)沃的和央并輸蜂出。7.封5.貿5數(shù)組凝參數(shù)在通盼用過例程或事函數(shù)捉過程差中,浪可以插將數(shù)芝組或漠數(shù)組進元素延作為抵參數(shù)逢進行披傳遞冊,當啊傳遞址整個餐數(shù)組題,即牌將數(shù)墓組作乖為過銹程的裹形參晶和實賭參時寺,必正須寫表成數(shù)南組名卻和空猾的圓片括號榮“()診”的形蟻式;劃數(shù)組吉參數(shù)賀只能貫按地沙址傳約遞,牢不能安按值惜傳遞侵,即琴不能甜在數(shù)好組形鞏參前恭加關甚鍵字By桶Va過l?!纠?-旬13囑】數(shù)組休作為椅過程肺的參害數(shù)。分別暖定義診有10個、15個、20個元蹲素的竊三個永一維佩數(shù)組萍,并液給這只三個研數(shù)組帶的元而素賦聾隨機局的兩姨位正造整數(shù)特并輸泄出,膜編寫廊一個磁用比驕較排柏序法扎按從蜘大到施小的匯順序巷排列針數(shù)組緊元素鬧的Su迅b過程吹,調畜用該告過程街分別番對這肯三個躬數(shù)組掠排序科并輸?shù)A出,贏如圖7-形12所示當。7.學5.辯6對象拜參數(shù)在Vi盼su曠al去B假as磨ic中,塞既可衛(wèi)以用睛變量販或數(shù)厘組作的為過父程的干參數(shù)悄,也戶可以鮮用對奸象,弦即窗煙體或箱控件導作為苦過程宅的參鞭數(shù)。間對象侵參數(shù)哥只能蝴按地川址傳談遞,巡壽不能君按值止傳遞無,即君不能紡在對跌象形洋參前殊加關芒鍵字By何Va次l。1.使顆用窗暮體參踏數(shù)使用閱窗體半作為砍過程于的參飄數(shù)時口,形參鐮的數(shù)壓據(jù)類和型為Fo押rm,實爪參為球窗體學名?!纠?-今14飛】窗體排作為四過程齊的參施數(shù)。新建劇一個瓜工程辰,再看添加2個窗裁體Fo留rm既2、Fo越rm液3;在Fo夫rm芽1中畫1個計顛時器上控件Ti旋me諷r1,設齒置其In晌te田rv華al屬性享值為10屯00,在Fo恢rm千1中編豪寫一泉個使殃用窗貢體作秀為參劉數(shù)的菜過程聾,該靈過程縱可以然隨機進改變姐窗體顏在屏件幕上葉的位芹置和街背景輪顏色牽,編符寫程盲序,貪在Ti唐me所r1的Ti農me友r事件爐過程攤中調憂用這腫個過枕程,綱每隔1秒變妄換一茅個窗谷體的覆位置陜和背祥景顏朵色?!纠?-潑15預】控件晌作為鈔過程皮的參速數(shù)。在窗搭體上濫畫1個圖浸片框Pi菌ct惱ur糟e1、1個圖嘴像控枯件Im平ag壇e1、1個命提令按們鈕Co蛙mm稼an骨d1,設廈置Co標mm洗an似d1的St駕yl菜e屬性周值為1-攤Gr瘦ap伴hi晝ca遇l,分授別設獅置這厲三個嫩控件奮的Pi鵲ct項ur避e屬性前;再病畫1個計病時器艘控件Ti帖me膠r1,設晝置其In富te船rv炸al屬性攀值為50候0,編妹寫一屠個使劫用控享件作頭為參心數(shù)的邀過程華,該喬過程毒可以調隨機危改變鉗控件讀在窗抓體上毅的位響置,只編寫飲程序笑,在Ti并me案r1的Ti得me諸r事件紗過程痛中調炮用這逝個過臭程,污每隔50獻0毫秒按改變旋一個孤控件皮的位刃置,袖如圖7-輕13所示羞。2.使縮慧用控抬件參忌數(shù)使用商控件毫作為爹過程點的參蜘數(shù)時扮,形參售的數(shù)坐據(jù)類薄型為Co貴nt飽ro孔l,實弊參為辣控件蜂名。7.查6過程帳的遞樓歸調天用一個旺過程百直接殖或間筋接地濤調用趣過程貧本身究稱為以過程樣的遞浩歸調務用。凱過程鬧的遞朱歸可嫌以設臥計出胖結構稼清晰唐的程終序,拍但遞喉歸次突數(shù)的兄增加膽會占臣用較臘多的磁內存墾空間恢,程管序執(zhí)絮行的沃效率企不高遞。設計州遞歸滴過程恐時,讓需要王考慮兩個觀要素:(1)遞仇歸終爭止條留件;候(2)遞障歸函赴數(shù),沙即具說有能脈趨向眨遞歸柔終止墨條件染的遞太歸表元示形壯式。祥一個歪遞歸們過程竟只有梢具備襪了這勵兩個據(jù)要素油,才今能在脆有限爬次計馬算后膀得出借結果觀?!纠?-捏16沖】將求n!的Fu針nc伸ti襯on過程接寫成汗遞歸觸形式柳,在勉文本睬框中圍輸入敗一個市正整降數(shù),季按回糖車鍵哄調用雁這個Fu補nc均ti悲on過程錦計算療其階熊乘,網(wǎng)如圖7-有14所示朱。n!的遞彈歸形兆式及其其遞招歸函鐘數(shù)表辣示如鞋下:n=繳0n>檔0n=酸0n>郊0遞歸猾過程淡與非假遞歸搜過程蛋的區(qū)別:遞偉歸過吹程采包用選哥擇結分構反祖復不思斷地嗚調用繁過程巾本身糾而得片出計由算結故果;訪非遞浪歸過憶程采蜜用循遭環(huán)結酬構不販斷地勇循環(huán)昨而得軋出計殲算結包果。7.帝7過程尖的作債用域過程訴的作廉用域梁指的咱是過唇程在噴哪些元范圍驚內有銅效,蜓具體射地說棉就是董在哪購些代卡碼中堆有效狐。過成程根缸據(jù)使括用的匯關鍵作字不擠同,哈有不鈴同的徑作用鵝域或石有效鴨范圍潑,根估據(jù)過縣程的克作用及域從除小到途大可伴以分促為兩桿類:(1)模芝塊級猶過程口:在壺過程諒的關煉鍵字Su肝b或Fu坐nc舅ti要on前加百關

溫馨提示

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

評論

0/150

提交評論