




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章概述1.1VisualBasic語言概述一、VisualBasic的特點1.面向?qū)ο蟮目梢暬O(shè)計平臺2.事件驅(qū)動的編程機(jī)制3.結(jié)構(gòu)化的程序設(shè)計語言VisualBASIC是面向?qū)ο?,結(jié)構(gòu)化的計算機(jī)語言,VB的界面由對象(窗體和控件)組成,每個對象有若干屬性,程序員的任務(wù)就是設(shè)計這些對象和對象的“事件”過程1.2VisualBasic6.0的集成開發(fā)環(huán)境VB的三種工作模式(標(biāo)題欄總顯示當(dāng)前模式)(1)設(shè)計模式:創(chuàng)建應(yīng)用程序的大多數(shù)工作都是在設(shè)計時完成的。在設(shè)計時,可以設(shè)計窗體、繪制控件、編寫代碼并使用“屬性”窗口來設(shè)置或查看屬性設(shè)置值。(2)運行模式:代碼正在運行的時期,用戶可與應(yīng)用程序交流??刹榭创a,但不能改動它。(3)中斷模式:程序在運行的中途被停止執(zhí)行時。在中斷模式下,用戶可查看各變量及不是屬性的當(dāng)前值,從而了解程序執(zhí)行是否正常。還可以修改程序代碼,檢查、調(diào)試、重置、單步執(zhí)行或繼續(xù)執(zhí)行程序。1.3可視化編程的基本概念1.對象對象是現(xiàn)實世界的實體,如人、汽車、電腦等,并且復(fù)雜的對象可以由若干簡單的對象構(gòu)成。圖1編程中的“對象”圖1編程中的“對象”1個“文本框”對象7個“單選框”對象2個“復(fù)選框”對象多個“按鈕”對象2.對象的三要素:屬性、事件和方法(1)屬性:即一個對象所具有的性質(zhì)、特征。(2)事件:發(fā)生在該對象上的事情,發(fā)生在用戶與應(yīng)用程序交互時,如單擊控件、鼠標(biāo)移動、鍵盤按下等。事件過程:當(dāng)在對象上發(fā)生某個事件后,就要處理事件,對事件作出反應(yīng),處理事件的步驟叫做事件過程。(3)方法:對象所具有的動作和行為。在編程中,對象的方法完成某種特定功能,即將一些通用的過程編寫好并封裝起來,作為方法供用戶直接調(diào)用1.4可視化編程的一般步驟VB的對象已經(jīng)被抽象為窗體和控件,所以簡化了應(yīng)用程序設(shè)計,一般需要三個步驟:①創(chuàng)建應(yīng)用程序界面;②設(shè)置屬性;③編寫代碼。第2章窗體與常用控件2.1窗體1.窗體(Form)的屬性①Name:對象(窗體或控件)的名稱⑴對象名必須以字母開頭,不能多于40個字符,可以包含字母、數(shù)字和下劃線,不能包括標(biāo)點符號和空格;⑵對象名不能與其他公共對象重名;②:顯示在窗體標(biāo)題欄中窗體圖標(biāo)后面的文字;⑴Visible:設(shè)置窗體是否可見,取值為True或False;True-可見False-隱藏注意:Visible屬性只有在運行時才生效,設(shè)計時可見。⑵Enabled:確定窗體是否對用戶事件做出反應(yīng);True-響應(yīng)用戶的鼠標(biāo)或鍵盤操作False-不響應(yīng)用戶操作通過程序代碼為對象的屬性賦值賦值語句格式:對象名.屬性名=新的屬性值例如,將窗體對象frmInput的標(biāo)題欄文字改為“你好!Vb”frmInput.Caption=“你好!Vb”2.窗體的方法①調(diào)用對象方法的一般形式:對象名.方法名[參數(shù)](1)Show和Hide(2)Print用于在窗體上輸出指定的內(nèi)容窗體Print方法的語法:對象名.Printstring例如,F(xiàn)orm1.Print“Hello”/在窗體上顯示“Hello”(3)Move用于移動窗體,并可改變其大小。(4)Cls用于清除運行時窗體上所生成的圖形和文字窗體的事件(1)Load√當(dāng)一個窗體被加載到內(nèi)存中準(zhǔn)備顯示時,引發(fā)Load事件√此事件由操作系統(tǒng)發(fā)送;√常常在Load事件過程中進(jìn)行窗體或控件的初始化工作。(2)Click◎鼠標(biāo)單擊事件◎Click事件過程的語法結(jié)構(gòu):PrivateSubForm_Click()程序段EndSub◎注意:窗體對象比較特殊,其事件過程名稱為Form_事件名(),不像其他控件,由對象名_事件名組成。(3)DblClick◎鼠標(biāo)雙擊事件◎事件過程的語法結(jié)構(gòu):PrivateSubForm_DblClick()程序段EndSub◎此事件過程沒有參數(shù)注意:當(dāng)在窗體上雙擊鼠標(biāo)時,首先觸發(fā)的是窗體的Click事件,然后才是DblClick事件。所以如果兩個事件都編寫了程序代碼,則會被依次執(zhí)行。(4)GotFocus、LostFocus◎焦點是接收用戶鼠標(biāo)或鍵盤輸入的能力。◎當(dāng)一個對象處于焦點狀態(tài)時,可接收用戶的輸入◎當(dāng)對象得到焦點時,觸發(fā)GotFocus事件;失去焦點時,觸發(fā)LostFocus事件(5)Resize◎在程序運行時,當(dāng)窗體的大小發(fā)生改變或窗體剛剛顯示時,會引發(fā)此事件(6)Unload◎是從內(nèi)存中清除一個窗體時觸發(fā)的事件2.2常用控件1.標(biāo)簽控件
主要用來顯示或輸出文本信息
常用的屬性:Name,Caption,Alignment,AutoSize,BorderStyleAlignment:設(shè)置文本的對齊方式:0-左對齊(默認(rèn)值),1-右對齊,2-中間對齊AutoSize:其值決定標(biāo)簽控件的大小是否隨所顯示內(nèi)容而自動調(diào)整:True/False(默認(rèn))BorderStyle:決定標(biāo)簽是否有邊框:0-無邊框(默認(rèn)),1-有邊框(固定單線框)2.文本框控件
是一個文本編輯區(qū)域,用來接收用戶輸入的信息
用戶可以在該區(qū)域輸入、編輯、修改和顯示正文內(nèi)容
常用的屬性:Name,Text,Alignment,Enabled,Locked,MaxLength,Multiline,PasswordChar,ScrollBars
Text:文本框中的文本內(nèi)容;
Locked:設(shè)置是否鎖住文本框的Text屬性的內(nèi)容;
MaxLength:設(shè)置文本框輸入的最大字符數(shù);
Multiline:設(shè)置是否可以輸入多行文本;
PasswordChar:此屬性可用來創(chuàng)建“密碼文本框”;
ScrollBars:當(dāng)文本框的MultiLine屬性值為True時,ScrollBars屬性值決定文本框有無水平或垂直滾動條;3.命令按鈕控件
用來接收用戶的操作信息,觸發(fā)相應(yīng)的事件過程;
它是用戶與程序進(jìn)行交互的最直接的手段。
常用的屬性:Name,Caption,Default,Cancel,EnabledDefault:設(shè)置該命令按鈕是否為窗體的默認(rèn)按鈕,即在運行時按回車鍵與單擊該按鈕效果相同,取值為True/False。Cancel:設(shè)置該命令按鈕是否為CancelButton,即在運行時按ESC鍵與單擊該按鈕效果相同,取值為True/False。第三章數(shù)據(jù)類型、常量、變量及表達(dá)式3.1VB的字符集及編碼規(guī)則1.標(biāo)識符的命名規(guī)則(1)VB標(biāo)識符由字母、數(shù)字和下劃線組成,且以字母打頭;(2)長度不得超過255個字符;(3)不能與VB中的關(guān)鍵字同名;(4)在同一個范圍(作用域)內(nèi)必須是唯一的。2.編碼規(guī)則(1)大小寫——VB代碼不區(qū)分字符的大小寫。(2)語句是程序的基本單位,VB中每條語句--enter鍵結(jié)束(3)一行書寫多條語句
一行可以書寫多條語句,各語句之間用冒號“:”分隔(4)續(xù)行
一行書寫不完的語句,可以在該行后加上續(xù)行符(由空格+下劃線組成),然后換行書寫。3.2數(shù)據(jù)類型1.數(shù)值型1)整數(shù)(Integer)
在內(nèi)存中占2個字節(jié)
取值范是-32768(-215)~+32767(215-1)。
VB中用±n[%]來表示整數(shù),其中%為整數(shù)的類型符,2)長整型(Long)
長整型數(shù)占4個字節(jié);
最大值為231-1。
VB中用±n&來表示長整數(shù),其中&為長整數(shù)的類型符。2.字符串型(string)
由若干字符組成的字符序列,專門用來存放文字信息的
在VB中有兩種類型字符串:定長字符串和變長字符串(1)定長字符串:能夠包含字符的個數(shù)是可以指定的一定數(shù)目的字符,它在程序執(zhí)行過程中其長度保持不變,如果所賦予的字符長度不夠,用空格填補(bǔ);如果超出則截去超出部分?!套址兞慷xDim字符串變量名Asstring*長度(2)變長字符串
字符串的長度不確定,它的長度隨著賦予的字符串的長度而變化
字符串變量定義Dim字符串變量名Asstring3.布爾型(Boolean)
也稱為邏輯型,只有兩個值:真(True)和假(False),用2字節(jié)二進(jìn)制數(shù)存儲,經(jīng)常用來表示邏輯判斷的結(jié)果。
布爾型與整型或長整型轉(zhuǎn)換:當(dāng)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為邏輯型數(shù)據(jù)時,0會轉(zhuǎn)換為False,其它非0值轉(zhuǎn)換為True反之,當(dāng)把邏輯型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型時,F(xiàn)alse轉(zhuǎn)換為0,True轉(zhuǎn)換為-1。4.日期型(Date)
任何在字面上可以被認(rèn)作日期的文本都可以賦值給日期變量;日期文字必須用符號“#”括起來。5.變體型(Variant)
Variant數(shù)據(jù)類型是VB對所有未定義的變量的缺省數(shù)據(jù)類型的定義3.3變量和常量1.變量程序運行過程中其值可以改變的量稱為變量,用于存儲程序運行時的臨時數(shù)據(jù)(1)變量的命名規(guī)則遵循標(biāo)識符命名規(guī)則:①以字母開頭,可以包括數(shù)字、字母和下劃線;②不能包含標(biāo)點符號;③不能多于255個字符;④不能與關(guān)鍵字重復(fù);⑤在同一作用域中,變量名不能相互重復(fù)。(2)變量聲明使用變量前,一般應(yīng)先聲明變量名以及變量的類型,以使系統(tǒng)為變量分配內(nèi)存單元。如果沒有聲明,則默認(rèn)為變體型數(shù)據(jù)聲明變量時可以指定變量名、變量的類型以及變量的作用域。◎定義變量的統(tǒng)一語法格式如下:Public|Private|Dim|Static變量名[As類型[*字符串長度]]其中,“Public|Private|Dim|Static”4個關(guān)鍵字指定變量的作用范圍(即作用域);如果省略“As類型”部分,定義的是變體類型變量;當(dāng)定義定長字符串變量時,需要“*字符串長度”部分指定字符串長度。變量的作用域:指變量生效的范圍,即能夠?qū)υ撟兞抠x值又能讀取該變量值的代碼范圍。在VB中,變量有三種作用域:過程級、模塊級和全局級.①過程級變量:又稱為局部變量,作用域是定義它的過程(包括事件過程和通用過程),也就是說它在哪個過程中定義就只能在這個過程中使用。定義過程級變量的語句為:Dim|Static變量名[As數(shù)據(jù)類型名[*字符串長度]]
使用Dim關(guān)鍵字定義的過程級變量,當(dāng)所在過程執(zhí)行完畢,變量就會消失,釋放所占用的內(nèi)存;
使用Static定義的變量,被稱為“靜態(tài)變量”,在程序啟動時即被分配內(nèi)存空間,程序結(jié)束時清除,每次過程執(zhí)行完畢變量的值仍被保留,下一次該過程被執(zhí)行時變量的值仍然可用。②模塊級變量:必須在模塊開始的通用聲明段中定義(位于“代碼”窗口的最頂部,所有過程的前面),語法格式為:Private|Dim變量名[As數(shù)據(jù)類型名[*字符串長度]]其中,關(guān)鍵字Private和Dim是等效的;
作用域是所在的模塊,定義變量的這個模塊中的所有過程都可以訪問該變量;
它在程序啟動時被創(chuàng)建,程序結(jié)束時被清除。③程序級變量:也稱為全局變量或公共變量,指在程序的所有模塊中都可以對其值進(jìn)行存取的變量。
必須在模塊開頭的通用聲明段中定義,語法格式為:Public變量名[As數(shù)據(jù)類型名[*字符串長度]]
在程序啟動時創(chuàng)建,程序結(jié)束時被清除。◎用類型說明符表示變量√將類型說明符放在變量名的尾部,可以表示不同的變量,如%表示整型、&表示長整型、!表示單精度型、#表示雙精度型、@表示貨幣型,$表示字符型?!蜃兞康哪J(rèn)值√一個變量在被定義之后,被首次賦值之前的這一段時間中具有默認(rèn)值。對于不同的數(shù)據(jù)類型,默認(rèn)值不相同?!虜?shù)值型變量的默認(rèn)值為0;√邏輯型變量的默認(rèn)值為False;2.常量常量是指程序運行過程中始終保持不變的常數(shù)、字符串等在程序代碼中,以數(shù)值或字符等形式直接給出的常量。例如:a=3.14Text1.text=“welcome”3.4運算符和表達(dá)式一、運算符◎VB提供了5種類型的運算符:1.算術(shù)運算符
整除運算和取模運算的操作數(shù)一般為整型數(shù),當(dāng)操作數(shù)含有小數(shù)時,先四舍五入取整,然后再進(jìn)行運算;
整除運算的結(jié)果取商的整數(shù)部分;取模運算的結(jié)果取商的余數(shù)部分。2.字符串運算符(1)字符串連接運算符:“&”和“+”(2)字符串比較運算符
按照字符串對應(yīng)字符從左到右逐個進(jìn)行比較;
結(jié)果為真返回True;否則返回False;
英文、數(shù)字和半角符號按ASCII碼的大小進(jìn)行比較,漢字和中文符號按漢字國際碼的順序進(jìn)行比較3.日期時間運算符①兩個日期型數(shù)據(jù)相減,結(jié)果為兩個日期相差的天數(shù),如:#09/29/2012#-#09/20/2012#‘結(jié)果為數(shù)值型數(shù)據(jù):9②日期型數(shù)據(jù)加數(shù)值型數(shù)據(jù),結(jié)果為日期型數(shù)據(jù)(向后推算日期),如:#09/29/2012#+9‘結(jié)果為日期型數(shù)據(jù):#10/08/2012#③日期型數(shù)據(jù)減數(shù)值型數(shù)據(jù),結(jié)果為日期型數(shù)據(jù)(向前推算日期),如:#09/29/2012#-10‘結(jié)果為日期型數(shù)據(jù):#09/19/2012#4.關(guān)系運算符(><>=<==<>)對兩個表達(dá)式的值進(jìn)行比較,結(jié)果為邏輯值,如果關(guān)系成立返回True,否則返回False。在VB中,分別用-1和0表示True和False5.布爾運算符(邏輯運算符)運算符的優(yōu)先級當(dāng)表達(dá)式中存在多種運算符共存時,按如下優(yōu)先級的先后進(jìn)行運算:3.5類型轉(zhuǎn)換3.6常用內(nèi)部函數(shù)◎內(nèi)部函數(shù)是指VB已經(jīng)定義好的函數(shù),供用戶隨時調(diào)用?!騐B的內(nèi)部函數(shù)可以分為五類:√數(shù)學(xué)函數(shù)√字符串函數(shù)√隨機(jī)函數(shù)√轉(zhuǎn)換函數(shù)√日期函數(shù)◎常用數(shù)學(xué)函數(shù):Rnd(N):返回[0,1)的隨機(jī)數(shù)√若要返回指定范圍的隨機(jī)數(shù),使用公式:Rnd*(Int(上界值-下界值+1))+下界值Int(N):返回不大于給定數(shù)的最大整數(shù)Fix(N):返回數(shù)的整數(shù)部分第4章基本控制結(jié)構(gòu)4.1結(jié)構(gòu)化程序設(shè)計概述4.2順序結(jié)構(gòu)1.賦值語句
程序設(shè)計中最基本的語句,它的作用是將指定的值賦給某個變量或?qū)ο蟮哪硞€屬性。
語句格式:名稱=表達(dá)式2.數(shù)據(jù)輸入
程序語言應(yīng)具備的基本功能,指把要加工處理的原始數(shù)據(jù)從某種外部設(shè)備(例如鍵盤)輸入到計算機(jī)中去,以備計算機(jī)處理;
在VB中,數(shù)據(jù)輸入的功能可以用文本框和輸入框(InputBox)完成;
InputBox函數(shù)√作用:在一對話框中顯示提示信息,等待用戶輸入正文或按下按鈕,返回文本框中內(nèi)容,函數(shù)值的類型為String類型?!陶Z法格式:<變量>=InputBox(<信息內(nèi)容>[,<對話框標(biāo)題>][,<默認(rèn)內(nèi)容>])說明:<信息內(nèi)容>:對話框中出現(xiàn)的文本,用來描述“提示信息”;<對話框的標(biāo)題>:設(shè)置對話框的標(biāo)題;<默認(rèn)內(nèi)容>:輸入框中顯示的默認(rèn)文本。例:InputBox("提示信息","標(biāo)題","輸入信息區(qū)域")3.數(shù)據(jù)輸出VB中數(shù)據(jù)輸出的方法有:Print方法、文本框控件、標(biāo)簽控件以及消息框(MsgBox)函數(shù);
消息框(MsgBox函數(shù))MsgBox函數(shù)在對話框中顯示信息,等待用戶單擊按鈕,并返回一個整數(shù)以標(biāo)明用戶單擊了哪個按鈕。語法格式為:MsgBox<消息內(nèi)容>[,<對話框類型>][,<對話框標(biāo)題>]說明:<消息內(nèi)容>為對話框中出現(xiàn)的文本<對話框類型>用來指定對話框中出現(xiàn)的按鈕和圖標(biāo)<對話框標(biāo)題>用來指定對話框的標(biāo)題。Msgbox()返回的值指明了對話框選擇了哪個按鈕4.3選擇結(jié)構(gòu)一、IF語句
IF語句是最常用的選擇結(jié)構(gòu),它是屬于單條件、雙分支的選擇結(jié)構(gòu);
IF語句的傳統(tǒng)流程圖如下:
IF語句的執(zhí)行過程:所給的條件如果為真,則執(zhí)行A1塊;如果條件為假,則執(zhí)行A2塊。
兩種形式:行IF語句和塊IF語句1.單行結(jié)構(gòu)條件語句
語法格式:IF<條件>Then<語句組1>[Else<語句組2>]2.塊結(jié)構(gòu)條件語句有兩種表現(xiàn)形式:一種是單分支,另外一種是雙分支(1)單分支語法格式:If<條件>Then<語句組1>EndIf(2)雙分支結(jié)構(gòu)語法格式:If<條件>Then<語句塊1>Else<語句塊2>EndIf二、SelectCase語句
SelectCase語句用來實現(xiàn)多分支條件選擇結(jié)構(gòu);
多條件選擇結(jié)構(gòu)的特點:從多個選擇條件中選擇第一個條件為真的線路作為執(zhí)行路線。
SelectCase的語法結(jié)構(gòu)形式為:SelectCase<測試表達(dá)式>[Case<表達(dá)式表1><語句塊1>][Case<表達(dá)式表2><語句塊2>]…[CaseElse<語句塊n+1>]EndSelect4.4循環(huán)結(jié)構(gòu)循環(huán)的基本概念
程序設(shè)計中的循環(huán)是指在程序中從某處開始有規(guī)律的反復(fù)執(zhí)行某一操作塊(或程序塊)的現(xiàn)象。
被重復(fù)執(zhí)行的操作塊(或程序塊)稱為循環(huán)體,循環(huán)體的執(zhí)行與否及次數(shù)多少視循環(huán)類型與條件而定。
無論何種類型的循環(huán),共同的特點是:必須確保循環(huán)體的重復(fù)執(zhí)行能被終止(即非無限循環(huán))。
在VB中的循環(huán)結(jié)構(gòu)有:For…nextDo…LoopWhile…Wend一.For…Next語句
For…Next循環(huán)語句一般用于循環(huán)次數(shù)已知的程序中;
語法形式For<循環(huán)變量>=<初值>to<終值>[Step步長] [語句塊1] [ExitFor] [語句塊2]Next[<循環(huán)變量>]
說明:①<循環(huán)變量>為必要參數(shù),用作循環(huán)計數(shù)器的數(shù)值變量;②<初值>to<終值>都是必要參數(shù)。<步長>可以是正數(shù)或負(fù)數(shù)。當(dāng)步長的值為1時,可以省略。③在循環(huán)中的任何位置放置任意個ExitFor語句,隨時退出循環(huán)(本層)For與Next語句中的循環(huán)變量必須是同一變量,Next中的循環(huán)變量可以省去。二.Do…Loop循環(huán)語句用于控制循環(huán)次數(shù)未知,或循環(huán)的初值和終值不明了的循環(huán)。
Do…Loop語句有兩種語法形式:①前測型循環(huán)結(jié)構(gòu)②后測型循環(huán)結(jié)構(gòu)三.循環(huán)的嵌套循環(huán)嵌套的概念:在一個循環(huán)結(jié)構(gòu)中包含另外一個完整的循環(huán)結(jié)構(gòu),就是循環(huán)嵌套。要注意以下事項:(1)內(nèi)循環(huán)變量與外循環(huán)變量不能同名;(2)外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;(3)外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)就要從頭開始執(zhí)行一輪。例4.13打印輸出“九九乘法表”(P105).Fori=1To9Forj=1To9(Forj=1Toi)se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;Nextj思考:打印三角程序如何改動?Picture1.PrintNexti四、常用的算法
算法是對某個問題求解過程的描述1.累加、連乘1~100的5或7的倍數(shù)的和Sum=0Fori=1To100IfiMod5=0OriMod7=0ThenSum=Sum+iEndIfNextiPrintSum3~10的乘積t=1Fori=3To10t=t*iNextiPrintt2.最小、最大值
在若干個數(shù)中求最大值,一般先假設(shè)一個較小的數(shù)為最大值的初值,若無法估計較小的值,則取第一個數(shù)為最大值的初值;然后將每一個數(shù)與最大值比較,若該數(shù)大于最大值,將該數(shù)替換為最大值;依次逐一比較。
例:隨機(jī)產(chǎn)生10個100~200之間的數(shù),求最大值。PrivateSubCommand1_Click()Max=100Fori=1To10x=Int(Rnd*101+100)Printx;Ifx>MaxThenMax=xNextiPrintPrint"最大值=";MaxEndSub第五章數(shù)組5.1數(shù)組的概念一、數(shù)組和數(shù)組元素◎數(shù)組就是一組具有相同類型的有序的數(shù)據(jù),其特點:排列有序;個數(shù)有限;用一個統(tǒng)一的名字◎數(shù)組的命名:命名規(guī)則和簡單變量的命名規(guī)則相同?!驍?shù)組的維數(shù):數(shù)組中下標(biāo)的個數(shù)為數(shù)組的維數(shù),根據(jù)維數(shù)的不同,數(shù)組就分為一維數(shù)組、二維數(shù)組、三維數(shù)組等?!驍?shù)組元素:在同一數(shù)組中,構(gòu)成該數(shù)組的元素;◎每個數(shù)組元素,都可以使用數(shù)組名與下標(biāo)來唯一的確定;5.2靜態(tài)數(shù)組◎數(shù)組的形式√靜態(tài)數(shù)組:數(shù)組元素的個數(shù)固定不變?!虅討B(tài)數(shù)組:數(shù)組元素的個數(shù)在運行時可以改變。靜態(tài)數(shù)組是指在聲明時就已經(jīng)確定了數(shù)組元素個數(shù)的數(shù)組,數(shù)組的類型、維數(shù)和大小將不得改變。一.靜態(tài)數(shù)組的聲明
聲明靜態(tài)數(shù)組的語法格式:Dim數(shù)組名(下標(biāo)1[,下標(biāo)2…])[As類型]說明:①維數(shù):幾個下標(biāo)為幾維數(shù)組,最多60維;②下標(biāo):[下界To]上界省略下界則下界由OptionBase<n>語句控制,默認(rèn)值為0;
OptionBase語句形式:OptionBase<n>√n只能為0或1;√如果沒有使用OptionBase語句,則默認(rèn)下界為0;√如果使用OptionBase1語句,例如:OptionBase1Dimb(2,1To3,1To4)①每一維大小:上界-下界+1;②數(shù)組大小:每一維大小的乘積◎例如Dimb(2,1To3,1To4)等價于Dimb(0to2,1To3,1To4)共有3×3×4個元素◎與數(shù)組操作有關(guān)的幾個函數(shù)1.Array函數(shù)Array函數(shù)可方便地對數(shù)組整體賦值,但它只能給聲明為Variant的變量或僅由括號括起來的動態(tài)數(shù)組賦值。賦值后的數(shù)組大小由賦值的個數(shù)決定。語法格式為:<數(shù)組變量名>=Array(<數(shù)組元素值>)例如:Dima‘聲明一個Variant的變量aa=array(1,2,3,4,5,6,7)b=a(2)2.求數(shù)組的上界Ubound()函數(shù)、下界Lbound()函數(shù)Ubound()函數(shù)和Lbound()函數(shù)分別用來確定數(shù)組某一維的上界和下界值。
使用形式如下:UBound(<數(shù)組名>[,<N>])LBound(<數(shù)組名>[,<N>])其中:√<數(shù)組名>:必選項,表示數(shù)組變量的名稱;√<N> :可選項,一般是整型常量或變量,指定返回哪一維的上界或下界。1表示第一維,2表示第二維,如此等等。如果省略默認(rèn)是1二.數(shù)組的基本操作1.數(shù)組元素的輸入(賦初值)(1)賦值語句(2)在運行時通過InputBox函數(shù)輸入(3)用For循環(huán)(元素較多時)(4)Array函數(shù)2.數(shù)組的輸出(可以使用Print方法、文本框、列表框等)【例】輸出方陣sc中的下三角元素Dimsc(5,5)AsIntegerFori=0To4Forj=0Toi【Forj=iTo4(輸出上三角)】sc(i,j)=i*5+jPrintsc(i,j);"";NextjPrint'換行Nexti1選擇排序法基本思想:假設(shè)對n個數(shù)進(jìn)行排序,首先從n個數(shù)中選出最小的數(shù),然后再從剩余的n-1個數(shù)中選出最小的數(shù),依此類推,進(jìn)行n-1趟選擇后,這n個數(shù)按照升序排列步驟:①首先從數(shù)組a中選出最小的數(shù),與a(1)交換位置;②從a(2)~a(n)中選出最小的數(shù),與a(2)交換位置;③依此類推,直到n個數(shù)從小到大排列。④說明:⑤按照上述步驟,若前面(n-1)個數(shù)的位置已確定,則剩下的最后一個數(shù)的位置也隨之確定。所以共進(jìn)行n-1趟選擇,外循環(huán)i的值為1to(n-1).⑥第1趟選擇選出第1最小數(shù),第2趟選擇選出第2最小數(shù)…依此類推,第i趟選擇選出第i最小數(shù),由于i前面的位置已確定,所以內(nèi)循環(huán)某一i值始終與其后的數(shù)比較,因此j的值為(i+1)ton.⑦對于每一趟選擇,例如第i趟選擇(需選出第i個最小數(shù)),采用a(i)與a(i+1)到a(n)中的每個數(shù)比較大小,小數(shù)始終放在a(i)里。Fori=1Ton-1Forj=i+1TonIfa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNexti◎例5.3由計算機(jī)產(chǎn)生10個0~100之間的隨機(jī)整數(shù),使用選擇法排序,將這些數(shù)按照遞增的順序排列(P118)。【解法一】Fori=1To9Forj=i+1To10Ifa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNexti【解法二】Fori=1To9p=iForj=i+1To10Ifa(j)<a(p)Thenp=jEndIfNextjt=a(i):a(i)=a(p):a(p)=tNexti2、冒泡排序法基本思想(升序):將兩兩相鄰的數(shù)進(jìn)行比較,將較小的調(diào)換到前面,則一輪兩兩比較過后,最大數(shù)“沉”在最后面。步驟:①n個數(shù)存放在a(n)中,第一趟將每相鄰的兩個數(shù)比較,小的調(diào)到前面,經(jīng)過n-1次兩兩比較后,最大數(shù)“沉底”,放在最后的a(n)中;②第二趟對余下的n-1個數(shù)按上述方法比較,經(jīng)n-2次兩相鄰比較后,次大的數(shù)放在a(n-1)中;依此類推,最終得到升序排列數(shù).◎說明:◎按照上述步驟,若后面(n-1)個數(shù)的位置已確定,則剩下的最后一個數(shù)的位置也隨之確定。所以共進(jìn)行n-1趟兩兩比較,外循環(huán)i的值為1to(n-1).◎內(nèi)循環(huán)某一i始終與i+1在比較,由于后面的數(shù)先沉下來,所以內(nèi)循環(huán)i的值為1to(n-i),始終從第一個數(shù)開始比較。Fori=1Ton-1Forj=1Ton-iIfa(j)>a(j+1)Thent=a(j)a(j)=a(j+1)a(j+1)=tEndIfNextjNexti將例5.3使用冒泡法排序,將這些數(shù)按照遞增的順序排列(P119)。Fori=1To9Forj=1To10-iIfa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=tEndIfNextjNexti5.3動態(tài)數(shù)組
動態(tài)數(shù)組指在聲明數(shù)組時未給出數(shù)組的大小(省略括號中的下標(biāo)),當(dāng)要使用它時,隨時用ReDim語句重新指出數(shù)組大小,但不能改變數(shù)組的類型。
動態(tài)數(shù)組的聲明(1)聲明一個空維數(shù)組Dim數(shù)組名()As數(shù)據(jù)類型(2)在過程中用ReDim語句分配實際大小 ReDim數(shù)組名(下標(biāo)1[,下標(biāo)2…])例:PrivateSubForm_Load()DimsArray()AsSingle…ReDimsArray(4,8) …EndSub5.4控件數(shù)組
控件數(shù)組是由一組相同類型的控件組成。它們共用一個控件名,共享同樣的事件過程,建立時系統(tǒng)給每個元素賦一個唯一的索引號(Index),通過返回的索引值(或下標(biāo)值)區(qū)分控件數(shù)組中的各個元素。
控件數(shù)組的建立:1.在設(shè)計時建立控件數(shù)組:首先,在窗體上添加一個新的控件作為控件數(shù)組中的第1個控件,設(shè)置控件的Name屬性值,為控件命名;第二步,使用下面方法之一創(chuàng)建控件數(shù)組:√復(fù)制現(xiàn)有的控件√為控件起相同的名字√指定第一個控件的Index屬性為02.運行時添加控件數(shù)組成員建立的步驟如下:√在窗體上創(chuàng)建某控件,設(shè)置該控件的Index值為0,表示該控件為數(shù)組,這是建立的第一個元素√在編程時通過Load方法添加其余的若干個元素,也可以通過Unload方法刪除某個添加的元素。格式為:Load控件數(shù)組名(Index)Unload控件數(shù)組名(Index)其中,Index為控件數(shù)組元素的下標(biāo)。第6章過程6.1過程概述VB中的三種過程(1)事件過程對象事件在用戶或系統(tǒng)發(fā)出動作時被觸發(fā),響應(yīng)事件時執(zhí)行的過程為事件過程,由VB創(chuàng)建,用戶不能增加或刪除。(2)通用過程必須由其他過程顯式調(diào)用的代碼塊,由用戶自己創(chuàng)建。子過程:不返回值函數(shù)過程:返回一個值(3)屬性過程可以用來返回和設(shè)置屬性的6.2.1事件過程當(dāng)用戶對某一個對象發(fā)生一個動作時,Windows會通知VB產(chǎn)生了一個事件,VB便自動用相應(yīng)事件的名字調(diào)用該事件過程。所以事件過程的名字在對象和代碼之間建立了聯(lián)系。事件過程是依附于窗體和控件上的。1.控件事件過程的語法格式為:PrivateSub<控件名>_<事件名>([形參表])[<語句組>]EndSub2.窗體事件過程的語法格式為:PrivateSubForm_<事件名>([形參表])[<語句組>]EndSub6.2.2子過程◎當(dāng)有幾個不同的事件過程需要執(zhí)行相同的操作時,為了簡化程序,把這些操作寫入一個分離開的子過程(通用過程)中,并由事件過程來調(diào)用它?!蜃舆^程的調(diào)用 Call<子過程名>([<實參表>])或 <子過程名>[實參表]6.3函數(shù)過程
函數(shù)過程的調(diào)用函數(shù)過程的調(diào)用同標(biāo)準(zhǔn)函數(shù)調(diào)用,參與表達(dá)式運算。①直接調(diào)用函數(shù)過程名([參數(shù)列表])例如:printmyreplace(“a”,”d”,”4”)②用call語句調(diào)用,和子過程調(diào)用相同,但是vb將放棄返回值callmyreplace(“a”,”g”,”e”)或myreplace“a”,”g”,”e”③無參函數(shù)的調(diào)用函數(shù)可以沒有參數(shù),調(diào)用無參函數(shù)得到一個固定的值。例如:Functionaa=“abcd”EndFunctionPrinta例利用函數(shù)過程編寫計算圓面積的程序
子過程與函數(shù)過程區(qū)別(1)函數(shù)過程名有值,有類型,在函數(shù)體內(nèi)至少賦值一次;子過程名無值,無類型,在子過程體內(nèi)不能對子過程名賦值;(2)調(diào)用時,子過程調(diào)用是一句獨立的語句。函數(shù)過程不能作為單獨的語句加以調(diào)用,必須參與表達(dá)式運算。
子過程和函數(shù)過程最根本的區(qū)別是:子過程的過程名不能返回值,而函數(shù)過程能夠通過過程名返回值。6.5參數(shù)傳遞1、形參和實參形參是在過程定義中出現(xiàn)的變量名,也就是過程中的參數(shù)列表;實參是調(diào)用過程時傳遞給過程的常量、變量、表達(dá)式或數(shù)組,也就是調(diào)用過程時的參數(shù)列表。2、按值傳遞與按地址傳遞①傳值:形參得到的是實參的值,形參值的改變不會影響實參的值。數(shù)據(jù)的傳遞是單向的!如何實現(xiàn)?調(diào)用語句中的實參是常量或表達(dá)式,如果實參是變量,則在定義過程的形參之前選用ByVal關(guān)鍵字,②傳址:形參得到的是實參的地址,形參和實參使用相同的內(nèi)存單元,當(dāng)形參的值改變時,同時也改變實參的值。數(shù)據(jù)的傳遞是雙向的!如何實現(xiàn)?調(diào)用語句中的實參為變量或數(shù)組時,定義過程的形參之前選用ByRef關(guān)鍵字6.2.2子過程例寫出下列程序的執(zhí)行結(jié)果。PrivateSubCommand1_Click()DimxAsInteger,yAsIntegerx=12:y=20CallValue(x,y)Printx,yEndSubPrivateSubValue(ByValmAsInteger,ByValnAsInteger)m=m*2:n=n-5Printm,nEndSub第7章用戶界面高級編程7.1滾動條控件◎滾動條(ScrollBar):①水平滾動條(HSscrollBars)②垂直滾動條(VSscrollBars)③滾動條常用的屬性:√Name屬性,Left、Top、Width、Height屬性,Enabled、Visible屬性,Value、Max、Min、LargeChange、SmallChange屬性;√Value:用來返回或設(shè)置滾動條的當(dāng)前位置,其返回值始終介于Max和Min屬性值之間,包括這兩個值;√Max、Min:用來返回或設(shè)置滾動條所能代表的最大值和最小值√LargeChange:用來返回或設(shè)置單擊滑塊和滾動箭頭之間的區(qū)域時,滾動條控件Value屬性值的改變量;√SmallChange:用來返回或設(shè)置單擊滾動條箭頭時,滾動條控件Value屬性值的改變量⑴滾動條的常用事件:①Change事件:在程序運行過程中,每當(dāng)滾動條的Value屬性值發(fā)生變化時,就會觸發(fā)Change事件。引起Value屬性值發(fā)生變化的原因有:拖動滾動條的滾動框部分、單擊滾動箭頭、單擊滾動條兩端的空白區(qū)域、在程序中通過代碼改變Value屬性值。②Scroll事件:在拖動滾動條的滾動框的過程中,觸發(fā)Scroll事件。與Scroll事件不同,Change事件是在拖動滾動條的滾動框的動作結(jié)束后被觸發(fā)。7.2框架控件◎框架(Frame)控件是一個左上角有標(biāo)題文
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國抗粉刺浩性劑數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年立式精密注塑機(jī)項目投資價值分析報告
- 2025至2030年3-溴-5-氟苯甲醚項目投資價值分析報告
- 2025年大功率電動車充電器項目可行性研究報告
- 2025年氣動刮雨器項目可行性研究報告
- 土木工程專業(yè)畢業(yè)論文選題
- 2025年房地產(chǎn)租賃市場政策咨詢與培訓(xùn)合同
- 2024-2025學(xué)年高中歷史第五單元改革開放與中華民族的偉大復(fù)興第17課改革開放的新時代教案含解析岳麓版選修1
- 講壇開講儀式領(lǐng)導(dǎo)講話稿(18篇)
- 2025律師個人年度工作總結(jié)(10篇)
- 2025年職業(yè)衛(wèi)生工作計劃
- 做賬實操-農(nóng)貿(mào)市場的賬務(wù)處理示例
- 余華《活著》解讀課件
- 關(guān)于納粹德國元首希特勒的歷史資料課件
- 護(hù)理帶教老師述職報告
- 《中國居民膳食指南》課件
- 銀行柜面業(yè)務(wù)操作流程手冊
- 燒烤配方出售合同范例
- 婦科手術(shù)麻醉
- Unit1RelationshipsLesson2HowDoWeLikeTeachers'Feedback課件高中英語北師大版選擇性
- 庫存管理規(guī)劃
評論
0/150
提交評論