VisualBasic程序設(shè)計(jì)基礎(chǔ).ppt_第1頁(yè)
VisualBasic程序設(shè)計(jì)基礎(chǔ).ppt_第2頁(yè)
VisualBasic程序設(shè)計(jì)基礎(chǔ).ppt_第3頁(yè)
VisualBasic程序設(shè)計(jì)基礎(chǔ).ppt_第4頁(yè)
VisualBasic程序設(shè)計(jì)基礎(chǔ).ppt_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第4章 Visual Basic程序設(shè)計(jì)基礎(chǔ),本章主要內(nèi)容,Visual Basic語(yǔ)言字符集及編碼規(guī)則 數(shù)據(jù)類型 常量和變量 運(yùn)算符和表達(dá)式 常用內(nèi)部函數(shù),學(xué)習(xí)重點(diǎn),清楚各種常用數(shù)據(jù)類型,掌握其表示以及各類數(shù)據(jù)在內(nèi)存中的存放形式,了解自定義數(shù)據(jù)類型 理解常量和變量的概念、掌握其定義和使用 掌握各類運(yùn)算符、表達(dá)式和常用內(nèi)部函數(shù)的功能和使用方法,4.1.1 Visual Basic語(yǔ)言字符集,VB語(yǔ)言字符集與其他高級(jí)程序設(shè)計(jì)語(yǔ)言的字符集類似,包含字母、數(shù)字和專用字符三大類,共計(jì)89個(gè)字符: 字母:大寫英文字母AZ;小寫英文字母az 數(shù)字:09 專用字符:共計(jì)27個(gè),見表4-1,4.1.2 編碼規(guī)

2、則與約定,1.編碼規(guī)則 Visual Basic中的語(yǔ)句是執(zhí)行具體操作的指令,每條語(yǔ)句以回車鍵結(jié)束。在一般情況下,輸入程序時(shí)要求按行書寫,一行上書寫一條語(yǔ)句,一句一行。 Visual Basic允許使用復(fù)合語(yǔ)句行,即在同一行上書寫多條語(yǔ)句,則各語(yǔ)句間必須用冒號(hào)“:”隔開;注意:一個(gè)語(yǔ)句行的長(zhǎng)度最多不能超過1023個(gè)字符,且在一行的實(shí)際文本之前最多只能有256個(gè)前導(dǎo)空格。 Visual Basic允許一條較長(zhǎng)的語(yǔ)句分多行書寫,但必須在續(xù)行的行末加入續(xù)行符“ _”(一個(gè)空格和下劃線),表示下一行與該行屬于同一個(gè)語(yǔ)句行;一個(gè)邏輯行最多只能有25個(gè)后續(xù)行。,4.1.2 編碼規(guī)則與約定,1.編碼規(guī)則 V

3、B代碼不區(qū)分字母的大小寫。 VB代碼中必須使用西文標(biāo)點(diǎn)。 VB標(biāo)識(shí)符的命名規(guī)則: 必須以字母或漢字開頭,由字母、漢字、數(shù)字或下劃線組成 字符必須并排書寫,不能出現(xiàn)上下標(biāo)形式 長(zhǎng)度小于等于255個(gè)字符 不可以是系統(tǒng)關(guān)鍵字 不能包含空格、西文標(biāo)點(diǎn)符號(hào)和類型說明符%、&、!、#、$ 在作用域范圍內(nèi)必須唯一 注意:雖然VB中可以使用漢字進(jìn)行標(biāo)識(shí)符命名,但是為了書寫方便,一般不使用漢字。,4.1.2 編碼規(guī)則與約定,1.編碼規(guī)則 使用注釋增加程序的可讀性。VB中提供了兩種格式的注釋語(yǔ)句。 格式1:Rem 注釋內(nèi)容 格式2: 注釋內(nèi)容 說明:注釋語(yǔ)句是非執(zhí)行語(yǔ)句,僅僅對(duì)相應(yīng)位置上的代碼起到注釋作用。格式1

4、中的關(guān)鍵字Rem和注釋內(nèi)容之間必須用空格隔開;注釋內(nèi)容中可以包含任意字符(西文、中文等);格式1是以單獨(dú)注釋語(yǔ)句形式出現(xiàn);格式2在使用時(shí)較格式1更加靈活,可以以單獨(dú)注釋語(yǔ)句形式出現(xiàn),也可直接出現(xiàn)在某行語(yǔ)句后面進(jìn)行注釋,但是續(xù)行符后面不能加注釋。,4.2 數(shù) 據(jù) 類 型,4.2.1 數(shù)值數(shù)據(jù)類型 4.2.2 字符數(shù)據(jù)類型String 4.2.3 邏輯數(shù)據(jù)類型Boolean 4.2.4 日期數(shù)據(jù)類型Date 4.2.5 對(duì)象數(shù)據(jù)類型Object 4.2.6 變體數(shù)據(jù)類型Variant,1Integer和Long,用于保存帶有符號(hào)的、不帶小數(shù)點(diǎn)和指數(shù)符號(hào)的整數(shù),存放整數(shù)的字節(jié)最高位是符號(hào)位。整數(shù)運(yùn)算

5、速度快、精確,但表示數(shù)的范圍小。 在Visual Basic中整數(shù)的表示形式為n% 或 n&。 當(dāng)表示Integer型整數(shù)時(shí),n是-32768+32767范圍內(nèi)的整數(shù),%是整型的類型說明符,可省略; 當(dāng)表示Long型整數(shù)時(shí),n是-2147483648 ,2147483647范圍內(nèi)的整數(shù),&是長(zhǎng)整型的類型說明符。 356、+356、-356、356%合法Integer型常量 35689、-1246978、356&合法的Long型常量,2Single、Double,用于保存浮點(diǎn)實(shí)數(shù)(帶有小數(shù)部分的數(shù)值),浮點(diǎn)實(shí)數(shù)表示數(shù)的范圍大,但有誤差,且運(yùn)算速度慢。 Visual Basic中規(guī)定單精度浮點(diǎn)數(shù)精

6、度為7位,雙精度浮點(diǎn)數(shù)精度為1516位。 單精度型和雙精度型常量有兩種表示形式,即小數(shù)形式和指數(shù)形式。指數(shù)形式由符號(hào)、指數(shù)和尾數(shù)3部分組成;單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)的指數(shù)分別用“E”(或“e”)和“D”(或“d”)來表示,含義為“乘以10的冪次”。,2Single、Double,單精度型的合法表達(dá)形式:n!、nEm、n.nEm 雙精度型的合法表達(dá)形式:n.n、n#、nDm、n.nDm其中,n、m是無符號(hào)整數(shù) -2.15!、0.123!、0.34625E+3、2.34E8、123.4E-3表示合法的單精度數(shù) -346.25、1234567.89、90.3#、3D10、1.2D-6、0.3462

7、5E+3#表示合法的雙精度數(shù),2Single、Double,單精度型和雙精度型常量的小數(shù)形式若超出有效位數(shù),進(jìn)行小數(shù)部分的截?。蝗粽麛?shù)部分超出有效位數(shù),自動(dòng)轉(zhuǎn)為指數(shù)形式表示。 當(dāng)冪為正數(shù)時(shí),正號(hào)可以省略。即2.34E8等價(jià)于2.34E+8,3D10等價(jià)于3D+10 同一個(gè)實(shí)數(shù)有多種表示形式,例如,-346.25可以表示為-3.4625D+2、-0.34625D+3、-34.625D+1、-3462.5D-1、-34625.D-2等。一般將-3.4625D+2稱為“規(guī)格化指數(shù)形式” Visual Basic系統(tǒng)默認(rèn)情況的直接實(shí)型常數(shù)都是雙精度類型,即-346.25與-346.25#是等價(jià)的雙精度

8、類型常數(shù)。,3Currency,貨幣數(shù)據(jù)類型是為表示錢款而設(shè)置的,是定點(diǎn)實(shí)數(shù)或整數(shù),精確到小數(shù)點(diǎn)后4位和小數(shù)點(diǎn)前15位,用于貨幣運(yùn)算。 表示形式在數(shù)字后加符號(hào),例如,-346.25、2346、0.1234都是合法的貨幣數(shù)據(jù)形式。 Visual Basic規(guī)定在數(shù)值型常數(shù)后加類型說明符可以改變數(shù)據(jù)的類型,從而改變數(shù)據(jù)在內(nèi)存中的存儲(chǔ)空間大小。因此3456%、3456&、3456!(或0.3456E+4)、3456#(或3456.0、0.3456D+4、0.3456E+4#)、3456都表示與3456同值的數(shù)據(jù),但是類型不同在計(jì)算機(jī)內(nèi)存中所占用的空間不同。,4Byte,字節(jié)實(shí)際上是一種數(shù)值類型,以1

9、個(gè)字節(jié)的無符號(hào)二進(jìn)制數(shù)存儲(chǔ)。,4.2.2 字符數(shù)據(jù)類型String,字符串是字符序列,由西文字符、漢字和標(biāo)點(diǎn)符號(hào)組成,在Visual Basic中字符串常量?jī)啥擞秒p引號(hào)括起,例如:456、VB程序設(shè)計(jì)、01/02/2008,PM-12:30:24等。 說明: (1)是長(zhǎng)度為0(既不含任何字符)的字符串,稱為空字符串(或空串)。 (2)若字符串中有雙引號(hào),可用連續(xù)的兩個(gè)雙引號(hào)“”表示字符串中的“,示例如下: 學(xué)習(xí)VB課程 表示字符串:學(xué)習(xí)VB課程 (3) Visual Basic中的字符串變量有定長(zhǎng)和變長(zhǎng)兩種,在定義時(shí)是有區(qū)別的。,4.2.3 邏輯數(shù)據(jù)類型Boolean,邏輯數(shù)據(jù)類型又稱布爾類型

10、,用于邏輯判斷,只有True和False兩種取值,描述“真/假”、“對(duì)/錯(cuò)”、“是/否”、“開/關(guān)”等兩種狀態(tài)信息。之前章節(jié)中介紹的Enabled、Visible、FontBold等就是取值為True或False的邏輯型屬性,因此常常與條件判斷語(yǔ)句配合,獲取對(duì)象的狀態(tài)信息。,4.2.4 日期數(shù)據(jù)類型Date,日期型數(shù)據(jù)以8個(gè)字節(jié)的浮點(diǎn)數(shù)值表示,可以表示的日期范圍為公元100年1月1日9999年12月31日,時(shí)間范圍為0:00:0023:59:59。 日期型數(shù)據(jù)有兩種表示法:一種是任何在字面上表示日期和時(shí)間的字符,兩端用“#”括起來,如#3/8/2008#、#3-8-2008#、#March 8

11、 2008#、#2008-3-8 20:20:20 PM#;另一種是用數(shù)值表示,數(shù)值的整數(shù)部分表示距離1899年12月30日的天數(shù),小數(shù)部分表示時(shí)間,0為午夜,0.5為中午12點(diǎn),負(fù)數(shù)代表的是1899年12月31日之前的日期和時(shí)間。,4.2.5 對(duì)象數(shù)據(jù)類型Object,對(duì)象型數(shù)據(jù)用來表示圖形、OLE對(duì)象或其他對(duì)象,也可以使用對(duì)象型數(shù)據(jù)的屬性和方法。,4.2.6 變體數(shù)據(jù)類型Variant,變體數(shù)據(jù)類型是一種可變的數(shù)據(jù)類型,可以表示任何值,包括數(shù)值、字符串、日期/時(shí)間等。變量如果不加類型說明,系統(tǒng)默認(rèn)為變體型(Variant),可使用VarType函數(shù)檢測(cè)變體型變量中保存的數(shù)值究竟是何類型。V

12、ariant類型的變量還可以包含Empty(未賦值)、Null(未知或缺少的值,常見于數(shù)據(jù)庫(kù))和Error(出現(xiàn)錯(cuò)誤時(shí)的值)3個(gè)特殊值,讀者可以使用IsEmpty函數(shù)來測(cè)試一個(gè)Variant變量是否被賦過值,使用IsNull函數(shù)來測(cè)試一個(gè)Variant變量是否具有Null值。,4.3 常量和變量,4.3.1 數(shù)據(jù)的存儲(chǔ) 程序運(yùn)行時(shí),使用的各種類型數(shù)據(jù)都是存放在內(nèi)存單元中,并且給內(nèi)存單元取名,計(jì)算機(jī)就是通過內(nèi)存單元名來訪問其中的數(shù)據(jù)。內(nèi)存中的存儲(chǔ)單元按照數(shù)據(jù)的存取特性分為靜態(tài)存儲(chǔ)區(qū)和動(dòng)態(tài)存儲(chǔ)區(qū)。 靜態(tài)存儲(chǔ)區(qū)中的存儲(chǔ)單元一旦分配,要到應(yīng)用程序結(jié)束時(shí)才釋放空間;動(dòng)態(tài)存儲(chǔ)區(qū)中的單元?jiǎng)t可以在應(yīng)用程序執(zhí)行

13、中釋放,數(shù)據(jù)也可以被多次更新。Visual Basic中的各類數(shù)據(jù)都有常量和變量形式。常量是存放在靜態(tài)存儲(chǔ)區(qū)的常量區(qū)中的數(shù)據(jù)。常量區(qū)一旦放入數(shù)據(jù)就不允許用戶修改,即常量在程序執(zhí)行期間,其值是不發(fā)生變化的,直到數(shù)據(jù)單元被釋放。變量是存儲(chǔ)單元的代號(hào),對(duì)應(yīng)于存放在動(dòng)態(tài)存儲(chǔ)區(qū)的單元或靜態(tài)存儲(chǔ)區(qū)的非常量區(qū);程序執(zhí)行過程中,使用變量來暫時(shí)存放程序中有用的數(shù)據(jù),變量的內(nèi)容可以允許多次更新(存入新的數(shù)據(jù))。,4.3.2 常量,根據(jù)表示形式可以將常量分為直接常量和符號(hào)常量。 1直接常量(字面常量) 直接常量可從形式上判斷其類型和大小,如123、345%為Integer類型常量、230.0為Double型常量、“

14、asdf”、“230.0”為字符串常量等,也可以在常量值后加類型說明符(%、&、!、#、)來說明常數(shù)的數(shù)據(jù)類型。在Visual Basic中的整型常量中,默認(rèn)是用十進(jìn)制表示的數(shù)值,還有八進(jìn)制、十六進(jìn)制。八進(jìn)制常數(shù)在數(shù)值前加&O,如&O567,&O777等;十六進(jìn)制常數(shù)在數(shù)值前加&H,如&H189,&HFFFF等。Visual Basic中的顏色數(shù)據(jù)常用十六進(jìn)制整數(shù)表示,如&H0000FF00表示綠色。,2符號(hào)常量,日常學(xué)習(xí)時(shí)經(jīng)常會(huì)遇到一些常數(shù)值被反復(fù)使用,也會(huì)用到一些較難記住的數(shù)據(jù),通常是約定一個(gè)特定的符號(hào)來替代該數(shù)據(jù),例如,約定表示圓周率3.141592535。在計(jì)算機(jī)語(yǔ)言中同樣也沿用此方法

15、,使用符號(hào)常量(一個(gè)有意義的名字),取代值不變的常數(shù)。Visual Basic中的符號(hào)常量分為用戶自定義符號(hào)常量和系統(tǒng)符號(hào)常量。,(1)用戶自定義符號(hào)常量,在Visual Basic中,允許用戶用Const語(yǔ)句定義符號(hào)常量來代替指定的值,其格式如下: Private | Public Const 常量名 As 類型名=表達(dá)式, 常量名2=表達(dá)式2 Const PI As Double=3.1415926535 聲明PI為雙精度符號(hào)常量,值為3.1415926535 Const NATIONALDAY As Date=#10/1/1949# 聲明NATIONALDAY為日期常量,值為1949年1

16、0月1日,格式說明, Public選項(xiàng)只能用在標(biāo)準(zhǔn)模塊的通用部分,表示該符號(hào)常量可以在整個(gè)應(yīng)用程序中使用,Private選項(xiàng)則可用在模塊(包括窗體模塊和標(biāo)準(zhǔn)模塊)的通用部分,表示該符號(hào)常量可以在該模塊范圍內(nèi)使用。默認(rèn)情況為Private。 常量名的命名遵循Visual Basic標(biāo)識(shí)符的命名規(guī)則,符號(hào)常量名常常使用大寫字母。 As類型名:說明該符號(hào)常量的數(shù)據(jù)類型,若默認(rèn)該項(xiàng),則由其右側(cè)表達(dá)式的數(shù)據(jù)類型決定。 用戶也可以在常量名后加類型說明符,定義該常量的類型,示例如下。Const PI#=3.1415926535 聲明PI為雙精度符號(hào)常量,值為3.1415926535,格式說明, 表達(dá)式可以由

17、運(yùn)算符、常量(直接常量和已定義的符號(hào)常量)組成,必須具有一個(gè)確定的值;注意,該表達(dá)式中絕對(duì)不允許使用變量、函數(shù)。示例如下。 Const TAXMIN!=0.05Const TAXMAX!=10 * TAXMIN 符號(hào)常量一旦聲明,在之后的代碼中只能引用,不能再次定義或賦值。,(2)系統(tǒng)符號(hào)常量,Visual Basic系統(tǒng)本身提供了一些符號(hào)常量,存放于系統(tǒng)的對(duì)象庫(kù)中。如vbOK、vbRed、vbYes等,用戶可以在“對(duì)象瀏覽器”中查看 此外,如Visual Basic for Applications(VBA)、ActiveX控件、Microsoft Excel和Microsoft Proje

18、ct等提供對(duì)象庫(kù)的應(yīng)用程序也提供了符號(hào)常量,這些符號(hào)常量可與應(yīng)用程序的對(duì)象、方法和屬性一起使用。 為避免不同對(duì)象中同名變量的混淆,在引用時(shí)可使用2個(gè)小寫字母前綴,區(qū)分引用哪個(gè)對(duì)象庫(kù)中符號(hào)常量。示例如下:vb表示引用VB和VBA中的符號(hào)常量。xl表示引用Excel中的符號(hào)常量。db表示引用Data Access Object中的符號(hào)常量。,(2)系統(tǒng)符號(hào)常量,在使用時(shí)既可以使用系統(tǒng)符號(hào)常量,也可以直接使用系統(tǒng)符號(hào)常量對(duì)應(yīng)的數(shù)值。示例如下。 Form1.BackColor=vbRed Form1.BackColor=255 Form1.BackColor=&HFF 以上3條語(yǔ)句執(zhí)行時(shí)都能將窗體的背

19、景色更新為紅色,顯然使用系統(tǒng)符號(hào)常量vbRed,程序代碼的可讀性更強(qiáng)。,4.3.3 變量,在程序運(yùn)行過程中,內(nèi)存單元中數(shù)據(jù)值可以改變的稱為變量。一個(gè)變量必須有一個(gè)名字和相應(yīng)的數(shù)據(jù)類型,通過名字來引用一個(gè)變量,而數(shù)據(jù)類型則決定了該變量的存儲(chǔ)方式和在內(nèi)存中占據(jù)存儲(chǔ)單元的大小。變量名實(shí)際上是一個(gè)符號(hào)地址,程序編譯連接時(shí),由系統(tǒng)給每一個(gè)變量分配一個(gè)內(nèi)存地址,在該地址的存儲(chǔ)單元中存放變量的值。在程序中從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從其存儲(chǔ)單元中取數(shù)據(jù)。注意變量名和變量值這兩個(gè)概念的區(qū)別。,4.3.3 變量,在Visual Basic中,變量有兩種形式,即對(duì)象的屬性變量和內(nèi)存變量。創(chuàng)

20、建對(duì)象時(shí),Visual Basic系統(tǒng)會(huì)自動(dòng)為它創(chuàng)建一組變量即屬性變量,并為每一個(gè)屬性變量設(shè)置其默認(rèn)值。這類變量可供程序員直接使用,如引用其值或賦予新值。內(nèi)存變量就是下面通常所講的變量,它是用戶根據(jù)需要所聲明的。,1變量的聲明(顯式聲明),與符號(hào)常量一樣,要求變量“先聲明,后使用”。聲明變量就是定義變量名和變量數(shù)據(jù)類型,從而決定系統(tǒng)為它分配多少存儲(chǔ)單元存放數(shù)據(jù)。 (1)在定義變量時(shí)指定其數(shù)據(jù)類型。 格式:Declare 變量名 As 類型名 說明: Declare可以是Dim、Public、Private、Static或Redim。 Dim用于在模塊的通用部分定義模塊級(jí)變量以及在過程中定義過程

21、級(jí)變量。 Private用于在模塊的通用部分定義模塊級(jí)變量。 Public用于在模塊的通用部分定義全局變量。 Static用于過程中定義過程級(jí)靜態(tài)變量。 Redim用于重新定義動(dòng)態(tài)數(shù)組的大小。,(1)在定義變量時(shí)指定其數(shù)據(jù)類型,格式:Declare 變量名 As 類型名 說明: 提示:僅在某個(gè)過程中使用的變量,就在該過程中用Dim聲明定義,若要在多個(gè)過程中使用公共變量,則必須在模塊的通用部分用Dim、Private、Public聲明定義此變量。 變量名遵循Visual Basic標(biāo)識(shí)符的命名規(guī)則。命名時(shí)應(yīng)盡量有意義,做到“顧名思義”。如Sum、Ave_Score、PersonId等都是合法的變

22、量名??稍谧兞棵凹右粋€(gè)縮寫的前綴來表明該變量的數(shù)據(jù)類型。示例如下。intSum、sngAveScore、strPersonId,(1)在定義變量時(shí)指定其數(shù)據(jù)類型,格式:Declare 變量名 As 類型名 說明: As類型名:類型名可以是基本數(shù)據(jù)類型和用戶定義的類型,也可以省略,省略后變量為默認(rèn)數(shù)據(jù)類型(默認(rèn)情況下為變體型),但變體型占用內(nèi)存空間較多,執(zhí)行效率低。示例如下。 Public a As Integer 定義一個(gè)Integer型全局變量a Dim d定義一個(gè)變體型變量d,等價(jià)Dim d As Variant,(1)在定義變量時(shí)指定其數(shù)據(jù)類型,格式:Declare 變量名 As 類型

23、名 說明:定義字符串類型的變量的方法: Dim 字符串變量名 As String 變長(zhǎng)字符串變量 Dim 字符串變量名 As String * 字符數(shù) 定長(zhǎng)字符串變量 定長(zhǎng)字符串變量的長(zhǎng)度,由*號(hào)后面的字符數(shù)決定,若賦予定長(zhǎng)字符串變量的字符數(shù)少于指定的字符數(shù),則尾部用空格補(bǔ)足;若超過指定的字符數(shù),系統(tǒng)自動(dòng)截去尾部超出部分的字符。示例如下: Dim strExpress1 As String 定義變長(zhǎng)字符串變量strExpress1 Dim strStuId As String * 8 定義定長(zhǎng)字符串變量strStuId存放8個(gè)字符,(1)在定義變量時(shí)指定其數(shù)據(jù)類型,格式:Declare 變量名

24、 As 類型名 說明: 一條聲明語(yǔ)句可將多個(gè)聲明組合起來,在這種格式下,即使幾個(gè)變量的類型一致,也必須分別用“As 類型名”聲明各自的類型。示例如下: Dim i As Long, j As Double Dim YourName As String * 20, BillsPaid As Currency Private a, b, c As Integer 這里a和b為Varient型,c為Integer型,(2)用類型說明符定義變量,對(duì)于具有類型說明符的數(shù)據(jù)類型,可以采用如下簡(jiǎn)單格式定義變量:Declare 變量名類型說明符 說明: Declare可以是Dim、Public、Private

25、、Static或Redim中的任意關(guān)鍵字。 基本類型的類型說明符(%、&、!、#、)在表4-2類型說明符列中列舉出。 變量名與類型說明符之間沒有空格。示例如下。Dim i&, J#, K! 定義長(zhǎng)整型變量i,雙精度變量J,單精度變量K,2變量的默認(rèn)聲明(隱式聲明),Visual Basic系統(tǒng)允許用戶不作聲明而直接使用變量,這樣的變量是過程級(jí)的變體型變量,只能在過程中使用。 以下事件過程中的變量a未經(jīng)聲明定義。Private Sub Form_Click() a=Val(Text1.Text) Print aEnd Sub上述代碼等價(jià)于:Private Sub Form_Click() Dim

26、 a As Variant a=Val(Text1.Text) Print aEnd Sub,3 Option Explicit強(qiáng)制顯式聲明,Visual Basic系統(tǒng)提供了強(qiáng)制用戶對(duì)變量進(jìn)行強(qiáng)制顯式聲明的措施: 在模塊代碼窗口的通用部分開頭直接輸入Option Explicit語(yǔ)句 或者執(zhí)行“工具”菜單的“選項(xiàng)”命令,在“編輯器”選項(xiàng)卡中,選中“要求變量聲明”復(fù)選框,Visual Basic系統(tǒng)就自動(dòng)生成語(yǔ)句Option Explicit,并加到模塊的聲明部分。通過對(duì)變量進(jìn)行強(qiáng)制顯式聲明,凡是發(fā)現(xiàn)程序中使用未經(jīng)顯式聲明的變量,系統(tǒng)將自動(dòng)顯示一個(gè)“變量未定義”錯(cuò)誤警告信息框。,4變量默認(rèn)數(shù)據(jù)

27、類型的設(shè)置,在聲明變量中沒有說明數(shù)據(jù)類型,則變量的默認(rèn)數(shù)據(jù)類型為Variant。Visual Basic系統(tǒng)允許用戶在聲明變量前,自行設(shè)置或修改變量默認(rèn)的數(shù)據(jù)類型。 格式:DefType 字母范圍 說明: (1)DefType語(yǔ)句放在模塊聲明部分的開頭,設(shè)置指定字母范圍開頭的變量的默認(rèn)數(shù)據(jù)類型 (2)Def是系統(tǒng)關(guān)鍵字,Type是基本數(shù)據(jù)類型標(biāo)志,用以下格式分別表示各基本類型:Byte、Int、Lng、Sng、Dbl、Cur、Str、Bool、Date、Obj、Var。注意,在Def和類型標(biāo)志之間不能有空格 (3)字母范圍采用“字母-字母”的形式表示,其中字母可以是AZ中的任何一個(gè)(大小寫均可

28、)。語(yǔ)句中說明的字母可以作為該類型的變量名,而且以該字母開頭的變量名也是那種類型的變量。,4變量默認(rèn)數(shù)據(jù)類型的設(shè)置,(4)DefType語(yǔ)句不允許重復(fù)定義。示例如下。DefSng C-F 該語(yǔ)句定義后,CF以及凡是用CF開頭命名的變量默認(rèn)類型是單精度型Dim a As Integer, b, c As Double, d, f 定義a為整型變量,b為變體型變量,c為雙精度型變量,d和f均為單精度型變量又如,若要將模塊中的變量的默認(rèn)類型全部設(shè)置為單精度型,可以在模塊的通用部分按如下方法定義:DefSng A-ZDim a As Integer, b, c As Double, d, f 定義a為

29、整型變量, c為雙精度型變量,b、d和f均為單精度型變量,5變量的賦值,給變量賦值實(shí)際就是將數(shù)據(jù)放入指定變量的內(nèi)存空間。使用聲明語(yǔ)句定義一個(gè)變量后,Visual Basic系統(tǒng)會(huì)自動(dòng)給變量賦予一個(gè)默認(rèn)的初始值。 (1)數(shù)值類型變量的初值為0。 (2)字符串型變量的初值為空串(“”)。 (3)布爾類型變量的初值為False。 (4)日期類型變量的初值為#1899-12-30 0:00:00#。 (5)變體類型變量的初值為Empty。,賦值語(yǔ)句,格式: 變量名=表達(dá)式 Let變量名=表達(dá)式 作用:將賦值運(yùn)算符“=”右側(cè)表達(dá)式的值賦給左側(cè)的變量。 說明:(1)兩種格式完全等價(jià),通常采用第1種格式。(

30、2)左側(cè)的變量包括屬性變量和內(nèi)存變量。(3)表達(dá)式包括常量(直接常量和已定義的符號(hào)常量)、變量、對(duì)象屬性、函數(shù)形式以及由它們與運(yùn)算符的組合形式。,賦值注意以下問題,(1)給變量賦值的語(yǔ)句兼有計(jì)算和賦值雙重功能,即先完成賦值號(hào)右側(cè)表達(dá)式的計(jì)算,然后將計(jì)算好的表達(dá)式的值賦給左側(cè)的變量。示例代碼如下。a=12.4 + 56.12 先計(jì)算右側(cè)表達(dá)式,后將計(jì)算結(jié)果賦給左側(cè)的變量a (2)在某一個(gè)時(shí)刻,變量的內(nèi)存單元只能存放一個(gè)數(shù)據(jù),要修改數(shù)據(jù)則采用賦值的方法實(shí)現(xiàn)。注意,變量總是按語(yǔ)句執(zhí)行次序,存放最近一次賦值的數(shù)據(jù)。,賦值注意以下問題,(3)一般要求賦值號(hào)兩邊的數(shù)據(jù)類型一致,這樣才能完成正確的賦值,即賦

31、值號(hào)左側(cè)的數(shù)據(jù)一般情況下只能接收與它類型相同的表達(dá)式的值。當(dāng)賦值時(shí)表達(dá)式的值的類型并不完全和變量類型相同時(shí),系統(tǒng)根據(jù)自動(dòng)轉(zhuǎn)換的原則將值轉(zhuǎn)換成與變量相同的類型后賦值,一旦自動(dòng)轉(zhuǎn)換失敗,則賦值也失敗,系統(tǒng)出錯(cuò),賦值注意以下問題,(4)Variant數(shù)據(jù)類型可在不同場(chǎng)合代表不同數(shù)據(jù)類型。當(dāng)指定變量為Variant變量時(shí),Visual Basic會(huì)自動(dòng)完成各種必要的類型轉(zhuǎn)換。 (5)區(qū)分賦值號(hào)和關(guān)系運(yùn)算符中的判等號(hào)。在Visual Basic中,系統(tǒng)會(huì)根據(jù)等號(hào)所處的位置來區(qū)分是賦值號(hào)還是判等號(hào):僅在賦值語(yǔ)句最左端的等號(hào)是賦值號(hào),其余的均為判等號(hào)。判等號(hào)所在的表達(dá)式一般不能單獨(dú)以語(yǔ)句的形式出現(xiàn),而賦值號(hào)

32、則是以賦值語(yǔ)句形式出現(xiàn);賦值號(hào)兩邊的數(shù)據(jù)是不能隨便相互交換的,否則可能運(yùn)行出錯(cuò)或產(chǎn)生邏輯上的錯(cuò)誤,而判等號(hào)兩邊的數(shù)據(jù)是可以相互交換的。,4.4 運(yùn)算符和表達(dá)式,碰到具體問題時(shí),不光是要表示待處理的數(shù)據(jù),而且還要運(yùn)用有效的方案處理數(shù)據(jù)、解決問題。例如,已知三邊,求三角形的面積。與數(shù)學(xué)中一樣,計(jì)算機(jī)語(yǔ)言中,對(duì)數(shù)據(jù)的加工處理稱為運(yùn)算(即操作);被運(yùn)算的對(duì)象,即數(shù)據(jù),稱為操作數(shù)(或運(yùn)算量);用運(yùn)算符或操作符來描述最基本的運(yùn)算形式。因此合理地運(yùn)用運(yùn)算符描述對(duì)哪些數(shù)據(jù)、以何種順序、進(jìn)行什么樣的操作,是本節(jié)學(xué)習(xí)的關(guān)鍵。 Visual Basic中定義了豐富的運(yùn)算符,包括算術(shù)運(yùn)算符、字符串運(yùn)算符、關(guān)系運(yùn)算符和

33、邏輯運(yùn)算符和對(duì)應(yīng)的表達(dá)式。,4.4.1 算術(shù)運(yùn)算符和表達(dá)式,1算術(shù)運(yùn)算符 + 加 - 減(負(fù)號(hào)) * 乘 / 除 整除(取商的整數(shù)部分、要求操作數(shù)為整型數(shù)據(jù)) Mod 取余運(yùn)算 (要求操作數(shù)為整型數(shù)據(jù)) 乘方運(yùn)算符 & 字符串連接運(yùn)算,4.4.1 算術(shù)運(yùn)算符說明,(1)冪運(yùn)算用來計(jì)算乘方和方根 5 2 5的平方 125 (1 / 3) 125的立方根 注意,由于冪運(yùn)算的運(yùn)算優(yōu)先級(jí)最高,當(dāng)指數(shù)部分是一個(gè)表達(dá)式,必須加上括號(hào),否則上述表達(dá)式125 1 / 3,將先完成125 1運(yùn)算,后進(jìn)行除3運(yùn)算,即改變了原運(yùn)算順序。,4.4.1 算術(shù)運(yùn)算符說明,(2)整除和取余運(yùn)算。 整除()運(yùn)算是整數(shù)之間的除

34、運(yùn)算,其結(jié)果是商的整數(shù)部分(即普通除運(yùn)算結(jié)果的整數(shù)部分),所以又稱為商取整除法。 8 5 8整除5,結(jié)果為1 取余(Mod)運(yùn)算是整數(shù)之間的取余運(yùn)算,結(jié)果為第1個(gè)操作數(shù)整除第2個(gè)操作數(shù)后所得的余數(shù)部分。取余運(yùn)算結(jié)果的正負(fù)號(hào)始終與第一個(gè)操作數(shù)的符號(hào)相同。 8 Mod 5結(jié)果為3 8 Mod - 5結(jié)果為3 - 8 Mod 5結(jié)果為- 3 - 8 Mod - 5結(jié)果為- 3,注意問題,(1)算術(shù)運(yùn)算符要求參與運(yùn)算的操作數(shù)是數(shù)值型,運(yùn)算結(jié)果也是數(shù)值型;若操作數(shù)是表示數(shù)值的字符串或邏輯型,則按自動(dòng)轉(zhuǎn)換的原則轉(zhuǎn)換成數(shù)值類型后參與運(yùn)算。 2 * “3.14” * 3數(shù)值字符串3.14“轉(zhuǎn)換為3.14參與算

35、術(shù)運(yùn)算,結(jié)果是18.84 “3D2” + 20 5數(shù)值字符串3D2“轉(zhuǎn)換為300.0參與算術(shù)運(yùn)算,結(jié)果是315.0 False + 10 True 邏輯值False轉(zhuǎn)換為0、True轉(zhuǎn)換為-1參與算術(shù)運(yùn)算,結(jié)果是11,注意問題,(2)除-(取相反數(shù))為單目運(yùn)算符外,其余的算術(shù)運(yùn)算符均為雙目運(yùn)算符。 (3)在算術(shù)運(yùn)算中若操作數(shù)的數(shù)據(jù)類型相同,則運(yùn)算結(jié)果的數(shù)據(jù)類型也為該類型;若數(shù)據(jù)類型不一致,具有不同的數(shù)據(jù)精度,則Visual Basic根據(jù)精度大?。〝?shù)值型數(shù)據(jù)按精度大小從小到大排序?yàn)镮ntegerLongSingleDoubleCurrency),將精度低的數(shù)據(jù)轉(zhuǎn)換成精度高的數(shù)據(jù)類型后進(jìn)行運(yùn)算,

36、規(guī)定運(yùn)算結(jié)果的數(shù)據(jù)類型以精度高的數(shù)據(jù)類型為準(zhǔn),,注意問題,但以下幾種特殊情況除外: 當(dāng)Long型數(shù)據(jù)與Single型數(shù)據(jù)運(yùn)算時(shí),結(jié)果為Double型數(shù)據(jù)。 除法和冪運(yùn)算的結(jié)果總是Double型,與操作數(shù)類型無關(guān)。整除()和取余(Mod)運(yùn)算時(shí),若操作數(shù)為實(shí)數(shù),則先對(duì)其進(jìn)行四舍六入五成雙的取整,然后完成整除或取余,結(jié)果仍為整型或長(zhǎng)整型。 256 + 890 加號(hào)兩側(cè)操作數(shù)均為Integer型,運(yùn)算結(jié)果也是Integer型 483 * 12.3! 乘號(hào)左側(cè)操作數(shù)為Integer型,右側(cè)為Single型,運(yùn)算結(jié)果以精度高的Single型為準(zhǔn) 4 3 冪運(yùn)算的結(jié)果是Double型 8.5 5.56 先

37、將操作數(shù)8.5和5.56進(jìn)行四舍六入五成雙的取整,分別得到8和6,整除結(jié)果是1,2算術(shù)表達(dá)式,由算術(shù)運(yùn)算符、圓括號(hào)、函數(shù)、常量和變量組成的式子稱為算術(shù)表達(dá)式,算術(shù)表達(dá)式的值是數(shù)值型的。 0.5 * g * t 2 + v0 * t (x% Mod 10 ) * 10 + x% 10 算術(shù)表達(dá)式的值是有類型的,所以也存在著值的溢出(超出取值范圍)現(xiàn)象,運(yùn)算時(shí)要注意。 235 + 32760 出錯(cuò)“溢出”,表達(dá)式的值也是Integer型,32995超出了整型數(shù)據(jù)的范圍,3日期型表達(dá)式,日期型數(shù)據(jù)是一種特殊的數(shù)值型數(shù)據(jù),它們之間只能進(jìn)行加(+)、減()算術(shù)運(yùn)算。日期型表達(dá)式由算術(shù)運(yùn)算符“+”、“”、

38、算術(shù)表達(dá)式、日期型常量和變量、函數(shù)組成。一般有以下3種情況: (1)兩個(gè)日期型數(shù)據(jù)進(jìn)行減法運(yùn)算,結(jié)果是一個(gè)數(shù)值型數(shù)據(jù)(兩個(gè)日期相差的天數(shù))。#05/09/2008# - #05/01/2008# 表達(dá)式值為8 (2)一個(gè)日期型數(shù)據(jù)與一數(shù)值型數(shù)據(jù)進(jìn)行加法運(yùn)算,結(jié)果是一個(gè)日期型數(shù)據(jù)。#05/01/2008# + 8 值為日期型數(shù)據(jù)#05/09/2008# (3)一個(gè)日期型數(shù)據(jù)與一數(shù)值型數(shù)據(jù)進(jìn)行減法運(yùn)算,結(jié)果是一個(gè)日期型數(shù)據(jù)。#05/09/2008# - 8 表達(dá)式值為日期型數(shù)據(jù)#05/01/2008#,4.4.2 字符串運(yùn)算符和字符串表達(dá)式,Visual Basic中的字符串運(yùn)算符主要用來將兩個(gè)字

39、符串連接成一個(gè)字符串,Visual Basic提供了兩個(gè)字符串的連接符,即“&”和“+”。 “&”和“+”是雙目運(yùn)算符,用來將兩個(gè)字符串首尾連接的,連接結(jié)果仍為字符串類型。優(yōu)先級(jí)相同,但低于算術(shù)運(yùn)算符。 “江南大學(xué)” & “信息工程學(xué)院” 連接結(jié)果為江南大學(xué)信息工程學(xué)院 “江南大學(xué)” + “信息工程學(xué)院” 連接結(jié)果為江南大學(xué)信息工程學(xué)院 字符串變量a中存放的內(nèi)容是 & a 若a中的內(nèi)容為“VB”,則連接結(jié)果為字符串變量a中存放的內(nèi)容是VB,注意問題,(1)使用運(yùn)算符“&”時(shí),操作數(shù)與“&”之間必須加上一個(gè)空格分隔。因?yàn)榉?hào)“&”還是長(zhǎng)整型數(shù)據(jù)的類型定義符,若操作數(shù)與符號(hào)“&”連接在一起,VB系

40、統(tǒng)優(yōu)先將它作為長(zhǎng)整型數(shù)據(jù)類型符處理,繼而就會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤 (2)“+”與“&”運(yùn)算符在使用時(shí)的區(qū)別如下: “&”運(yùn)算在連接運(yùn)算前,系統(tǒng)自動(dòng)先將兩邊的非字符串類型數(shù)據(jù)轉(zhuǎn)換成字符串型數(shù)據(jù),然后再進(jìn)行連接操作 運(yùn)算符“+”兩邊僅當(dāng)都是字符串類型數(shù)據(jù)時(shí),才進(jìn)行字符串的連接操作;否則系統(tǒng)將運(yùn)算符“+”用作算術(shù)運(yùn)算符,進(jìn)行求和運(yùn)算:若其中一個(gè)操作數(shù)是數(shù)值型或邏輯型,另一個(gè)操作數(shù)是數(shù)字字符串或邏輯型,則系統(tǒng)會(huì)自動(dòng)將數(shù)字字符串和邏輯型轉(zhuǎn)換為數(shù)值型,然后進(jìn)行算術(shù)求和運(yùn)算;否則系統(tǒng)由于無法自動(dòng)將操作數(shù)轉(zhuǎn)換為數(shù)值型,則出現(xiàn)“類型不匹配”的出錯(cuò)信息,4.4.3 關(guān)系運(yùn)算符和關(guān)系表達(dá)式,關(guān)系運(yùn)算用于對(duì)兩個(gè)數(shù)據(jù)進(jìn)行比較,

41、比較結(jié)果為邏輯值“True”或“False” 關(guān)系運(yùn)算符 大于 = 大于等于 不等于 = 等于 Like 字符串匹配 Is 用來比較兩個(gè)對(duì)象的引用變量,4.4.3 關(guān)系運(yùn)算符和關(guān)系表達(dá)式,關(guān)系運(yùn)算用于對(duì)兩個(gè)數(shù)據(jù)進(jìn)行比較的規(guī)則: 兩個(gè)數(shù)值型數(shù)據(jù)按大小比較 兩個(gè)字符型數(shù)據(jù)按ASCII值比較:從第一個(gè)字符開始依次比較對(duì)應(yīng)位置字符的ASCII碼值,直到遇到第一對(duì)ASCII碼不相等的字符為止,ASCII碼大的字符串大。若兩字符串相等,則字符串中的每個(gè)字符都相等且字符串長(zhǎng)度也相等;漢字字符大于西文字符,4.4.4 邏輯運(yùn)算符和邏輯表達(dá)式,邏輯運(yùn)算是對(duì)邏輯值進(jìn)行的運(yùn)算,結(jié)果是邏輯型值True/False 邏

42、輯運(yùn)算符 Not邏輯非And邏輯與 Or邏輯或Xor邏輯異或 Eqv等價(jià)Imp蘊(yùn)含 邏輯運(yùn)算符的優(yōu)先次序是: Not And Or Xor Eqr Imp,邏輯運(yùn)算符,4.4.5 表達(dá)式的構(gòu)造與計(jì)算,1表達(dá)式的組成由運(yùn)算符、圓括號(hào)、常量、變量和函數(shù)按一定的規(guī)則組成的一個(gè)有意義的式子就是表達(dá)式 2表達(dá)式的書寫規(guī)則 (1)表達(dá)式中所有運(yùn)算符和操作數(shù)必須并排書寫,不能出現(xiàn)上下標(biāo)和數(shù)學(xué)中的分?jǐn)?shù)線。 (2)在一般情況下,不允許兩個(gè)運(yùn)算符相連,應(yīng)當(dāng)用括號(hào)隔開。 (3)注意運(yùn)算符的優(yōu)先級(jí),為保持運(yùn)算順序,Visual Basic使用圓括號(hào)(),但不能使用方括號(hào)或花括號(hào)。若需要多層括號(hào)時(shí),則括號(hào)必須成對(duì)出現(xiàn)。

43、 (4)Visual Basic中乘號(hào)(*)不能省略,也不能用“ ”代替。,4.4.5 表達(dá)式的構(gòu)造與計(jì)算,3表達(dá)式的計(jì)算 (1)表達(dá)式值的類型 表達(dá)式通過運(yùn)算后有一個(gè)結(jié)果,運(yùn)算結(jié)果的類型由數(shù)據(jù)和運(yùn)算符共同決定。 (2)優(yōu)先級(jí)比較。 同類運(yùn)算符的優(yōu)先級(jí)。前面介紹各種運(yùn)算符時(shí),指出了各類運(yùn)算符中運(yùn)算符的優(yōu)先級(jí),優(yōu)先級(jí)為1的運(yùn)算比優(yōu)先級(jí)2的優(yōu)先級(jí)高,依次類推;相同優(yōu)先級(jí)的,按從左至右的出現(xiàn)順序執(zhí)行運(yùn)算。在運(yùn)算時(shí),需要嚴(yán)格遵守優(yōu)先順序執(zhí)行運(yùn)算。 不同類運(yùn)算符的優(yōu)先級(jí)。在各種不同類型的運(yùn)算中,優(yōu)先順序?yàn)樗阈g(shù)運(yùn)算字符運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算 圓括號(hào)可以改變優(yōu)先順序或使表達(dá)式更清晰。當(dāng)表達(dá)式中含有括號(hào)時(shí),總是

44、先執(zhí)行括號(hào)內(nèi)表達(dá)式的值;對(duì)于多重括號(hào),總是由內(nèi)到外。 。,4.5 常用內(nèi)部函數(shù),函數(shù)調(diào)用格式: 函數(shù)名(參數(shù)列表) 有參函數(shù) 函數(shù)名 無參函數(shù) 說明: (1)調(diào)用時(shí)的參數(shù)要和函數(shù)格式中參數(shù)的個(gè)數(shù)、數(shù)據(jù)類型、含義和取值范圍保持一致。 (2)函數(shù)只能出現(xiàn)在表達(dá)式中,一般不能以單獨(dú)語(yǔ)句形式出現(xiàn)。 (3)注意接收函數(shù)的返回值。 (4)函數(shù)的運(yùn)算優(yōu)先級(jí)高于算術(shù)運(yùn)算符。,4.5.1 數(shù)學(xué)函數(shù),說明: (1)三角函數(shù)的參數(shù)x均是以弧度為單位的,如果已知角度x,可以按x*3.1415926/180將x轉(zhuǎn)換成弧度,然后求其三角函數(shù)。 (2)Visual Basic中沒有提供的函數(shù),可以用數(shù)學(xué)方法求得。 如Vis

45、ual Basic中沒有余切函數(shù),求x弧度的余切值可以表示為1/Tan(x)或Cos(x)/Sin(x)。 Visual Basic中也沒有專門的對(duì)數(shù)函數(shù)Logxy,必須采用換底公式Log(y) / Log(x)表示。 (3)使用數(shù)學(xué)函數(shù)應(yīng)符合數(shù)學(xué)規(guī)定,如Sqr(x)中參數(shù)x不能是負(fù)數(shù),4.5.2 轉(zhuǎn)換函數(shù),(1)Asc與Chr函數(shù) Asc與Chr函數(shù)為一對(duì)互反函數(shù)。若參數(shù)x是由多個(gè)字符組成,則Asc(x)僅返回x中第一個(gè)字符的Ascii碼值。 表達(dá)式Asc(Basic)的值是B的Ascii碼值66。 常常使用Chr(Asc(x) + k)形式返回Ascii碼值與x首字符相差k的字母字符。例如

46、,表達(dá)式Chr(Asc(B) + 1)的值是字符B的下一個(gè)字母字符C。 常常通過使用Chr函數(shù)得到常用的控制字符:Chr(13) 回車符Chr(13) + Chr(10) 回車換行符Chr(7) 響鈴BeepChr(8) 退格符,4.5.2 轉(zhuǎn)換函數(shù),Str、CStr和Val函數(shù) Str(x)將數(shù)值型數(shù)據(jù)x轉(zhuǎn)換為字符串,轉(zhuǎn)換后字符串的第一個(gè)字符是符號(hào)位(正數(shù)用空格表示) CStr(x)函數(shù)將x轉(zhuǎn)換為字符串,轉(zhuǎn)換后的字符串不保留正數(shù)的符號(hào)位。 Str(-123.56) 函數(shù)值為字符串“-123.56”Str(123.56) 函數(shù)值為字符串“ 123.56”,第一個(gè)字符為空格即正數(shù)的符號(hào)位CStr

47、(1122.33) 函數(shù)值為字符串“123.56”,不保留正數(shù)的符號(hào)位 Val(x)函數(shù)是將數(shù)字字符串轉(zhuǎn)換為對(duì)應(yīng)的數(shù)值,在遇到第一個(gè)數(shù)值類型規(guī)定字符外的字符時(shí)轉(zhuǎn)換停止,返回停止前合法的數(shù)值字符串所對(duì)應(yīng)的數(shù)值,即若需轉(zhuǎn)換的字符串的第一個(gè)字符不是數(shù)字,則返回結(jié)果0。 Val(“-123.5AB67”) 函數(shù)值為-123.5Val(“ABC123.567”) 函數(shù)值為0Val(123.567D2) 函數(shù)值為12356.7,4.5.2 轉(zhuǎn)換函數(shù),(3)Fix、Int、Round、CInt、Clng取整函數(shù) Fix(x)函數(shù)為截尾取整,即去掉數(shù)值小數(shù)部分后的數(shù),Int(x)函數(shù)僅取不大于x的最大整數(shù)。因

48、此當(dāng)x=0時(shí)兩者功能相同,而x0.5,則采用向整數(shù)部分進(jìn)1取整;當(dāng)小數(shù)部分=0.5,則采用往數(shù)據(jù)本身最接近的偶數(shù)取整。與Round函數(shù)不同,CInt和Clng函數(shù)還起到將數(shù)據(jù)的類型分別轉(zhuǎn)換為Integer和Long的作用。 Fix(2.5) 函數(shù)值為2 Fix(-2.5) 函數(shù)值為-2 Int(2.5) 函數(shù)值為2Int(-2.5) 函數(shù)值為-3 Round(2.5) 函數(shù)值為2Round(-2.5) 函數(shù)值為-2 Clng(2.5) 函數(shù)值為2Clng(-2.5) 函數(shù)值為-2 CInt(2.57) 函數(shù)值為3Clng(-2.57) 函數(shù)值為-3,4.5.2 轉(zhuǎn)換函數(shù),(3)Fix、Int、

49、Round、CInt、Clng取整函數(shù) 類似于Round(x, n),利用函數(shù)Int(x)可以實(shí)現(xiàn)數(shù)學(xué)上要求的保留數(shù)據(jù)x指定的n位小數(shù),格式如下: Int(x * 10 n + 0.5)/ (10 n) (4)類型轉(zhuǎn)換函數(shù)CStr(x)至CVar(x)等必須在系統(tǒng)可轉(zhuǎn)換的基礎(chǔ)上進(jìn)行,否則出錯(cuò),4.5.3 字符串函數(shù),(1)Visual Basic中字符串長(zhǎng)度是以字符為單位的,即每個(gè)西文字符和每個(gè)漢字都作為一個(gè)字符,占兩個(gè)字節(jié);若要以字節(jié)方式進(jìn)行字符串處理,則可在某些字符串函數(shù)名后加B。例如,Len函數(shù)求字符串的字符數(shù),而LenB函數(shù)求字符串的字節(jié)數(shù),因此LenB(VB6.0教程)返回值為14。

50、,4.5.3 字符串函數(shù),(2)若Len函數(shù)參數(shù)是非字符串型數(shù)據(jù),則將求出該數(shù)據(jù)所占存儲(chǔ)空間的字節(jié)數(shù)。示例代碼如下。 Dim A As Integer, B As Double, c As String * 5, D As String A=32000: B=16.5: c=VB: D=VB6 Print Len(A) 窗體上顯示2,Visual Basic用2個(gè)字節(jié)存儲(chǔ)Integer的數(shù)據(jù) Print Len(B) 窗體上顯示8,Visual Basic用8個(gè)字節(jié)存儲(chǔ)Double的數(shù)據(jù) Print Len(c) 窗體上顯示5,定長(zhǎng)字符串變量的長(zhǎng)度,完全由*號(hào)后面的字符數(shù)決定 Print Le

51、n(D) 窗體上顯示3,變長(zhǎng)字符串變量的長(zhǎng)度由字符串中實(shí)際存放的字符個(gè)數(shù)決定,4.5.3 字符串函數(shù),(3)Mid可以以插入字符串語(yǔ)句形式出現(xiàn)。 格式:Mid(字符串變量, 位置, L)=子字符串 表示把“字符串變量”指定“位置”開始的字符用“子字符串”替換。如含有參數(shù)L,則替換內(nèi)容是“子字符串”左部的L個(gè)字符。 Private Sub Form_Click() Dim S As String S=abABaAB Mid(S, 2)=1234 S=a1234AB Print S 窗體上顯示a1234AB S=abABaAB Mid(S, 2)=123456789 S=a123456 Print

52、 S 窗體上顯示a123456 S=abABaAB Mid(S, 2, 2)=1234 S=a12BaAB Print S 窗體上顯示a12BaAB End Sub,4.5.3 字符串函數(shù),(4)字符串匹配函數(shù)Instr(n, x1, x2, m)的第3個(gè)字符串參數(shù)x2的長(zhǎng)度必須小于65535個(gè)字符,函數(shù)返回的值是長(zhǎng)整型數(shù);函數(shù)的最后一個(gè)參數(shù)m是可選的整型數(shù),用來指定字符串比較方式:取值為0,表示進(jìn)行二進(jìn)制比較,區(qū)分字母的大小寫;取值為1,表示在比較時(shí)忽略大小寫;取值為2,表示基于數(shù)據(jù)庫(kù)中包含的信息進(jìn)行比較(僅用于Microsoft Access);默認(rèn)情況下為0,即區(qū)分大小寫比較。 例如,表

53、達(dá)式InStr(1, abABaAB, AB, 1) 的值是1。 通過以下語(yǔ)句限定比較方式。 Option Compare Binary 取值為0 Option Compare Text 取值為1 Option Compare DataBase 取值為2,4.5.3 字符串函數(shù),(5)String函數(shù)的第2個(gè)參數(shù)除了可以是字符串,也可以是某個(gè)字符的ASCII碼值,此時(shí),String函數(shù)返回ASCII碼對(duì)應(yīng)的n個(gè)字符。 例如,表達(dá)式String(5, 48)的值是00000,其中48是字符0的ASCII碼值。,4.5.4 日期函數(shù),日期與時(shí)間函數(shù): Year、Month、Day、Weekday函

54、數(shù)中變量可以是日期型數(shù)據(jù)、數(shù)值表達(dá)式也可以是字符串表達(dá)式,當(dāng)為數(shù)值表達(dá)式時(shí),表示相對(duì)于1899年12月30日前后的天數(shù),4.5.5 Rnd函數(shù)與Randomize語(yǔ)句,1隨機(jī)函數(shù)Rnd 隨機(jī)數(shù)函數(shù)Rnd返回一個(gè)0, 1間的雙精度數(shù)。若要產(chǎn)生一個(gè)a, b區(qū)間的隨機(jī)整數(shù)公式:Int(Rnd * (b a + 1) + a)。 (1)產(chǎn)生6位隨機(jī)整數(shù)Int(Rnd * (999999 100000 + 1) + 100000) (2)產(chǎn)生0.002, 0.5之間隨機(jī)數(shù),最小數(shù)據(jù)間隔為0.001Int(Rnd * (500 2 + 1) + 2) / 1000 先生成2, 500之間的隨機(jī)整數(shù),后除以

55、1000,4.5.5 Rnd函數(shù)與Randomize語(yǔ)句,2Randomize語(yǔ)句 系統(tǒng)產(chǎn)生的隨機(jī)數(shù)是由種子來決定的,默認(rèn)情況下,每次運(yùn)行同一個(gè)應(yīng)用程序,Visual Basic都提供相同的種子,即Rnd將產(chǎn)生相同的隨機(jī)數(shù)序列。可以通過改變種子的方法,使每次產(chǎn)生不同的隨機(jī)數(shù)序列。 Randomize number 該語(yǔ)句作用是初始化Visual Basic的隨機(jī)函數(shù)發(fā)生器(為其賦初值)其中,number為新的種子值,若省略,則使用系統(tǒng)計(jì)時(shí)器返回的值作為新的種子值。,4.5.6 格式輸出Format函數(shù),Visual Basic在顯示數(shù)字的格式上比較靈活,對(duì)于數(shù)值、日期和字符串可使用Format函數(shù),按指定的標(biāo)準(zhǔn)格式輸出。 Format函數(shù)的格式: Format(表達(dá)式, 格式字符串) 說明: (1)表達(dá)式是需要格式轉(zhuǎn)化的數(shù)值、日期和字符串類型表達(dá)式。 (2)格式字符串表示指定的輸出格式,用雙引號(hào)括起;格式字符串是由格式符構(gòu)成的,表4-11僅列舉常用數(shù)值格式符,日

溫馨提示

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