VB的程序設(shè)計基礎(chǔ)_第1頁
VB的程序設(shè)計基礎(chǔ)_第2頁
VB的程序設(shè)計基礎(chǔ)_第3頁
VB的程序設(shè)計基礎(chǔ)_第4頁
VB的程序設(shè)計基礎(chǔ)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三章VB的程序設(shè)計基礎(chǔ)日期:2005-09-09來源: 作者:字體:大中小2.1 VB編碼規(guī)則.語言元素VB的語言基礎(chǔ)是BASIC語言,VB程序的語言元素主要由:關(guān)鍵字(如: Dim、Print、Cls)函數(shù)(如:Sin()、Cos()Sqr()表達式(如:Abs(-23.5)+45*20/3)語句(如:X=X+5 、 IFELSEEND IF)等組成。. VB代碼書寫規(guī)則(1)程序中不區(qū)分字母的大小寫,Ab與AB等效;(2)系統(tǒng)對用戶程序代碼進行自動轉(zhuǎn)換:對于VB中的關(guān)鍵字,首字母被轉(zhuǎn)換成大寫,其余轉(zhuǎn)換成小寫若關(guān)鍵字由多個英文單詞組成,則將每個單詞的首字母轉(zhuǎn)換成大寫對于用戶定義的變量、過程

2、名,以第一次定義的為準,以后輸入的自動轉(zhuǎn) 換成首次定義的形式.語句書寫規(guī)則(1)在同一行上可以書寫多行語句,語句間用冒號(:)分隔(2)單行語句可以分多行書寫,在本行后加續(xù)行符:空格和下劃線(3) 一行允許多達255個字符.程序的注釋方式(1)整行注釋一般以Rem開頭,也可以用撇號;(2)用撇號引導的注釋,既可以是整行的,也可以直接放在語句的后面,最方便;(3)可以利用“編輯”工具欄的“設(shè)置注釋塊”、“解除注釋塊”來將設(shè)置多行注 釋。.保留行號和標號VB源程序接受行號與標號,但不是必須的(早期的BASIC語言中必須用行號)。 標號是以字母開始以冒號結(jié)束的字符串,一般用在GOTO語句(現(xiàn)在很少用

3、)中。2.2 VB的語言基礎(chǔ)1.數(shù)據(jù)類型VB的標準數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字類型符前綴存儲 空間范圍數(shù) 值 數(shù) 據(jù) 類 型字 節(jié) 型ByteByt1個字節(jié)0 到 255整 型Integer%Int2個 字節(jié)-32,768 到 32,767長 整型Long&Lng4個字節(jié)-2,147,483,648 到2,147,483,647單 精 度 型Single!Sng4個字節(jié)負數(shù):-3.402823E38 到-1.401298E-45 ;正數(shù):1.401298E-45至 U3.402823E38雙 精 度 型Double#Dbl8個 字節(jié)負數(shù):-1.79769313486232E3084.94065645

4、841247E-324;正數(shù):4.94065645841247E-3241.79769313486232E308貨 幣 型Curren cyCur8個 字節(jié)從-922,337,203,685,477.5808至U922,337,203,685,477.5807邏輯型Boolea nBln2個字節(jié)True 或 False日期型DateDtm8個 字節(jié)100年1月1日至U 9999 年12月31日對象型ObjectObj4個字節(jié)任何Object引用變長字符 型String$Str10字節(jié) 加字 符串 長度0到大約20億定長字符 型String$Str字符 串長1到大約65,400度變體數(shù)字 型Va

5、riantVnt16個字 節(jié)任何數(shù)字值,最大可達Double 的范圍變體字符 型VariantVnt22個字 節(jié)加 字符 串長 度與變長String 有相同的范圍注意:) VB中對沒有聲明的變量其缺省的數(shù)據(jù)類型是變體型,可以用來存儲各種數(shù)據(jù), 但所占用的內(nèi)存比其它類型都多。為提高運行效率(整型效率較高),或達到一定的運算 精確度(浮點型精度較高,但運行較慢),應合理的定義數(shù)據(jù)類型。邏輯型數(shù)據(jù)只有True 和False兩個值,轉(zhuǎn)換成整型時,True=-1 , False=0 , 將其它類型轉(zhuǎn)換成邏輯型時,非0數(shù)轉(zhuǎn)換為True ,0轉(zhuǎn)換為False。字符型可以包括所有的西文字符和漢字,字符必須用雙

6、引號括“起來,如: abc123日期型數(shù)據(jù)按8字節(jié)的浮點數(shù)來存儲,日期型數(shù)表示方式有兩種:可以用號碼 符#括起來,也可以用數(shù)字序列表示(小數(shù)點左邊的數(shù)字代表日期,右邊代表時間,0 為午夜,0。5為中午12點,負數(shù)表示是1899年12月31日前的日期和時間)。如:#3/22/2002#2002-3-2214:30:20#Dim T As DateT=-2.5Print T 打印出來的結(jié)果是 1899-12-2812 : 00 : 005 )任何數(shù)據(jù)類型的數(shù)組都需要20個字節(jié)的內(nèi)存空間,加上每一數(shù)組維數(shù)占4 個字節(jié),再加上數(shù)據(jù)本身所占用的空間。數(shù)據(jù)所占用的內(nèi)存空間可以用數(shù)據(jù)元數(shù)目乘上 每個元素的大

7、小加以計算。例如,以4個2字節(jié)之Integer數(shù)據(jù)元所組成的一維數(shù) 組中的數(shù)據(jù),占8個字節(jié)。這8個字節(jié)加上額外的24個字節(jié),使得這個數(shù)組所需 總內(nèi)存空間為32個字節(jié)。2.變量與常量(1)變量或常量的命名規(guī)則)必須以字母或漢字開頭,由字母、漢字、數(shù)字或下劃線組成,長度W 255個 字符;2)不能使用VB中的關(guān)鍵字,并盡量不與VB中標準函數(shù)名同名;如:Dim 、S in3) VB中不區(qū)分變量的大小寫,一般變量首字母用大寫,其余用小寫;常量全部 用大寫字母表示4)為了增加程序的可讀性,可在變量名前加一個縮寫的前綴來表明該變量的數(shù) 據(jù)類型。(2 )變量聲明1 )用Dim語句進行顯式聲明語句形式: Di

8、m 變量名As類型 如: Dim intX As integer說明:如果沒有As類型,則默認為變體類型??稍谧兞棵蠹宇愋头麃泶鍭s類型如:Dim intX%一條語句可以同時定義多個變量,但每個變量必須有自己的類型聲明, 類型聲明不能共用;字符串變量根據(jù)其存放的長度是否固定,定義方法不同:定長字符串: Dim strA As String* 10表示最多存放10個字符,如果賦值不足10個,則右補空;若多于1 0個,則多余部分截去。不定長字符串:Dim strA As String 最多可存放2MB個字符2) 隱式聲明VB中允許變量不經(jīng)過聲明就直接使用,這種稱為隱式聲明,所有隱式聲明的變量

9、都是變體型的。隱式聲明容易造成錯誤,為了調(diào)試程序方便,一般對使用的變量都進行聲明,可以 在通用聲明段使用Option Explicit 語句來強制顯式聲明所有變量。(3)常量1)直接常量指在程序中直接給出值的數(shù)據(jù),如:123、123& 、123.45、1.234E2、123D3分別表示整型、長整型、單精度浮點型(小數(shù)形式)、單精度浮點型(指數(shù) 形式)、雙精度浮點型。八進制常數(shù):在數(shù)值前加&O ,如 &O123十六進制常數(shù):在數(shù)值前加&H ,如&H1232)用戶聲明的符號常量用Const來聲明: Const 符號常量名As類型=表達式如:Const PI=3.14159聲明了常量PI,代表3.1

10、4159,單精度型Const MAX As Integer=&O144 , 聲明 了常量 MAX,代表八進制 數(shù)144,整型Const COUNT#=45.67,聲明 了常量 COUNT,代表 45.67,雙精度型3)系統(tǒng)提供的常量系統(tǒng)定義的常量位于對象庫中,在對象瀏覽器中的Visual Basic ( VB)和Vi sual Basic for Aplication ( VBA)等對象庫中列出了 VB的常量。這些常量可以與應 用程序的對象、方法、屬性一起使用。如:Form1.WindowsState=vbMaximized 表示將 窗口極大化。3.運算符(1) 算術(shù)運算符運算符含義優(yōu)先級示例

11、結(jié)果A乘方11aA29-負號2-iA-3*乘3IA* iA* iA27/除310/iA3.33333333333333整除410iA3Mod取模510 Mod iA1+加610+iA13-減7IA-10-7說明:設(shè)表中的變量iA=3,為整型。算術(shù)運算符兩邊的操作數(shù)應該是數(shù)值型,若是數(shù)字字符或邏輯型,則自動轉(zhuǎn)換為數(shù) 值類型后再運算。(2) 字符串運算符運算符作 用區(qū)別示例結(jié)果連接符兩123&5512355&將 兩 個 字 符 串 拼 接 起 來旁的 操作 數(shù)不 管是 字符 型還 是數(shù) 值型, 系統(tǒng) 先將 操作 數(shù)轉(zhuǎn) 換成字 符, 然后 再連 接。abc+12abc12連接符兩123+55178+

12、旁的 操作 數(shù)均 為字 符abc+12出錯運算符含義示例結(jié)果=等于ABCDE=ABRFalse大于ABCDEABRFalse=大于等于bc=大小”False小于233False=小于等于23=3True不等于abcABCTrueLike字符串匹 酉己ABCDEFG Like*DE*TrueIs對象引用 比較注意:如果兩個操作數(shù)都是數(shù)值型,則按其大小比較如果兩個操作數(shù)都是字符型,則按字符的ASCII碼值從左到右一一比較漢字字符大于西文字符關(guān)系運算符的優(yōu)先級相同VB6.0中Like運算符與通配符的使用:?表示任何單一字符*表示0個或多個字符#表示任何一個數(shù)字(0 - 9)字符列表表示字符列表中的任

13、何單一字符!字符列表表示不在字符列表中的任何單一字符(4)邏輯運算符運 算 符含義優(yōu) 先 級說明示例結(jié)果Not取1當操作數(shù)為假時,Not FT反結(jié)果為真Not TFTAndTTFAndAnd與2兩個操作數(shù)均為FF真時,結(jié)果才為真TAndFFFFAndTTOr TT兩個操作數(shù)中有FOr FFOr或3一個為真時,結(jié)果為真TOr FTFOr TTXor異或3兩個操作數(shù)不相 同,結(jié)果才為真, 否則為假T Xor FT Xor TTFEqv等價4兩個操作數(shù)相同 時,結(jié)果才為真T Eqv FT Eqv TFTImp蘊含5第一個操作數(shù)為 真,第二個操作數(shù) 為假時,結(jié)果才為 假,其余都為真T Imp FT I

14、mp TFT說明:1 )若有多個條件時,And必須全部條件為真才為真;Or只要有一個條件為真就 為真。2)如果邏輯運算符對數(shù)值進行運算,則以數(shù)字的二進制值逐位進行邏輯運算。 And運算常用于屏蔽某些位;Or運算常用于把某些位置1。如:12 And 7 表示對1100與0111進行And運算,得到二進制值100,結(jié) 果為十進制4。3)對一個數(shù)連續(xù)進行兩次Xor操作,可恢復原值。在動畫設(shè)計中,用Xor可恢 復原來的背景。4.表達式(1)表達式的組成表達式由常量、變量、運算符、函數(shù)和圓括號按一定的規(guī)則組成,通過運算后 有一個結(jié)果,運算結(jié)果的類型由數(shù)據(jù)和運算符共同決定。(2)表達式的書寫規(guī)則1)乘號不

15、能省略2)括號必須成對出現(xiàn),均使用圓括號,可以嵌套,但必須配對。3)表達式從左到右在同一基準上書寫,無高低、大小之分。例:sqr(3*x+y)-z)/(x*y)A4(3)不同數(shù)據(jù)類型的轉(zhuǎn)換操作數(shù)的數(shù)據(jù)類型應該符合要求,不同的數(shù)據(jù)應該轉(zhuǎn)換成同一類型。在算術(shù)運 算中,如果操作數(shù)的數(shù)據(jù)精度不同,VB規(guī)定運算結(jié)果采用精度較高的數(shù)據(jù)類型。(4)優(yōu)先級同一表達式中,不同運算符的優(yōu)先級是:算術(shù)運算符 字符運算符 關(guān)系 運算符 邏輯運算符注意:對于存在多種運算符的表達式,可增加圓括號改變優(yōu)先級或使表達式更清晰。2.3 VB的公共函數(shù).數(shù)學函數(shù)VB中常用的數(shù)學函數(shù)函數(shù)名功能示例結(jié)果Sqr ( x)求平方根Sqr

16、( 9)3Log ( x)求自然對數(shù),x0Log( 10)2.3Exp ( x)求以e為底的幕值,即求exExp( 3)20.086Abs ( x)求x的絕對值A(chǔ)bs(-2.5)2.5Hex$(x)求x的十六進制數(shù),返回 的是字符型值Hex$(28)1COct$(x)求x的八進制數(shù),返回的 是字符型值Oct$(10)12Sgn(x)求x的符號,當x0,返 回1 ; x=0,返回0 ;x0,返回-1Sgn(15)1Rnd(x)產(chǎn)生一個在(0,1)區(qū)間 均勻分布的隨機數(shù),每次 的值都不同;若x=0,則 給出的是上一次本函數(shù) 產(chǎn)生的隨機數(shù)Rnd(x)0-1之間的 數(shù)Sin(x)求x的正弦值,x的單位

17、 是弧度Sin(0)0Cos(x)求x的余弦值,x的單位 是弧度Cos0.54Tan(x)求x的正切值,x的單位 是弧度Tan(1)1.56Atn(x)求x的反正切值,x的單 位是弧度,函數(shù)返回的是 弧度值A(chǔ)tn(1)0.79.字符函數(shù)(1)字符串編碼在 Windows 采用的 DBCS ( Double Byte Character Set)編碼方案中,一個 漢字在計算機內(nèi)存中占2個字節(jié),一個西文字符(ASCII碼)占1個字節(jié),但在VB中 采用的是Unicode ( ISO字符標準)來存儲字符的,所有字符都占2個字節(jié)。為方便使 用,可以用StrConv函數(shù)來對Unicode 與DBCS進行轉(zhuǎn)

18、換,可以用函數(shù)Len()函數(shù) 求字符串的字符數(shù),用LenB()函數(shù)求字符串的字節(jié)數(shù)。函數(shù)名功能示例結(jié)果Len (x)求x字符串的字符長度(個數(shù))Len(ab 技術(shù))4LenB (x)求x字符串的字節(jié)個數(shù)LenB(ab 技術(shù))8Left ( x, n)從x字符串左邊取n個字符Left(ABsYt,2)ABRight ( x, n)從x字符串右邊取n個字符Right(ABsYt,2)YtMid ( x, n1 , n2 )從x字符串左邊第n1個位置 開始向右取n2個字符Mid (ABsYt,2,3 )BsYUcase (x)將x字符串中所有小寫字母 改為大寫Ucase (ABsYug)ABSYUG

19、Lease (x)將x字符串中所有大寫字母 改為小寫Ucase (ABsYug)absyugLtrim (x)去掉x左邊的空格Lrim( ABC )ABC Rtrim (x)去掉x右邊的空格Trim( ABC )ABCTrim (x )去掉x兩邊的空格Trim( ABC )ABCInstr ( x,字符 ,M )在x中查找給定的字符,返回 該字符在x中的位置,M=1不 區(qū)分大小寫,省略則區(qū)分Instr(W BAC,B)2String ( n,字符)得到由n個首字符組成的一 個字符串String(3,abcd)aaaSpace (n)得到n個空格Space (3)Replace(C,C1, C2

20、,N1,N2)在C字符串中從N1開始將 C2替代N2次C1,如果沒有 N1表示從1開始Replace(ABCASAA,A,12,2,2)ABC12S12AStrReverse (C)將字符串反序StrReverse (abcd)dcba(2)常用的字符串函數(shù)3.日期與時間函數(shù)常用的日期與時間函數(shù)函數(shù)名含義示例結(jié)果Date ()返回系統(tǒng)日期Date ()02-3-19Time()返回系統(tǒng)時間Time()3:30 :00 PMNow返回系統(tǒng)時間和 日期Now02-3-193:30 :00Month(C)返回月份代號(1-12 )Month(02,03,19)3Year(C)返回年代號(1752-2

21、078 )Year(02-03-19)2002Day(C)返回日期代號(1-31 )Day(02,03,19)19MonthName(N)返回月份名MonthName(1)一月WeekDay()返回星期代號(1-7 ),星期日為1WeekDay(02,03,1 7)1WeekDayName(N)根據(jù)N返回星期 名稱,1為星期 日WeekDayName(4)星期增減日期函數(shù):DateAdd (要增減日期形式,增減量,要增減的日期變量)例:計算期末考試日期:DateAdd(ww,15,#2002/3/19#)求日期之差函數(shù):DateDiff (要間隔日期形式,日期一,日期二)例:計算距畢業(yè)天數(shù):

22、DateDiff(”d”, Now, #2005/6/30#)日期形式期形 式y(tǒng)y yyqmydwwwhns意年季月-日-星時分秒義年周期的的天天數(shù)數(shù)4.轉(zhuǎn)換函數(shù)函數(shù)名功能示例結(jié)果Str (x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成字符串Str (45.2)45.2Val(x)將字符串x中的數(shù)字轉(zhuǎn)換成 數(shù)值Val(23 ab)23Chr(x)返回以x為ASCII碼的字符Chr(65)AAsc(x)給出字符x的ASCII碼值,十進制數(shù)Asc(a)97Cint(x)將數(shù)值型數(shù)據(jù)x的小數(shù)部分 四舍五入取整Cint(3.6)4Int(x)取小于等于x的最大整數(shù)Int(-3.5)Int(3.5)-43Fix(x)將數(shù)值型數(shù)

23、據(jù)x的小數(shù)部分 舍去Fix(-3.5)-3CBool(x)將任何有效的數(shù)字字符串 或數(shù)值轉(zhuǎn)換成邏輯型CBool(2)CBool( 0)TrueFalseCByte(x)將0-255之間的數(shù)值轉(zhuǎn)換成 字節(jié)型CByte(6)6CDate(x)將有效的日期字符串轉(zhuǎn)換 成日期CDate(# 1990,2,2 3#)19902-23CCur(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成貨幣型CCur(25 .6)25.6Round(x , N)在保留N位小數(shù)的情況下 四舍五入取整Round(2.86,1)2.9CStr(x)將x轉(zhuǎn)換成字符串型CStr(12)12CVar(x)將數(shù)值型數(shù)據(jù)x轉(zhuǎn)換成變體 型CVar(23)+A”

24、23ACSng(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成單精度 型CSng(2 3.51254 68)23.51255CDbl(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成雙精度 型CDbl(23 .512546 8)23.51254685.格式輸出Format函數(shù)Format函數(shù)用于制定字符串或數(shù)字的輸出格式。語法:x = Format (expression, fmt )expression是所輸出的內(nèi)容。fmt是指輸出的格式,這是一個字符串型的變 量,這一項若省略的話,那么Format函數(shù)將和Str函數(shù)的功能差不多。如:語句輸出Format (2, “0.00”)2.00Format (.7, “0%”)70%Format (

25、1140, “$#,#0”)$1,140fmt字符的意義字符意義字符意義0顯示一數(shù)字,若此位 置沒有數(shù)字則補0.小數(shù)點#顯示一數(shù)字,若此位 置沒有數(shù)字則不顯示,千位的分隔符%數(shù)字乘以100并在 右邊加上“ %”號-+ $ ()這些字出現(xiàn)在 fmt里將原樣打出Format函數(shù)對時間進行輸出時的意義fmt輸出fmt輸出m/d/yy8/16/96h:mm:ss a/p10:41:29 pd-mmmm-yy16-August-96h:mm22:41d-mmmm16-Augusth:mm:ss22:41:29mmmm-yyaugust-96m/d/yy h:mm8/16/9622:41hh:mm AM/

26、PM10:41 PMInputBox 函數(shù)與 MsgBox 函數(shù)InputBox 函數(shù)語法:x = InputBox (prompt, title, default, xpos, ypos, helpfile, contex t)其中,prompt是提示的字符串,這個參數(shù)是必須的。title是對話框的標題,是可 選的。default是文本框里的缺省值,也是可選的。xpos , ypos決定輸入框的位置。h elpfile , context用于顯示與該框相關(guān)的幫助屏幕。返回值x將是用戶在文本框里輸入 的數(shù)據(jù),x是一個字符串類型的值。如果用戶按了 Cancel鈕,則x將為空字符串。MsgBox

27、函數(shù)語法:Action = MsgBox (msg, type, title)數(shù)值符號常量意義0vbOKOnly只顯示Ok按鈕1vbOKCancel顯示 Ok Cancel按鈕2vbAbortRetryIgnore顯示 Abor Retry Ignore按鈕3vbYesNoCancel顯示 Yes No Cancel 按鈕4vbYesNo顯示Yes No按鈕5vbRetryCancel顯示 Retry Cancel 按鈕16vbCriticalStop Sign對極其重要的問題提醒用戶32vbQuestionQuestion Mark 增亮沒有危險 的問題48vbExclamationExcl

28、amation Mark 強調(diào)警告用戶必須知道的事情64vbInformationInformation Mark 可以使乏味的信息變得有趣0vbDefaultButton1第一個按鈕缺省256vbDefaultButton2第二個按鈕缺省512vbDefaultButton3第三個按鈕缺省Action的值返回值含義返回值含義1選擇Ok按鈕5選擇 Ignore按鈕2選擇 Cancel按鈕6選擇Yes按鈕3選擇Abort 按鈕7選擇No按 鈕4選擇Retry 按鈕5.1數(shù)組的概念.引例求100個學生的平均成績及超過平均成績的人數(shù)。如果用一般變量來表示成績,需要用100個變量,如:markl、ma

29、ry2、mark100。若用數(shù)組, 可以只用一個來表示mark(1To 100)。.基本概念數(shù)組:是同類型變量的一個有序的集合。如:A (1 To 100),表示一個包含100個數(shù)組元素的名為A的數(shù)組。數(shù)組元素:即數(shù)組中的變量。用下標表示數(shù)組中的各個元素。表示方法:數(shù)組名(P1,P2,)其中P1、P2表示元素在數(shù)組中的排列位置,稱為“下標”。如:A (3, 2)代表二維數(shù)組A中第3行第2列上的那個元素。數(shù)組維數(shù):由數(shù)組元素中下標的個數(shù)決定,一個下標表示一維數(shù)組,二個下標表示二維數(shù)組。VB中有一維數(shù)組、二維數(shù)組、最多60維數(shù)組。下標:下標表示順序號,每個數(shù)組有一個唯一的順序號,下標不能超過數(shù)組聲

30、明時的上、下界范 圍。下標可以是整型的常數(shù)、變量、表達式,甚至又是一個數(shù)組元素。下標的取值范圍是:下界To上界,缺省下界時,系統(tǒng)默認取0。3.數(shù)組聲明數(shù)組必須先聲明后使用。聲明數(shù)組就是讓系統(tǒng)在內(nèi)存中分配一個連續(xù)的區(qū)域,用來存儲數(shù)組元素。聲明內(nèi)容:數(shù)組名、類型、維數(shù)、數(shù)組大小。一般情況下,數(shù)組中各元素類型必須相同,但若數(shù)組為Variant時,可包含不同類型的 數(shù)據(jù)。靜態(tài)數(shù)組:聲明時確定了大小的數(shù)組。動態(tài)數(shù)組:聲明時沒有給定數(shù)組大小(省略了括號中的下標),使用時需要用ReDim語句重新指 出其大小。使用動態(tài)數(shù)組的優(yōu)點是根據(jù)用戶需要,有效地利用存儲空間,它是在程序執(zhí)行到ReDim語句時才分 配存儲單

31、元,而靜態(tài)數(shù)組是在程序編譯時分配存儲單元。5.2靜態(tài)數(shù)組及聲明一維數(shù)組靜態(tài)一維數(shù)組的聲明形式:Dim數(shù)組名(下標)As類型說明:(1)下標必須為常數(shù),不可以為表達式或變量;(2)下標下界最小為-32768,最大上界為32767;省略下界,其默認值為為0, 一維數(shù)組的大 小為:上界-下界+1(3)如果省略類型,則為變體型例:(1) Dim A (10) As Integer聲明了 A是數(shù)組名、整型、一維數(shù)組、有11個元素,下標的范圍是010。(2) Dim B (-3 To 5) As String*3聲明了 B是數(shù)組名、字符串型、一維數(shù)組、有9個元素,下標的范圍是-35,每個元素最 多存放3個

32、字符。2.多維數(shù)組靜態(tài)多維數(shù)組的聲明形式:Dim 數(shù)組名(下標1,下標2)As類型說明:(1)下標個數(shù)決定數(shù)組的維數(shù),最多60維。(2)每一維的大小=上界-下界+1;數(shù)組的大小=每一維大小的乘積。例:Dim C (-1 To 5, 4) As Long聲明了 C是數(shù)組名、長整型、二維數(shù)組、第一維下標范圍為15,第二維下標的范圍是04, 占據(jù)7x 5個長整型變量的空間。3.注意事項(1)在有些語言中,下界一般從1開始,為了便于使用,在VB的窗體層或標準模塊層用OptionBase n語句可重新設(shè)定數(shù)組的下界,如Option Base 1。(2)在數(shù)組聲明中的下標關(guān)系到每一維的大小,是數(shù)組說明符,

33、而在程序其他地方出現(xiàn)的下標為 數(shù)組元素,兩者寫法相同,但意義不同。(3)在數(shù)組聲明時的下標只能是常數(shù),而在其他地方出現(xiàn)的數(shù)組元素的下標可以是變量。5.3動態(tài)數(shù)組及聲明.動態(tài)數(shù)組的建立與聲明建立動態(tài)數(shù)組的方法是:利用Dim、Private、Public語句聲明括號內(nèi)為空的數(shù)組,然后在過程中用 ReDim語句指明該數(shù)組的大小。語法是:ReDim 數(shù)組名(下標1,下標2)As類型其中下標可以是常量,也可以是有了確定值的變量,類型可以省略,若不省略,必須與Dim中的聲 明語句保持一致。例:Dim D () As SingleSub Form_Load ()ReDim D (4, 6)End Sub.注

34、意事項(1)在動態(tài)數(shù)組ReDim語句中的下標可以是常量,也可以是有了確定值的變量;(2)在過程中可以多次使用ReDim來改變數(shù)組的大小,也可改變數(shù)組的維數(shù)。(3)每次使用ReDim語句都會使原來數(shù)組中的值丟失,可以在ReDim語句后加Preserve參數(shù)來 保留數(shù)組中的數(shù)據(jù),但使用Preserve只能改變最后一維的大小,前面幾維大小不能改變。.動態(tài)數(shù)組使用示例5.4數(shù)組的基本操作.給數(shù)組元素賦初值(1)利用循環(huán)結(jié)構(gòu)例:Dim iA (1 To 10) As IntegerFor i=1 To 10A(i)=0Next i(2)利用Array函數(shù)例:Dim a As Variant, b As

35、Variant, i%a = Array (1,2,3,4,5)b = Array (abc,def,67)For i=0 To Ubound (a)Picture1.print a(i);”;Next iFor i=0 To Ubound (b)Picture1.print b(i);”;Next i.數(shù)組的輸入(1)通過InputBox函數(shù)輸入適合輸入少量數(shù)據(jù)。例:Dim sB (3,4) As singerFor i=0 To 3For j=0 To 4SB(i,j) =InputBox(輸入 & i & j & 的值)Next jNext i(2)通過文本框控件輸入對大批量的數(shù)據(jù)輸入,

36、采用文本框和函數(shù)split()join()進行處理,效率更高。.數(shù)組的賦值在VB6.0中可以直接將一個數(shù)組的值賦值給另一個數(shù)組:Dim a(3) as integer, b() as integerA(0)=2: A(1)=5: A(2)=-2: A(3)=2b=a在早期的VB中,這需要用循環(huán)語句才可以實現(xiàn):ReDim b(UBound(a)For I=0 to UBound(a)b(I)=a(I) Next i注意:(1)賦值號兩邊的數(shù)據(jù)類型必須一致;(2)如果賦值號左邊的是一個動態(tài)數(shù)組,則賦值時系統(tǒng)自動將動態(tài)數(shù)組ReDim成右邊相同大 小的數(shù)組;(3)如果賦值號左邊的是一個大小固定的數(shù)組,則數(shù)組賦值出錯。.數(shù)組的輸出用ForNext循環(huán)語句輸出。.求數(shù)組中最大元素和所在下標及各元素之和求數(shù)組中最大元素及下標,一般假設(shè)第一個元素及下標為最大,然后將該數(shù)與數(shù)組中的其他元素逐 一比較,若有比其大的就替換,同時替換下標。.交換數(shù)組中各元素交換的要求是將數(shù)組第一個元素與最后一個交換,第二個與倒數(shù)第二個交換,依次類推。5.5控件數(shù)組.控件數(shù)組的概念控件數(shù)組是由一組相同類型的控件組成的,它們共用一個控件名,具有相同的數(shù)組??丶?shù)組適用 于若干個控件執(zhí)行的操作相似的場合,控件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論