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

下載本文檔

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

文檔簡介

第4章VB程序設(shè)計基礎(chǔ)本章內(nèi)容及要求:4.1數(shù)據(jù)類型4.2常量和變量4.3變量的作用域4.4常用內(nèi)部函數(shù)4.5字符處理與字符串函數(shù)4.6運算符與表達式第4章VB程序設(shè)計基礎(chǔ)本章內(nèi)容及要求:4.1數(shù)據(jù)類型4.1數(shù)據(jù)類型數(shù)據(jù)是信息在計算機內(nèi)的表現(xiàn)形式,也是程序處理的對象。VB提供了系統(tǒng)定義的基本數(shù)據(jù)類型,還允許用戶定義自己的數(shù)據(jù)類型。數(shù)據(jù)類型基本類型字符串型數(shù)值型整型數(shù)整數(shù)型長整數(shù)浮點數(shù)單精度雙精度貨幣型字節(jié)型布爾型日期型變體型對象型Decimal型用戶定義類型記錄類型枚舉類型4.1數(shù)據(jù)類型數(shù)據(jù)是信息在計算機內(nèi)的表現(xiàn)形式,也是程序處理4.1數(shù)據(jù)類型一、基本數(shù)據(jù)類型1.字符串型String字符串是一個字符序列,由ASCII字符組成。字符串通常要用雙引號括起來。例如: “Hello!” "湖南省衡陽市" “8888” "***” “”

‘空字符串 ““

‘有一個空格的字符串若字符串中有雙引號,例如ABD“XYZ,則用連續(xù)兩個雙引號表示,即:"ABD""XYZ“4.1數(shù)據(jù)類型一、基本數(shù)據(jù)類型1.字符串型String4.1數(shù)據(jù)類型VB中的字符串分為兩種:變長字符串和定長字符串。變長字符串的長度是不確定的,可以從0~231(約21億)個字符。定長字符串含有確定個數(shù)的字符,最大長度不超過216(65535)個字符。4.1數(shù)據(jù)類型VB中的字符串分為兩種:變長字符串和定長字符4.1數(shù)據(jù)類型2.數(shù)值型數(shù)值型數(shù)據(jù)分為整型數(shù)和浮點數(shù)兩類。(1)整型數(shù)整型數(shù)是不帶小數(shù)點和指數(shù)符號的數(shù),在機器內(nèi)部以二進制補碼形式表示。正數(shù)的補碼和它的二進制形式(即源碼)相同;負數(shù)的補碼為該數(shù)的絕對值的二進制形式取反加1。例如,整型數(shù)4,-4分別以下面的形式存放:(最高位為符號位,其中0為正,1為負)4

00000000

00000100-4

11111111

11111100

整數(shù)的運算速度快,而且比其他數(shù)據(jù)類型占據(jù)的內(nèi)存少。4.1數(shù)據(jù)類型2.數(shù)值型4.1數(shù)據(jù)類型整型數(shù)又分為整數(shù)和長整數(shù):整數(shù)Integer以2個字節(jié)(16位)的二進制數(shù)存儲,取值范圍為-32,768~32,767。長整數(shù)Long以4個字節(jié)(32位)的二進制數(shù)存儲,取值范圍為-2,147,483,648~2,147,483,647。4.1數(shù)據(jù)類型整型數(shù)又分為整數(shù)和長整數(shù):4.1數(shù)據(jù)類型二進制十進制00000000

00000000000000000

00000001100000000

00000010200000000

000000113…

……

…01111111

111111113276710000000

00000000-3276810000000

00000001-3276710000000

00000010-32766…

……

…11111111

11111110-211111111

11111111-1思考:為什么16位整數(shù)Integer的取值范圍為-32,768~32,767?4.1數(shù)據(jù)類型二進制十進制0000000000000004.1數(shù)據(jù)類型注意:16位整數(shù)Integer如果超出了這個取值范圍(-32,768~32,767),數(shù)據(jù)便會溢出。請看下面的代碼:PrivateSubForm_Load()

DimaAsInteger

a=32767

a=a+1

MsgBoxaEndSub4.1數(shù)據(jù)類型注意:16位整數(shù)Integer如果超出了4.1數(shù)據(jù)類型(2)浮點數(shù)浮點數(shù)也稱實數(shù),是帶有小數(shù)部分的數(shù)值。分為單精度浮點數(shù)和雙精度浮點數(shù)。單精度Single以4個字節(jié)(32位)存儲,可以精確到7位十進制數(shù)。其中符號占1位,指數(shù)占8位,其余23位表示尾數(shù),還有一個附加的隱含位。其負數(shù)的取值范圍為-3.402823E+38

~

-1.401298E-45,正數(shù)的取值范圍為1.401298E-45

~

3.402823E+38。表示形式為:±n.nE±m(xù)其中n.n是尾數(shù),m是指數(shù)(以10為底的冪)例:-123.4E-3或-123.4e-3,相當(dāng)于-0.1234

1.2345E3或1.2345e3,相當(dāng)于1234.54.1數(shù)據(jù)類型(2)浮點數(shù)4.1數(shù)據(jù)類型雙精度Double以8個字節(jié)(64位)存儲,可以精確到15到16位十進制數(shù)。其中符號占1位,指數(shù)占11位,其余52位表示尾數(shù),還有一個附加的隱含位。表示形式為:±n.nD±m(xù)其中n.n是尾數(shù),m是指數(shù)(以10為底的冪)

例:123.4567D3或123.4567d+3,相當(dāng)于123456.74.1數(shù)據(jù)類型雙精度Double4.1數(shù)據(jù)類型(3)貨幣型Currency貨幣數(shù)據(jù)類型通常用于表示錢款。以8個字節(jié)(64位)存儲,精確到小數(shù)點后面4位(小數(shù)點前面有15位)。在小數(shù)點后4位以后的數(shù)字將被舍去。其取值范圍為-922,337,203,685,477.5808

~-922,337,203,685,477.5807浮點數(shù)中的小數(shù)點是“浮動”的,小數(shù)點可以出現(xiàn)在數(shù)的任何位置,而貨幣型數(shù)據(jù)的小數(shù)點是固定的,因此稱為定點數(shù)據(jù)類型。

4.1數(shù)據(jù)類型(3)貨幣型Currency4.1數(shù)據(jù)類型(4)字節(jié)型Byte以1個字節(jié)(8位)的無符號二進制數(shù)存儲,其取值范圍為0~255。

注:在實際應(yīng)用中,應(yīng)根據(jù)需要使用數(shù)據(jù)類型。能用整型就不要用浮點型或貨幣型;如果要求的精度不高,則應(yīng)使用單精度變量。這樣不僅節(jié)省內(nèi)存空間,而且可以提高處理速度。

4.1數(shù)據(jù)類型(4)字節(jié)型Byte4.1數(shù)據(jù)類型3.布爾型Boolean

布爾型數(shù)據(jù)是一個邏輯值,用2個字節(jié)存儲,它只取兩個值:True/False。布爾型變量的默認值為False。將邏輯數(shù)據(jù)轉(zhuǎn)換成整型時:True為-1,F(xiàn)alse為0;其它數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)時:非0為True,0為False。例如,下面的代碼定義一個布爾型變量,并輸出該變量:DimmyblnAsBooleanmybln=3MsgBoxmybln4.1數(shù)據(jù)類型3.布爾型Boolean4.1數(shù)據(jù)類型4.日期型Date

日期型數(shù)據(jù)占用8個字節(jié),以浮點數(shù)形式存儲。小數(shù)點左邊的數(shù)值表示日期(距離1899-12-30的天數(shù)),小數(shù)點右邊的數(shù)值表示時間。日期型數(shù)據(jù)的日期表示范圍:100年1月1日~9999年12月31日,時間表示范圍:0:00:00~23:59:59。日期常數(shù)必須用“#”符號括起來。

例如:下面的幾種日期型數(shù)據(jù)的格式都是合法的:

#9/1/2009#或#2009-09-01# #September

1,2009#

#08:30:00AM#

#2002-5-414:30:00PM#4.1數(shù)據(jù)類型4.日期型Date4.1數(shù)據(jù)類型5.變體型Variant變體數(shù)據(jù)類型是一種可變的數(shù)據(jù)類型,可以表示任何值,包括數(shù)值、字符串、日期/時間等。當(dāng)變體數(shù)據(jù)為數(shù)值時,以16個字節(jié)存儲,最大可達Double的取值范圍;當(dāng)變體數(shù)據(jù)為字符時,以22字節(jié)+字符串長,與變長String有相同的取值范圍

。6.對象型Object對象型數(shù)據(jù)作為32位(4個字節(jié))地址來存儲,該地址可以引用程序中的任何對象。4.1數(shù)據(jù)類型5.變體型Variant4.1數(shù)據(jù)類型7.Decimal數(shù)據(jù)類型

Decimal數(shù)據(jù)以12個字節(jié)存儲,最多支持29個有效數(shù)位,在內(nèi)存中的表示形式比浮點數(shù)更精確。適用于要求使用大量有效的整數(shù)及小數(shù)位數(shù),并且不能容忍舍入誤差的財務(wù)計算。

Decimal數(shù)據(jù)類型只能在變體類型(Variant)中使用,不能把一個變量聲明為Decimal類型。4.1數(shù)據(jù)類型7.Decimal數(shù)據(jù)類型4.1數(shù)據(jù)類型二、用戶定義的數(shù)據(jù)類型用戶自定義類型,也稱為記錄類型,通過Type語句來實現(xiàn),其語法格式如下: Type數(shù)據(jù)類型名

元素名As類型名

元素名As類型名

… End

Type

4.1數(shù)據(jù)類型二、用戶定義的數(shù)據(jù)類型用戶自定義類型,也稱4.1數(shù)據(jù)類型例如:對于一個學(xué)生的“學(xué)號”、“姓名”、“性別”、“年齡”、“入學(xué)成績”等數(shù)據(jù),為了處理數(shù)據(jù)的方便,常常需要把這些數(shù)據(jù)定義成一個新的數(shù)據(jù)類型(如Student類型)

TypeStudent XhAsString XmAsString XbAsString NlAsInteger ScoreAsSingle EndType二、用戶定義的數(shù)據(jù)類型4.1數(shù)據(jù)類型例如:對于一個學(xué)生的“學(xué)號”、“姓名”4.1數(shù)據(jù)類型使用Type語句,應(yīng)注意以下幾點:1.記錄類型的定義必須放在模塊(包括標(biāo)準(zhǔn)模塊和窗體模塊)的聲明部分,在使用記錄類型之前,必須用Type語句加以定義。2.一般情況下,記錄類型在標(biāo)準(zhǔn)模塊中定義,其變量可以出現(xiàn)在工程的任何地方。當(dāng)在標(biāo)準(zhǔn)模塊中定義時,關(guān)鍵字Type前可以有Public(默認)或Private;而如果在窗體模塊中定義,則必須在前面加上關(guān)鍵字Private。3.在記錄類型中不能使用動態(tài)數(shù)組。4.1數(shù)據(jù)類型使用Type語句,應(yīng)注意以下幾點:4.1數(shù)據(jù)類型下面的代碼聲明了一個Student類型變量st,然后為其各個元素賦初值,最后輸出:PrivateSubForm_Load()DimstAsStudentst.Xh="20050001"st.Xm="王一"st.Xb="男"st.Nl=17st.Score=92.5MsgBox"學(xué)號:"&st.Xh&Chr(10)&"姓名:"&st.Xm&Chr(10)&"性別:"&_st.Xb&Chr(10)&"年齡:"&st.Nl&Chr(10)&"入學(xué)成績:"&st.ScoreEndSub4.1數(shù)據(jù)類型下面的代碼聲明了一個Student類型變量4.2常量和變量一、常量在VB中有三類常量:普通常量、符號常量和系統(tǒng)常量

1.普通常量普通常量指的是具體的常數(shù),其類型有字符串型、整型、浮點型、布爾型、日期型等。不同類型的數(shù)據(jù)可以常量的形式出現(xiàn),也可以變量的形式出現(xiàn)。常量在程序運行過程中其值不會發(fā)生變化。而變量的值是可變的,它代表內(nèi)存中指定的存儲單元。4.2常量和變量一、常量在VB中有三類常量:普通常量4.2常量和變量整型常數(shù)有3種形式:十進制:由八進制數(shù)字(0~9)組成。如125,0,-89。八進制:由八進制數(shù)字(0~7)組成。以&或&O(字母O)開頭,以&結(jié)尾。例如:&O25&表示八進制整數(shù)25,即(25)8

,等于十進制數(shù)21。十六進制:由十六進制數(shù)字(0~9及A~F)組成。以&H開頭,以&結(jié)尾。例如:&H25&表示十六進制整數(shù)25,即(25)16

,等于十進制數(shù)37。VB中的顏色數(shù)據(jù)常常用十六進制整數(shù)表示。4.2常量和變量整型常數(shù)有3種形式:4.2常量和變量

VB在判斷常量類型時存在多義性。例如,值3.01可能是單精度類型,也可能是雙精度類型或貨幣類型。為了顯式地指明常數(shù)的類型,可以在常數(shù)后面加上類型說明符。 % 整型 & 長整型 ! 單精度浮點數(shù) # 雙精度浮點數(shù) @ 貨幣型 $ 字符串型字節(jié)、布爾、日期、對象及變體類型沒有類型說明符。4.2常量和變量VB在判斷常量類型時存在多義性。例如,4.2常量和變量

2.符號常量在程序中,某個常量多次被使用,則可以使用一個符號來代替該常量,這樣不僅在書寫上方便,而且有效地改進了程序的可讀性和可維護性。

VB中使用關(guān)鍵字Const聲明符號常量。其格式如下:Const常量名

[As類型|類型符號]=表達式[

,常量名=表達式]注:表達式由普通常量、算術(shù)和邏輯運算符組成,但不能使用變量及函數(shù)。例如:

ConstMaxchars=254,Maxbue=Maxchars+1

’注意順序

ConstPI#=3.1415926等價于:

ConstPIAsDouble=3.14159264.2常量和變量2.符號常量4.2常量和變量

3.系統(tǒng)常量

VB系統(tǒng)提供了應(yīng)用程序和控件的系統(tǒng)定義常數(shù)。

例如,要將文本框Text1的前景顏色設(shè)置為紅色,可以使用下面的語句:Text1.ForeColor=vbRed這里的vbRed就是系統(tǒng)常量,這比直接使用16進制數(shù)來設(shè)置要直觀得多。又如,窗口狀態(tài)屬性WindowsState可取0,1,2三個值,對應(yīng)三種不同狀態(tài)。在程序中使用語句:Myform.WindowsState=vbMaxmized,將窗口最大化,顯然要比使用語句Myform.WindowsState=2

易于閱讀和理解。4.2常量和變量3.系統(tǒng)常量4.2常量和變量二、變量變量是在程序運行時,其值不斷發(fā)生改變的量。一個變量對應(yīng)著計算機內(nèi)存中的一塊存儲單元。

例如,有兩個存儲單元,名稱分別為User和Password,存放的值分別為“管理員”和“111”,如圖所示:也可以將這兩個存儲單元的值改為“普通用戶”和“222”:管理員User111Password普通用戶User222Password4.2常量和變量二、變量變量是在程序運行時,其值不斷發(fā)4.2常量和變量1.變量命名規(guī)則只能由英文字母、漢字、數(shù)字和下劃線組成,中間不能出現(xiàn)空格或小數(shù)點等;例如:變量名file_name是合法的,而filename是非法的。必須以字母或漢字開頭,最后一個符號可以是類型說明符;例如:book3、a%這兩個變量名是合法的;而3book是非法的。VB中不區(qū)分變量名的大小寫;例如,Hello、HELLO、hello指的是同一個名字。4.2常量和變量1.變量命名規(guī)則4.2常量和變量變量名長度可達255個字符;VB中的關(guān)鍵字不能單獨作為變量名;VB關(guān)鍵字包括預(yù)定義語句(If,F(xiàn)or,Loop等)、操作符(And,Mod等)和函數(shù)(Int,Sqr等)。例如,Print是非法變量名,但Print_3或Print3是合法的。為了增加程序的可讀性,可在變量名前加一個縮寫的前綴來表明該變量的數(shù)據(jù)類型。變量名一般大小寫混合使用。例如:strAbc(字符串變量)

intCount(整型變量)4.2常量和變量變量名長度可達255個字符;[思考與練習(xí)]1.下列哪個符號不能作為VB中的變量名?(1)ABCabc(2)b1234(3)28wed(4)cmd2.下列符號哪一個是VB中的合法變量名?(1)x23(2)8xy(3)END(4)x8[B]變量命名規(guī)則[思考與練習(xí)]變量命名規(guī)則4.2常量和變量2.變量的聲明在VB程序中,使用變量前,一般要先聲明變量的名稱和數(shù)據(jù)類型。

VB中可以強制顯式聲明變量,方法是在窗體模塊、標(biāo)準(zhǔn)模塊和類模塊的通用聲明段中添加語句:

Option

Explicit也可以設(shè)置為自動添加,方法是:選擇“工具”“選項”“要求變量聲明”。建議在程序設(shè)計的開始就設(shè)置。4.2常量和變量2.變量的聲明4.2常量和變量變量的聲明可以采用三種方式:用聲明語句顯式聲明變量用DefType語句聲明變量隱式聲明變量(1)用聲明語句顯式聲明變量格式:Dim|Static|Public|Private變量名

As

數(shù)據(jù)類型4.2常量和變量變量的聲明可以采用三種方式:4.2常量和變量Dim用于在標(biāo)準(zhǔn)模塊、窗體模塊中定義模塊級變量或在過程中定義局部變量。例如:

Dim

Str

As

String

DimTotalAsInteger

DimVar1AsString,Var2AsDouble

‘定義多個變量

DimVar1,Var2AsInteger

‘注意:該語句并不能把兩個變量同時定義為整型

4.2常量和變量Dim4.2常量和變量

可以使用類型說明符來替代As語句:Dim

Str$DimTotal%DimVar1$,Var2#則在引用該變量時可以省略類型說明符。例如,下面兩個語句都是正確的: Var1="Thisisastring" Var1$="Thisisastring“4.2常量和變量可以使用類型說明符來替代As語句:4.1數(shù)據(jù)類型用AsString

可以定義變長字符串變量,也可以定義為定長字符串變量。變長字符串變量:其長度取決于賦給它的字符串常量的長度。例如:DimNamevarAsString

‘定義為變長字符串變量

Namevar=“湖南省衡陽市”定長字符串變量:事先定義字符串的長度,在程序運行過程中,始終保持其長度不變。當(dāng)給它賦值時,不足的部分用空格填滿;多出的字符被截去。例如:DimMyNameAsString*4

‘定義為定長字符串變量

MyName=“湖南省衡陽市"

4.1數(shù)據(jù)類型用AsString可以定義變長字符串變量4.2常量和變量Static

Static用于在過程中定義靜態(tài)變量,每次引用該變量定義時,其值會繼續(xù)保留。由Dim定義的變量稱為自動變量,每次引用該變量定義時,變量值會被重新設(shè)置(數(shù)值變量設(shè)置為0,字符串變量設(shè)置為空)。例如:下面的程序中變量Var1和Var2的值會相同嗎? PrivateSubForm_Click()

DimVar1AsInteger

StaticVar2AsInteger

Var1=Var1+1

Var2=Var2+1

PrintVar1,Var2

EndSub每單擊一次窗體,靜態(tài)變量Var2累加1,而自動變量Var1會被置04.2常量和變量Static4.2常量和變量Public用來在標(biāo)準(zhǔn)模塊中定義全局變量。Private用來在標(biāo)準(zhǔn)模塊、窗體模塊的聲明部分定義模塊級變量。4.2常量和變量Public4.2常量和變量(2)

用DefType語句聲明變量用DefType語句可以在標(biāo)準(zhǔn)模塊、窗體模塊的聲明部分定義變量,且只對它所在的模塊起作用。一般格式:Def

Type字母范圍

Type可以是Int、Lng、Sng、Dbl、Cur、Str、Byte、Bool、Date、Obj、Var。DefType語句中說明的字母、以及以該字母開頭的變量名都是那種類型的變量名。例如:DefDbl

L-P

‘凡是變量名以字母L到P開頭的變量都定義為雙精度型。類型說明符(%&#!@$)總是比DefType語句優(yōu)先起作用。4.2常量和變量(2)用DefType語句聲明變量4.2常量和變量(3)

隱式聲明變量

VB允許用戶不顯式聲明變量而直接使用,系統(tǒng)臨時為新變量分配存儲空間并使用,這就是隱式聲明。所有隱式聲明的變量都是Variant數(shù)據(jù)類型。VB根據(jù)程序中賦予變量的值來自動調(diào)整變量的類型。下面的程序中使用的變量a,b,Total都沒有事先定義: PrivateSubForm_Click() Total%=0 a=10:b=20 Total=a+b Print“Total=";Total EndSub4.2常量和變量(3)隱式聲明變量下面的程序中使用的變量4.3變量的作用域

每個變量都有它的作用范圍,即作用域。根據(jù)變量在VB應(yīng)用程序中的定義位置和所使用的定義語句的不同,可以分為局部變量、模塊變量和全局變量。

VB應(yīng)用程序的構(gòu)成應(yīng)用程序窗體模塊聲明部分通用過程事件過程標(biāo)準(zhǔn)模塊聲明部分通用過程4.3變量的作用域每個變量都有它的作用范圍,即作用域。4.3變量的作用域在過程(事件過程或通用過程)內(nèi)定義的變量叫做局部變量,其作用域是它所在的過程。因此,在不同的過程中可以定義相同名字的局部變量。局部變量在過程內(nèi)用Dim、Static定義,例如:

SubCommand1_Click() DimTempnumAsInteger StaticTotalAsDouble EndSub一、局部變量Local4.3變量的作用域在過程(事件過程或通用過程)內(nèi)定義的4.3變量的作用域模塊變量包括窗體變量和標(biāo)準(zhǔn)模塊變量。窗體變量可用于該窗體內(nèi)的所有過程(事件過程或通用過程)。當(dāng)同一窗體內(nèi)的不同過程使用相同的變量時,必須定義窗體層變量。窗體層變量不能隱式聲明。方法是:在程序代碼窗口的“對象”框中選擇“通用”,并在“過程”框中選擇“聲明”。標(biāo)準(zhǔn)模塊中模塊層變量的聲明和使用與窗體層變量類似。

二、模塊變量Module4.3變量的作用域模塊變量包括窗體變量和標(biāo)準(zhǔn)模塊變量。4.3變量的作用域默認情況下,模塊級變量對該模塊中的所有過程都是可見的,但對其他模塊不可見。模塊級變量在模塊的聲明部分用Private、Dim聲明。例如: PrivateintTempAsInteger或 Dim

intTempAsInteger

4.3變量的作用域默認情況下,模塊級變量對該模塊中的所4.3變量的作用域全局變量的作用域最大,可以在工程的每個模塊、每個過程中使用。全局變量必須在標(biāo)準(zhǔn)模塊的聲明部分中聲明,不能在過程或窗體模塊中聲明;并且,全局變量必須用Public或Global語句聲明,不能用Dim語句聲明。例如: PublicintNumberAsInteger

三、全局變量Public4.3變量的作用域全局變量的作用域最大,可以在工程的每4.3變量的作用域?qū)τ诰植孔兞縼碚f,可以不用Dim或Static定義,而是在需要時直接給出變量名(不建議)。默認聲明只適用于局部變量,模塊級變量和全局變量必須用Dim或Public語句顯式聲明。默認聲明局部變量,有可能使程序出現(xiàn)無法預(yù)料的結(jié)果,而且較難查出錯誤。為了安全起見,最好能顯式地聲明程序中使用的所有變量。下面通過實例說明。四、默認聲明(隱式聲明)4.3變量的作用域?qū)τ诰植孔兞縼碚f,可以不用Dim或S4.4常用內(nèi)部函數(shù)

VB提供了上百種內(nèi)部函數(shù),要求掌握表4.4中常用函數(shù)的功能及使用:數(shù)學(xué)函數(shù)、轉(zhuǎn)換函數(shù)、日期和時間函數(shù)、隨機數(shù)函數(shù)。函數(shù)調(diào)用方法:

函數(shù)名(參數(shù)列表)有參函數(shù)函數(shù)名無參函數(shù)說明:(1)使用內(nèi)部函數(shù)要注意參數(shù)的個數(shù)及其參數(shù)的數(shù)據(jù)類型;(2)要注意函數(shù)的定義域(自變量或參數(shù)的取值范圍);(3)要注意函數(shù)的值域。4.4常用內(nèi)部函數(shù)VB提供了上百種內(nèi)部函數(shù),要求掌握表4.4常用內(nèi)部函數(shù)常用的數(shù)學(xué)函數(shù)有:

Sin(x)

Cos(x) Tan(x) Atn(x)

Abs(x)

Sgn(x) Sqr(x) Exp(x)說明:

(1)在三角函數(shù)中的自變量是以弧度為單位。如:sin300sin(3.14159/180*30)

(2)

sqr(x)函數(shù)要求自變量x>=0

(3)

Exp(x)函數(shù)要求自變量x不能超過709.782712893,否則函數(shù)的值就會超出實數(shù)在計算機中的表示范圍,導(dǎo)致錯誤發(fā)生。一、數(shù)學(xué)函數(shù)4.4常用內(nèi)部函數(shù)常用的數(shù)學(xué)函數(shù)有:一、數(shù)學(xué)函數(shù)4.4常用內(nèi)部函數(shù)常用轉(zhuǎn)換函數(shù)見表4.4,相關(guān)說明如下:(1)要區(qū)別兩個取整函數(shù)int()和fix()Fix(N)為截斷取整,即去掉小數(shù)后的數(shù)。

Int(N)為不大于N的最大整數(shù)。例如:Fix(9.59)=9,Int(9.59)=9Fix(-9.59)=-9,Int(-9.59)=-10(2)Asc("Abcd")

值為:65(只取首字母的AscII值)

(3)Val(“abc123”)

值為:0,

Val("1.2sa10")值為1.2

注意:Val()函數(shù)只將最前面的數(shù)字字符轉(zhuǎn)換為數(shù)值。二、轉(zhuǎn)換函數(shù)4.4常用內(nèi)部函數(shù)常用轉(zhuǎn)換函數(shù)見表4.4,相關(guān)說明如下:4.4常用內(nèi)部函數(shù)

1.Date、Now、Time函數(shù)

Date函數(shù):返回當(dāng)前系統(tǒng)日期。語法:Date

Now函數(shù):返回當(dāng)前系統(tǒng)日期和時間。語法:Now

Time函數(shù):返回當(dāng)前系統(tǒng)時間。語法:Time

2.Year、Day、Month函數(shù)(年、月、日)

Year函數(shù):返回年份。語法:Year(Now)

Day函數(shù):返回年份。語法:Day(Now)

Month函數(shù):返回年份。語法:Month(Now)

3.Hour、Minute、Second函數(shù)(時、分、秒)

Hour函數(shù):返回小時。語法:Hour(Now)

Minute函數(shù):返回分鐘。語法:Minute(Now)

Second函數(shù):返回秒。語法:Second(Now)

三、日期和時間函數(shù)4.4常用內(nèi)部函數(shù)1.Date、Now、Time函數(shù)三4.4常用內(nèi)部函數(shù)

語法:Rnd[(number)]

Rnd函數(shù)可以省略參數(shù)和括號。返回[0~1)(即包括0,但不包括1)之間的單精度隨機數(shù)。

四、隨機數(shù)函數(shù)Rnd如果number的值Rnd生成小于0每次都使用number作為隨機數(shù)種子得到相同的結(jié)果大于0序列中的下一個隨機數(shù)等于0最近生成的數(shù)默認序列中的下一個隨機數(shù)4.4常用內(nèi)部函數(shù)語法:Rnd[(number)]四、隨4.4常用內(nèi)部函數(shù)若要產(chǎn)生1~100的隨機整數(shù),則可通過下面的表達式來實現(xiàn):

Int(Rnd*100)+1

'包括1和100

Int(Rnd*99)+1

'包括1,但不包括100思考:怎樣產(chǎn)生[N,M]區(qū)間的隨機數(shù)?Int(Rnd*(M-N+1))+N4.4常用內(nèi)部函數(shù)若要產(chǎn)生1~100的隨機整數(shù),則可通4.4常用內(nèi)部函數(shù)當(dāng)應(yīng)用程序不斷地重復(fù)使用隨機數(shù)時,同一序列的隨機數(shù)會反復(fù)出現(xiàn),用Randomize語句可以消除這種情況,其格式為:Randomize

(

x

)

功能:初始化隨機數(shù)生成器。如省略參數(shù),則用系統(tǒng)計時器返回的值作為新的種子值。例如:下段程序每次運行,將產(chǎn)生不同序列的20個[10,99]之間的隨機整數(shù)。PrivateSubForm_click()

Randomize

Fori=1To20PrintInt(Rnd*90)+10;NextiPrintEndSub4.4常用內(nèi)部函數(shù)當(dāng)應(yīng)用程序不斷地重復(fù)使用隨機數(shù)時,同4.5字符處理與字符串函數(shù)

ANSI方式:早前的版本采用。西文字符用一個字節(jié)編碼,中文字符用兩個字節(jié)編碼。一個中文字符相當(dāng)于兩個西文字符。

UniCode方式:4.0以后的版本采用。中西文字符統(tǒng)一編碼,一個英文字符或一個漢字都看作一個字符,均用兩個字節(jié)編碼。PrintLen("BASIC程序設(shè)計")‘9PrintLenB(“BASIC程序設(shè)計”)

18注:VB6.0中,LenB返回的是用于存儲字符串的字節(jié)數(shù),而不是返回字符串中字符的數(shù)量。

一、VB的字符處理機制4.5字符處理與字符串函數(shù)ANSI方式:早前的版本采用。4.5字符處理與字符串函數(shù)為了實現(xiàn)ANSI與UniCode之間的轉(zhuǎn)換,VB提供了一個轉(zhuǎn)換函數(shù)StrConv,格式如下:新字符串=StrConv(待轉(zhuǎn)換字符串,轉(zhuǎn)換格式)其中,“轉(zhuǎn)換格式”可以取值為:

vbUnicode(值為64)‘將ANSI轉(zhuǎn)換為UniCode

vbFromUnicode(值為128)‘將UniCode轉(zhuǎn)換為ANSI例4.1編寫程序,測試StrConv函數(shù)功能。

一、VB的字符處理機制4.5字符處理與字符串函數(shù)為了實現(xiàn)ANSI與UniCo4.5字符處理與字符串函數(shù)

1.去空格函數(shù)

Ltrim$(字符串):去除字符串左邊的空白字符;$可以省略。

RTrim$(字符串)

:去除字符串右邊的空白字符;

Trim$(字符串):去除字符串兩邊的空白字符。

例如:a$="GoodMorning"

b$=LTrim$(a$)

c$=RTrim$(b$)

Printb$;c$;"ABC“輸出結(jié)果:Good

Morning

Good

MorningABC

二、字符串函數(shù)4.5字符處理與字符串函數(shù)1.去空格函數(shù)二、字符串函數(shù)4.5字符處理與字符串函數(shù)

2.字符串截取函數(shù)左部截?。篖eft$(字符串,n)返回字符串的前n個字符。例:Left$(“ABCDEF”,4)中部截?。篗id$(字符串,

p

[,

n

]

)從第p個字符開始,向后截取n個字符。n可以省略,此時,將從第p個字符開始向后截取到字符串的末尾。

例如:Mid$(“ABCDEFGHIJK”,3,4)右部截?。篟ight$(字符串,n)返回字符串的最后n個字符。例:Right$(“ABCDEFGHIJK”,4)二、字符串函數(shù)4.5字符處理與字符串函數(shù)2.字符串截取函數(shù)二、字符串函4.5字符處理與字符串函數(shù)

3.字符串長度測試函數(shù)格式:Len(字符串):返回字符串的長度(長整型值)。

Len(變量名):返回存儲變量所需的字節(jié)數(shù)。例如:Len(“ABCDEFGHIJK”)

‘返回11

Len(testvar%)

‘返回2Len(testvar!)

‘返回4Len(testvar#)

‘返回8

二、字符串函數(shù)4.5字符處理與字符串函數(shù)3.字符串長度測試函數(shù)二、字符4.5字符處理與字符串函數(shù)

4.

String$函數(shù)格式:String$(n,ASCII碼)

或String$(n,字符串)

當(dāng)為ASCII碼時,返回由該ASCII碼對應(yīng)的n個字符;當(dāng)為字符串時,返回由第一個字符組成的n個字符。例如: a$=String$(5,65) b$=String$(5,"-") c$=String$(5,"abcd") Printa$;b$;c$輸出結(jié)果:AAAAA-----aaaaa

二、字符串函數(shù)4.5字符處理與字符串函數(shù)4.String$函數(shù)二、字4.5字符處理與字符串函數(shù)

5.空格函數(shù)格式:Space$(n)

返回n個空格。例如: a$="a"+Space(4)+"b“輸出結(jié)果:a

b

二、字符串函數(shù)4.5字符處理與字符串函數(shù)5.空格函數(shù)二、字符串函數(shù)4.5字符處理與字符串函數(shù)

6.字符串匹配函數(shù)

格式:InStr(

[首字符位置,

]字符串1

,字符串2

[

,

n

]

)

該函數(shù)在“字符串1”中查找“字符串2”,如果找到,就返回“字符串2”的第一個字符在“字符串1”中的位置?!白址?”的第一個字符的位置為1。例如:

a$="MicrosoftVisualBasic" x=InStr(a$,"Visual") Printx輸出結(jié)果:11

二、字符串函數(shù)4.5字符處理與字符串函數(shù)6.字符串匹配函數(shù)二、字符串函

格式:InStr(

[首字符位置,

]字符串1

,字符串2

[

,

n

]

)說明:“字符串2”的長度必須小于65,535個字符;InStr的返回值是一個長整型數(shù)。在不同的條件下,函數(shù)的返回值也不一樣(見表4.5)?!笆鬃址恢谩笔强蛇x的。如果有,則從該位置開始查找,否則從起始位置開始查找。自變量n是可選的,用來指定字符串比較方式。該自變量的取值可以是0、1或2。 0:進行二進制比較,區(qū)分字母的大小寫;默認為0。 1:比較時忽略大小寫; 2:對數(shù)據(jù)庫中的信息進行比較。格式:InStr([首字符位置,]字符串1,字4.5字符處理與字符串函數(shù)也可以通過語句限定: Option

Compare

Binary

Option

Compare

Text Option

Compare

Database4.5字符處理與字符串函數(shù)也可以通過語句限定:4.5字符處理與字符串函數(shù)

7.字母大小寫轉(zhuǎn)換

格式:Ucase$(字符串):小寫字母轉(zhuǎn)換為大寫字母

Lcase$(字符串)

:大寫字母轉(zhuǎn)換為小寫字母例如: a$="MicrosoftVisualBasic" b$=UCase$(a$) c$=LCase$(a$) Printb$,c$輸出結(jié)果:MICROSOFTVISUALBASIC

microsoftvisualbasic

二、字符串函數(shù)4.5字符處理與字符串函數(shù)7.字母大小寫轉(zhuǎn)換二、字符串函4.5字符處理與字符串函數(shù)

8.插入字符串語句Mid$格式:Mid$(字符串,位置[

,

L

]

)=子字符串

該語句把從“字符串”的“位置”開始的字符用“子字符串”代替。如果含有L自變量,則替換的內(nèi)容是“子字符串”左部的L個字符。“位置”和L均為長整型數(shù)。DimMyString,FirstWord,LastWord,MidWordsMyString=“MidFunctionDemo”

'建立一個字符串。FirstWord=Mid(MyString,1,3)'返回"Mid"。LastWord=Mid(MyString,14,4)'返回"Demo"。MidWords=Mid(MyString,5)'返回"FuncionDemo"。4.5字符處理與字符串函數(shù)8.插入字符串語句Mid$4.6

運算符與表達式

運算是對數(shù)據(jù)的加工。最基本的運算形式常常用一些簡潔的符號來描述,這些符號稱為運算符。被運算的數(shù)據(jù),稱為運算量。由運算符和運算量組成表達式。運算量可以是常量,也可以是變量,還可以是函數(shù)。例如:A+3

,

T+Sin(a)

,

PI*r*r

。運算符和表達式的類型可以分為以下4種:算術(shù)運算符與算術(shù)表達式字符運算符與字符表達式關(guān)系運算符與關(guān)系表達式邏輯運算符與邏輯表達式4.6運算符與表達式運算是對數(shù)據(jù)的加工。最基本的運4.6

運算符與表達式

一、算術(shù)運算符與算術(shù)表達式運算運算符優(yōu)先級表達式例子結(jié)果冪^1X^Ya^29取負-2-X-a-3乘法*3X*Ya*a*a27浮點除法/3X/Y10/a

3.333333…整數(shù)除法\4X\Y10\a3取模Mod5X

Mod

Y10

Mod

a1加法+6X+Y10+a13減法-6X-Ya-10-7(a=3)4.6運算符與表達式一、算術(shù)運算符與算術(shù)表達式運算運算4.6

運算符與表達式

1.冪運算^用于計算乘方和方根,運算符為“^”。例如:

10^2 ‘結(jié)果為100 10^-2 ‘結(jié)果為0.01 25^0.5 ‘結(jié)果為5 8^(1/3) ‘結(jié)果為2注意:冪運算符優(yōu)先級最高。當(dāng)指數(shù)是一個表達式時,必須加上括號。

例如,X的Y+Z次方必須寫作X^(Y+Z),不能寫作X^Y+Z。4.6運算符與表達式1.冪運算^4.6

運算符與表達式

2.“/”與“\”

浮點除法運算符“/”用來計算兩個數(shù)或表達式的商,并返回相應(yīng)的浮點數(shù)。例如:3/2的值是1.5。

整數(shù)除法運算符“\”在運算前把兩個運算量四舍五入轉(zhuǎn)換成整數(shù),然后計算兩個運算量的商,并返回結(jié)果的整數(shù)部分。例如:25.63\6.78的值為3。

4.6運算符與表達式2.“/”與“\”4.6

運算符與表達式

3.取模運算Mod取模運算即求余數(shù),在運算前把兩個運算量四舍五入轉(zhuǎn)換成整型數(shù),然后對兩個運算量進行除法運算,并返回余數(shù)(第一個操作數(shù)整除第二個操作數(shù)的余數(shù))。例如:

7

Mod

4 ‘結(jié)果為3 25.68

Mod

6.99 ‘先把25.63和6.78轉(zhuǎn)化為26和7,再求得余數(shù)為5

4.6運算符與表達式3.取模運算Mod4.6

運算符與表達式4.算術(shù)運算符的優(yōu)先級運算運算符優(yōu)先級冪^1取負-2乘法*3浮點除法/3整數(shù)除法\4取模Mod5加法+6減法-64.6運算符與表達式4.算術(shù)運算符的優(yōu)先級運算運算符優(yōu)先級[思考與練習(xí)]5+10mod10\9/3+2^2步驟:=5+10mod10\3

+

4=5+10mod3

+

4=5+1+

4=10[思考與練習(xí)]步驟:4.6

運算符與表達式

字符串連接符:“&”和“+”

“&”:用于強制將兩個表達式作為字符串連接。“+”:當(dāng)連接符兩邊的表達式都為字符串時,將兩個字符串連接;如果一個是字符串而另一個是數(shù)字,則進行相加。例如:

"ABCD"+"EFGHI"'結(jié)果為:ABCDEFGHI

“VB”&“程序設(shè)計教程”

‘結(jié)果為:VB程序設(shè)計教程二、字符運算符與字符表達式4.6運算符與表達式字符串連接符:“&”和“+”二、字例:"100"+123 '結(jié)果為

223"100"+"123" '結(jié)果為

100123“Abc”+123

'出現(xiàn)“類型不匹配”的錯誤提示"100"&123 '結(jié)果為

100123100&123 '結(jié)果為

100123"Abc"&"123" '結(jié)果為

Abc123"Abc"&123 '結(jié)果為

Abc123

注意:使用運算符“&”時,變量與運算符“&”之間應(yīng)加一個空格。這是因為符號“&”還是長整型的類型定義符,如果變量與符號“&”接在一起,VB系統(tǒng)先把它作為類型定義符處理,因而就會出現(xiàn)語法錯誤。例:注意:使用運算符“&”時,變量與運算符4.6

運算符與表達式

關(guān)系運算符也稱比較運算符,用來對兩個表達式的值進行比較。關(guān)系表達式的結(jié)果是一個布爾值,即True(成立)或False(不成立)。三、關(guān)系運算符與關(guān)系表達式運算符含義優(yōu)先級表達式=相等所有關(guān)系運算符的優(yōu)先級相同。X

=

Y<>或><不相等X<>Y或X><Y<小于X<Y>大于X>Y<=小于或等于X<=Y>=大于或等于X>=YLike比較樣式Is比較對象變量4.6運算符與表達式關(guān)系運算符也稱比較運算符,用來對兩數(shù)值的比較:應(yīng)避免對兩個浮點數(shù)直接作“相等”或“不相等”的比較。例如:1.0/3.0*3.0=1.0,在計算機上執(zhí)行時可能會給出假值。可以改寫為:Abs(1.0/3.0*3.0-1.0)<1e-5判斷x是否在區(qū)間[a,b]時,不能寫成:a<=x<=b,而應(yīng)寫成:a<=x

And

x<=b數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù)比較,如:29>“189”,按數(shù)值比較,結(jié)果為False。數(shù)值型與不能轉(zhuǎn)換成數(shù)值型的字符型比較,如:77>"sdcd",不能比較,系統(tǒng)出錯。數(shù)值的比較:字符串的比較:兩個字符串的比較,從第1個字符開始,按字符的ASCII碼值逐一進行比較,ASCII碼值大的字符所在的字符串大。例:"ABCDE">"ABRA" ‘結(jié)果為False

常見的字符值的大小關(guān)系如下:“空格”<“數(shù)字”<“大寫字母”<“小寫字母”<“所有漢字”Like運算符用來比較字符串表達式和SQL表達式中的樣式,主要用于數(shù)據(jù)庫查詢。Is運算符用來比較兩個對象的引用變量,主要用于對象操作。字符串的比較:4.6

運算符與表達式邏輯運算也稱布爾運算。用邏輯運算符連接兩個或多個關(guān)系式,組成一個布爾表達式。四、邏輯運算符與邏輯表達式運算符含義優(yōu)先級說明Not非1真變假,假變真。And與2兩個表達式均為真時,結(jié)果才為真。Or或3有一個表達式為真時,結(jié)果就為真。Xor異或4兩個表達式相反時,結(jié)果為真。Eqv等價5兩個表達式相同時,結(jié)果為真。Imp蘊含6第一個為真,第二個為假時,結(jié)果為假;其它為真。4.6運算符與表達式邏輯運算也稱布爾運算。用邏輯運算4.6

運算符與表達式

如果對數(shù)值進行邏輯運算,操作數(shù)都要轉(zhuǎn)換成二進制值逐位進行邏輯運算(0當(dāng)False,1當(dāng)True)。例如:63

And

16

‘結(jié)果為16 00000000

01111111

And 00000000

00010000關(guān)系表達式與邏輯表達式常常用在條件語句與循環(huán)語句中,作為條件控制程序的流程走向。四、邏輯運算符與邏輯表達式4.6運算符與表達式如果對數(shù)值進行邏輯運算,操作數(shù)都要[思考與練習(xí)]

例:征兵的條件是:男性(sex),年齡(age)在18-20之間,身高(size)在1.65m以上;或者女性(sex),年齡(age)在16-18之間,身高(size)在1.60m以上。請寫成VB的條件表達式。答:設(shè)性別sex值True代表男,sex值False代表女。

(sex=TrueAndage>=18Andage<=20Andsize>=1.65)Or(NotsexAndage>=16Andage<=18Andsize>=1.60)[思考與練習(xí)]答:4.6

運算符與表達式

表達式的一般執(zhí)行順序:函數(shù)運算→算術(shù)運算符→連接運算符→關(guān)系運算符→邏輯運算符在書寫表達式時,應(yīng)注意以下幾點:乘號“*”不能省略,例x乘以y應(yīng)寫成:x*y可以用括號改變優(yōu)先順序,并且括號必須成對出現(xiàn);運算符不能相鄰。例a+*b是錯誤的。五、表達式的執(zhí)行順序(b-sqr(b*b-4*a*c))/(2*a)4.6運算符與表達式表達式的一般執(zhí)行順序:五、表達式的執(zhí)第4章VB程序設(shè)計基礎(chǔ)本章內(nèi)容及要求:4.1數(shù)據(jù)類型4.2常量和變量4.3變量的作用域4.4常用內(nèi)部函數(shù)4.5字符處理與字符串函數(shù)4.6運算符與表達式第4章VB程序設(shè)計基礎(chǔ)本章內(nèi)容及要求:4.1數(shù)據(jù)類型4.1數(shù)據(jù)類型數(shù)據(jù)是信息在計算機內(nèi)的表現(xiàn)形式,也是程序處理的對象。VB提供了系統(tǒng)定義的基本數(shù)據(jù)類型,還允許用戶定義自己的數(shù)據(jù)類型。數(shù)據(jù)類型基本類型字符串型數(shù)值型整型數(shù)整數(shù)型長整數(shù)浮點數(shù)單精度雙精度貨幣型字節(jié)型布爾型日期型變體型對象型Decimal型用戶定義類型記錄類型枚舉類型4.1數(shù)據(jù)類型數(shù)據(jù)是信息在計算機內(nèi)的表現(xiàn)形式,也是程序處理4.1數(shù)據(jù)類型一、基本數(shù)據(jù)類型1.字符串型String字符串是一個字符序列,由ASCII字符組成。字符串通常要用雙引號括起來。例如: “Hello!” "湖南省衡陽市" “8888” "***” “”

‘空字符串 ““

‘有一個空格的字符串若字符串中有雙引號,例如ABD“XYZ,則用連續(xù)兩個雙引號表示,即:"ABD""XYZ“4.1數(shù)據(jù)類型一、基本數(shù)據(jù)類型1.字符串型String4.1數(shù)據(jù)類型VB中的字符串分為兩種:變長字符串和定長字符串。變長字符串的長度是不確定的,可以從0~231(約21億)個字符。定長字符串含有確定個數(shù)的字符,最大長度不超過216(65535)個字符。4.1數(shù)據(jù)類型VB中的字符串分為兩種:變長字符串和定長字符4.1數(shù)據(jù)類型2.數(shù)值型數(shù)值型數(shù)據(jù)分為整型數(shù)和浮點數(shù)兩類。(1)整型數(shù)整型數(shù)是不帶小數(shù)點和指數(shù)符號的數(shù),在機器內(nèi)部以二進制補碼形式表示。正數(shù)的補碼和它的二進制形式(即源碼)相同;負數(shù)的補碼為該數(shù)的絕對值的二進制形式取反加1。例如,整型數(shù)4,-4分別以下面的形式存放:(最高位為符號位,其中0為正,1為負)4

00000000

00000100-4

11111111

11111100

整數(shù)的運算速度快,而且比其他數(shù)據(jù)類型占據(jù)的內(nèi)存少。4.1數(shù)據(jù)類型2.數(shù)值型4.1數(shù)據(jù)類型整型數(shù)又分為整數(shù)和長整數(shù):整數(shù)Integer以2個字節(jié)(16位)的二進制數(shù)存儲,取值范圍為-32,768~32,767。長整數(shù)Long以4個字節(jié)(32位)的二進制數(shù)存儲,取值范圍為-2,147,483,648~2,147,483,647。4.1數(shù)據(jù)類型整型數(shù)又分為整數(shù)和長整數(shù):4.1數(shù)據(jù)類型二進制十進制00000000

00000000000000000

00000001100000000

00000010200000000

000000113…

……

…01111111

111111113276710000000

00000000-3276810000000

00000001-3276710000000

00000010-32766…

……

…11111111

11111110-211111111

11111111-1思考:為什么16位整數(shù)Integer的取值范圍為-32,768~32,767?4.1數(shù)據(jù)類型二進制十進制0000000000000004.1數(shù)據(jù)類型注意:16位整數(shù)Integer如果超出了這個取值范圍(-32,768~32,767),數(shù)據(jù)便會溢出。請看下面的代碼:PrivateSubForm_Load()

DimaAsInteger

a=32767

a=a+1

MsgBoxaEndSub4.1數(shù)據(jù)類型注意:16位整數(shù)Integer如果超出了4.1數(shù)據(jù)類型(2)浮點數(shù)浮點數(shù)也稱實數(shù),是帶有小數(shù)部分的數(shù)值。分為單精度浮點數(shù)和雙精度浮點數(shù)。單精度Single以4個字節(jié)(32位)存儲,可以精確到7位十進制數(shù)。其中符號占1位,指數(shù)占8位,其余23位表示尾數(shù),還有一個附加的隱含位。其負數(shù)的取值范圍為-3.402823E+38

~

-1.401298E-45,正數(shù)的取值范圍為1.401298E-45

~

3.402823E+38。表示形式為:±n.nE±m(xù)其中n.n是尾數(shù),m是指數(shù)(以10為底的冪)例:-123.4E-3或-123.4e-3,相當(dāng)于-0.1234

1.2345E3或1.2345e3,相當(dāng)于1234.54.1數(shù)據(jù)類型(2)浮點數(shù)4.1數(shù)據(jù)類型雙精度Double以8個字節(jié)(64位)存儲,可以精確到15到16位十進制數(shù)。其中符號占1位,指數(shù)占11位,其余52位表示尾數(shù),還有一個附加的隱含位。表示形式為:±n.nD±m(xù)其中n.n是尾數(shù),m是指數(shù)(以10為底的冪)

例:123.4567D3或123.4567d+3,相當(dāng)于123456.74.1數(shù)據(jù)類型雙精度Double4.1數(shù)據(jù)類型(3)貨幣型Currency貨幣數(shù)據(jù)類型通常用于表示錢款。以8個字節(jié)(64位)存儲,精確到小數(shù)點后面4位(小數(shù)點前面有15位)。在小數(shù)點后4位以后的數(shù)字將被舍去。其取值范圍為-922,337,203,685,477.5808

~-922,337,203,685,477.5807浮點數(shù)中的小數(shù)點是“浮動”的,小數(shù)點可以出現(xiàn)在數(shù)的任何位置,而貨幣型數(shù)據(jù)的小數(shù)點是固定的,因此稱為定點數(shù)據(jù)類型。

4.1數(shù)據(jù)類型(3)貨幣型Currency4.1數(shù)據(jù)類型(4)字節(jié)型Byte以1個字節(jié)(8位)的無符號二進制數(shù)存儲,其取值范圍為0~255。

注:在實際應(yīng)用中,應(yīng)根據(jù)需要使用數(shù)據(jù)類型。能用整型就不要用浮點型或貨幣型;如果要求的精度不高,則應(yīng)使用單精度變量。這樣不僅節(jié)省內(nèi)存空間,而且可以提高處理速度。

4.1數(shù)據(jù)類型(4)字節(jié)型Byte4.1數(shù)據(jù)類型3.布爾型Boolean

布爾型數(shù)據(jù)是一個邏輯值,用2個字節(jié)存儲,它只取兩個值:True/False。布爾型變量的默認值為False。將邏輯數(shù)據(jù)轉(zhuǎn)換成整型時:True為-1,F(xiàn)alse為0;其它數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)時:非0為True,0為False。例如,下面的代碼定義一個布爾型變量,并輸出該變量:DimmyblnAsBooleanmybln=3MsgBoxmybln4.1數(shù)據(jù)類型3.布爾型Boolean4.1數(shù)據(jù)類型4.日期型Date

日期型數(shù)據(jù)占用8個字節(jié),以浮點數(shù)形式存儲。小數(shù)點左邊的數(shù)值表示日期(距離1899-12-30的天數(shù)),小數(shù)點右邊的數(shù)值表示時間。日期型數(shù)據(jù)的日期表示范圍:100年1月1日~9999年12月31日,時間表示范圍:0:00:00~23:59:59。日期常數(shù)必須用“#”符號括起來。

例如:下面的幾種日期型數(shù)據(jù)的格式都是合法的:

#9/1/2009#或#2009-09-01# #September

1,2009#

#08:30:00AM#

#2002-5-414:30:00PM#4.1數(shù)據(jù)類型4.日期型Date4.1數(shù)據(jù)類型5.變體型Variant變體數(shù)據(jù)類型是一種可變的數(shù)據(jù)類型,可以表示任何值,包括數(shù)值、字符串、日期/時間等。當(dāng)變體數(shù)據(jù)為數(shù)值時,以16個字節(jié)存儲,最大可達Double的取值范圍;當(dāng)變體數(shù)據(jù)為字符時,以22字節(jié)+字符串長,與變長String有相同的取值范圍

。6.對象型Object對象型數(shù)據(jù)作為32位(4個字節(jié))地址來存儲,該地址可以引用程序中的任何對象。4.1數(shù)據(jù)類型5.變體型Variant4.1數(shù)據(jù)類型7.Decimal數(shù)據(jù)類型

Decimal數(shù)據(jù)以12個字節(jié)存儲,最多支持29個有效數(shù)位,在內(nèi)存中的表示形式比浮點數(shù)更精確。適用于要求使用大量有效的整數(shù)及小數(shù)位數(shù),并且不能容忍舍入誤差的財務(wù)計算。

Decimal數(shù)據(jù)類型只能在變體類型(Variant)中使用,不能把一個變量聲明為Decimal類型。4.1數(shù)據(jù)類型7.Decimal數(shù)據(jù)類型4.1數(shù)據(jù)類型二、用戶定義的數(shù)據(jù)類型用戶自定義類型,也稱為記錄類型,通過Type語句來實現(xiàn),其語法格式如下: Type數(shù)據(jù)類型名

元素名As類型名

元素名As類型名

… End

Type

4.1數(shù)據(jù)類型二、用戶定義的數(shù)據(jù)類型用戶自定義類型,也稱4.1數(shù)據(jù)類型例如:對于一個學(xué)生的“學(xué)號”、“姓名”、“性別”、“年齡”、“入學(xué)成績”等數(shù)據(jù),為了處理數(shù)據(jù)的方便,常常需要把這些數(shù)據(jù)定義成一個新的數(shù)據(jù)類型(如Student類型)

TypeStudent XhAsString XmAsString XbAsString NlAsInteger ScoreAsSingle EndType二、用戶定義的數(shù)據(jù)類型4.1數(shù)據(jù)類型例如:對于一個學(xué)生的“學(xué)號”、“姓名”4.1數(shù)據(jù)類型使用Type語句,應(yīng)注意以下幾點:1.記錄類型的定義必須放在模塊(包括標(biāo)準(zhǔn)模塊和窗體模塊)的聲明部分,在使用記錄類型之前,必須用Type語句加以定義。2.一般情況下,記錄類型在標(biāo)準(zhǔn)模塊中定義,其變量可以出現(xiàn)在工程的任何地方。當(dāng)在標(biāo)準(zhǔn)模塊中定義時,關(guān)鍵字Type前可以有Public(默認)或Private;而如果在窗體模塊中定義,則必須在前面加上關(guān)鍵字Private。3.在記錄類型中不能使用動態(tài)數(shù)組。4.1數(shù)據(jù)類型使用Type語句,應(yīng)注意以下幾點:4.1數(shù)據(jù)類型下面的代碼聲明了一個Student類型變量st,然后為其各個元素賦初值,最后輸出:PrivateSubForm_Load()DimstAsStudentst.Xh="20050001"st.Xm="王一"st.Xb="男"st.Nl=17st.Score=92.5MsgBox"學(xué)號:"&st.Xh&Chr(10)&"姓名:"&st.Xm&Chr(10)&"性別:"&_st.Xb&Chr(10)&"年齡:"&st.Nl&Chr(10)&"入學(xué)成績:"&st.ScoreEndSub4.1數(shù)據(jù)類型下面的代碼聲明了一個Student類型變量4.2常量和變量一、常量在VB中有三類常量:普通常量、符號常量和系統(tǒng)常量

1.普通常量普通常量指的是具體的常數(shù),其類型有字符串型、整型、浮點型、布爾型、日期型等。不同類型的數(shù)據(jù)可以常量的形式出現(xiàn),也可以變量的形式出現(xiàn)。常量在程序運行過程中其值不會發(fā)生變化。而變量的值是可變的,它代表內(nèi)存中指定的存儲單元。4.2常量和變量一、常量在VB中有三類常量:普通常量4.2常量和變量整型常數(shù)有3種形式:十進制:由八進制數(shù)字(0~9)組成。如125,0,-89。八進制:由八進制數(shù)字(0~7)組成。以&或&O(字母O)開頭,以&結(jié)尾。例如:&O25&表示八進制整數(shù)25,即(25)8

,等于十進制數(shù)21。十六進制:由十六進制數(shù)字(0~9及A~F)組成。以&H開頭,以&結(jié)尾。例如:&H25&表示十六進制整數(shù)25,即(25)16

,等于十進制數(shù)37。VB中的顏色數(shù)據(jù)常常用十六進制整數(shù)表示。4.2常量和變量整型常數(shù)有3種形式:4.2常量和變量

VB在判斷常量類型時存在多義性。例如,值3.01可能是單精度類型,也可能是雙精度類型或貨幣類型。為了顯式地指明常數(shù)的類型,可以在常數(shù)后面加上類型說明符。 % 整型 & 長整型 ! 單精度浮點數(shù) # 雙精度浮點數(shù) @ 貨幣型 $ 字符串型字節(jié)、布爾、日期、對象及變體類型沒有類型說明符。4.2常量和變量VB在判斷常量類型時存在多義性。例如,4.2常量和變量

2.符號常量在程序中,某個常量多次被使用,則可以使用一個符號來代替該常量,這樣不僅在書寫上方便,而且有效地改進了程序的可讀性和可維護性。

VB中使用關(guān)鍵字Const聲明符號常量。其格式如下:Const常量名

[As類型|類型符號]=表達式[

,常量名=表達式]注:表達式由普通常量、算術(shù)和邏輯運算符組成,但不能使用變量及函數(shù)。例如:

ConstMaxchars=254,Maxbue=Maxchars+1

’注意順序

ConstPI#=3.1415926等價于:

ConstPIAsDouble=3.14159264.2常量和變量2.符號常量4.2常量和變量

3.系統(tǒng)常量

VB系統(tǒng)提供了應(yīng)用程序和控件的系統(tǒng)定義常數(shù)。

例如,要將文本框Text1的前景顏色設(shè)置為紅色,可以使用下面的語句:Text1.ForeColor=vbRed這里的vbRed就是系統(tǒng)常量,這比直接使用16進制數(shù)來設(shè)置要直觀得多。又如,窗口狀態(tài)屬性WindowsState可取0,1,2三個值,對應(yīng)三種不同狀態(tài)。在程序中使用語句:Myform.WindowsState=vbMaxmized,將窗口最大化,顯然要比使用語句Myform.WindowsState=2

易于閱讀和理解。4.2常量和變量3.系統(tǒng)常量4.2常量和變量二、變量變量是在程序運行時,其值不斷發(fā)生改變的量。一個變量對應(yīng)著計算機內(nèi)存中的一塊存儲單元。

例如,有兩個存儲單元,名稱分別為User和Password,存放的值分別為“管理員”和“111”,如圖所示:也可以將這兩個存儲單元的值改為“普通用戶”和“222”:管理員User111Password普通用戶User222Password

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論