數(shù)據(jù)類型與表達(dá)式_第1頁(yè)
數(shù)據(jù)類型與表達(dá)式_第2頁(yè)
數(shù)據(jù)類型與表達(dá)式_第3頁(yè)
數(shù)據(jù)類型與表達(dá)式_第4頁(yè)
數(shù)據(jù)類型與表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2數(shù)據(jù)類型與表達(dá)式學(xué)習(xí)程序設(shè)計(jì)的基本方法:

多練模仿第2章數(shù)據(jù)類型與表達(dá)式

程序中的大部分實(shí)際工作是采用程序代碼來(lái)處理的任何一個(gè)程序設(shè)計(jì)語(yǔ)言都有一套嚴(yán)格的編程規(guī)定

本章主要內(nèi)容

數(shù)據(jù)類型常量與變量表達(dá)式常用內(nèi)部函數(shù)程序代碼編寫規(guī)則VB的基本字符集和詞匯集1字符集程序由語(yǔ)句構(gòu)成,語(yǔ)句由表達(dá)式、單詞構(gòu)成,表達(dá)式和單詞由字符組成。程序語(yǔ)言中,字符、詞匯、表達(dá)式、語(yǔ)句、過程、函數(shù)被稱為“語(yǔ)法單位”。語(yǔ)法的形成規(guī)則稱為“語(yǔ)法規(guī)則”。字符是構(gòu)成程序設(shè)計(jì)語(yǔ)言的最小單位。

VB的字符集包括:數(shù)字,英文字母和特殊符號(hào)。數(shù)字:0~9;英文字母:26個(gè)英文字母的大小寫,a~z和A~Z;特殊字符:!#$%&@^'()*+,-./\?<=>[]_{}︱~:;〞space。注:在代碼窗口輸入程序時(shí),除漢字外,其余符號(hào)不能以全角或中文方式輸入,而只能以英文方式鍵入作為語(yǔ)言成份的字符。2詞匯集詞匯符號(hào)是程序設(shè)計(jì)語(yǔ)言中具有獨(dú)立意義的最基本結(jié)構(gòu)。詞匯符號(hào)包括:運(yùn)算符、界符、關(guān)鍵字、標(biāo)識(shí)符、各類型常數(shù)。

(1.)運(yùn)算符和界符算術(shù)運(yùn)算符:+、-、*、/、\、MOD、^

字符運(yùn)算符:&、+

比較運(yùn)算符:>、>=、<、<=、=、<>

邏輯運(yùn)算符:NOT、AND、OR

其他界符:!、#、$、%、@、()、,、.、’、?、[]、_、{}、︱、~、:、;、〞、space(2.)關(guān)鍵字又稱保留字,在語(yǔ)法上有固定的含義,是語(yǔ)言的組成部分,往往表示系統(tǒng)提供的標(biāo)準(zhǔn)過程、函數(shù)、運(yùn)算符、常量等。在VB中,約定關(guān)鍵字的首個(gè)字母為大寫。

2.1

數(shù)據(jù)類型

數(shù)據(jù)是程序處理的對(duì)象。為了更好地處理各種各樣的數(shù)據(jù),VB定義了多種數(shù)據(jù)類型

數(shù)值型

數(shù)據(jù)類型字符型邏輯型日期型對(duì)象型變體型整數(shù):整型/長(zhǎng)整型字節(jié)型浮點(diǎn)型:單/雙精度貨幣型

1.整型(Integer)和長(zhǎng)整型(Long)

不帶小數(shù)部分的數(shù),表示正整數(shù)、負(fù)整數(shù)和零

整型數(shù):-32768~32767

長(zhǎng)整型數(shù):-2147483648~2147483647

2.字節(jié)型(Byte)

字節(jié)型數(shù)可以表示無(wú)符號(hào)的整數(shù)

0~255

3.單精度型(Single)和雙精度型(Double)

浮點(diǎn)數(shù)。表示帶有小數(shù)部分的數(shù)

表示數(shù)的范圍大,但有誤差。

如超出某個(gè)表示范圍,則用科學(xué)記數(shù)法

例如:4.53E8(4.53×108),8.173E-14,3.14D23

4.貨幣型(Currency)

專門為處理貨幣而設(shè)計(jì)的數(shù)據(jù)類型

它可最多保留小數(shù)點(diǎn)右邊4位和小數(shù)點(diǎn)左邊15位

5.字符型(String)

用雙引號(hào)括起來(lái)的一串字符。

例如,“Canton”、”1+2=?”、”Good└┘Morning”等

“″”稱為起止界限符。

字符串長(zhǎng)度。分變長(zhǎng)字符串(長(zhǎng)度不固定)和定長(zhǎng)字符串(長(zhǎng)度固定)

在VB中,把漢字作為一個(gè)字符來(lái)處理。

6.邏輯型(Boolean)

邏輯型又稱布爾型,其數(shù)據(jù)只有True(真)和False(假)兩個(gè)值

7.日期型(Date)

表示日期和時(shí)間

用兩個(gè)“#”符號(hào)把日期和時(shí)間的值括起來(lái)

如:#08/20/2001#、#2001-08-20#

8.對(duì)象型(Object)

對(duì)象型數(shù)據(jù)可用來(lái)表示應(yīng)用程序中的對(duì)象

9.變體型(Variant)

變體型數(shù)據(jù)是一種可變的數(shù)據(jù)類型,可以存放任何類型的數(shù)據(jù)

當(dāng)指定變量為Variant變量時(shí),VB會(huì)自動(dòng)完成必要的轉(zhuǎn)換

在程序中不特別說明時(shí),VB會(huì)自動(dòng)將該變量默認(rèn)為Variant型變量。

例:Temp=“22”’字符串

Temp=Temp-1’數(shù)值

Temp=#01/01/2002#’日期

說明:

(1)

不同類型的數(shù)據(jù),所占的存儲(chǔ)空間不一樣。

(2)數(shù)據(jù)的類型可在數(shù)據(jù)之后加上一個(gè)類型符來(lái)表示,例如,413&,86!,104.67#等。

類型IntegerLongFloatdoubleCurrencyString符號(hào)%&!#@$2.2常量與變量2.2.1常量

在程序運(yùn)行期間其值始終保持不變的量?jī)煞N形式的常量:一般常量和符號(hào)常量

1.一般常量在程序代碼中直接給出的數(shù)據(jù)。例如:123,-263,“VisualBasic”,“12.57”等

2.符號(hào)常量符號(hào)常量是在程序中用符號(hào)表示的常量。格式:

[Public|Private]Const常量名[As數(shù)據(jù)類型]=表達(dá)式例如:

ConstPI=3.14159AsSingle

2.2.2

變量

變量是在程序運(yùn)行期間其值可以發(fā)生變化的量

1.變量與常量的命名規(guī)則應(yīng)遵守一些規(guī)則:

(1)變量名必須以字母開頭;

(2)只能由字母、數(shù)字和下劃線組成。不能含有小數(shù)點(diǎn)、空格等字符;

(3)字符個(gè)數(shù)不得超過255個(gè);

(4)不能使用VB的關(guān)鍵字(如語(yǔ)句名、函數(shù)名等)。例如,Print、Sub、End等;

(5)不區(qū)分變量名中字母的大小寫

變量的聲明就是向程序說明要使用的變量

有以下2種方法(顯式聲明與隱式聲明)

(1)聲明變量(顯式聲明)

用Dim、Public、Private或Static語(yǔ)句來(lái)聲明變量例如:DimsumAsInteger′把sum定義為整型變量

(2)隱式聲明

不加說明就直接使用變量,此時(shí)默認(rèn)的變量類型為變體類型(Variant)

也允許使用類型符來(lái)聲明變量的類型,如Num%,Sum!

2.變量的聲明

五類表達(dá)式:算術(shù)表達(dá)式、字符串表達(dá)式、日期表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式

2.3.1算術(shù)表達(dá)式

算術(shù)表達(dá)式也稱數(shù)值表達(dá)式,是用算術(shù)運(yùn)算符把數(shù)值型常量、變量、函數(shù)連接起來(lái)的式子

表達(dá)式的運(yùn)算結(jié)果是一個(gè)數(shù)值

VB有8種算術(shù)運(yùn)算符(表2.2)

+、-、*、/、\、MOD、^、-(求負(fù))

運(yùn)算符優(yōu)先級(jí)

^(乘方)→-(求負(fù))→*/→\→Mod→+-

同級(jí)左到右

2.3表達(dá)式說明:

(1)/和\的區(qū)別:1/2=0.5,1\2=0

(2)Mod用來(lái)求整型數(shù)除法的余數(shù)。例如:9Mod7結(jié)果為2

(3)在表達(dá)式中乘號(hào)不能省略,如a*b不能寫成ab(或a·b)

(4)括號(hào)不分大、中、小,一律采用圓括號(hào)??梢郧短资褂美纾瑇[x(x+1)+1]

x*(x*(x+1)+1)

字符串表達(dá)式是采用連接符將兩個(gè)字符串常量、字符串變量、字符串函數(shù)連接起來(lái)的式子。

連接符有兩個(gè):&和+

其作用都是將兩個(gè)字符串連接起來(lái),運(yùn)算結(jié)果是一個(gè)字符串。

例如:

”計(jì)算機(jī)”&”網(wǎng)絡(luò)”

的結(jié)果是:”計(jì)算機(jī)網(wǎng)絡(luò)”

”123”+”45”

的結(jié)果是:”12345”

123&”ABC”

的結(jié)果是:”123ABC”

2.3.2字符串表達(dá)式

日期表達(dá)式是用運(yùn)算符(+或-)將算術(shù)表達(dá)式、日期型常量、日期型變量和函數(shù)連接起來(lái)的式子。

有以下3種運(yùn)算方式:

(1)兩個(gè)日期型數(shù)據(jù)相減,其結(jié)果是一個(gè)數(shù)值型數(shù)據(jù)(相差的天數(shù))。例如:#8/8/2001#-#6/3/2001#的結(jié)果為:66

(2)日期型數(shù)據(jù)加上天數(shù),其結(jié)果為一個(gè)日期型數(shù)據(jù)。例如:#12/1/2000#+31的結(jié)果為:#01/01/2001#

(3)日期型數(shù)據(jù)減去天數(shù),其結(jié)果為一個(gè)日期型數(shù)據(jù)。例如:#12/1/2000#-32的結(jié)果為:#10/30/2000#2.3.3日期表達(dá)式

內(nèi)部函數(shù)是由VB系統(tǒng)提供的,每個(gè)內(nèi)部函數(shù)完成某個(gè)特定的功能。在程序中使用函數(shù)稱為調(diào)用函數(shù)函數(shù)調(diào)用的一般格式為:

函數(shù)名(參數(shù)1,參數(shù)2,…)

參數(shù)(也稱自變量)放在圓括號(hào)內(nèi),若有多個(gè)參數(shù),以逗號(hào)分隔。

函數(shù)調(diào)用后,一般都有一個(gè)確定的函數(shù)值,即返回值。例如:y=Sqr(289)

Sqr是內(nèi)部函數(shù)名,289為參數(shù),運(yùn)行時(shí)該語(yǔ)句調(diào)用內(nèi)部函數(shù)Sqr來(lái)求289的平方根,其計(jì)算結(jié)果由系統(tǒng)返回給變量y

VB的內(nèi)部函數(shù)大體上分為四大類:數(shù)學(xué)函數(shù),字符串函數(shù),日期與時(shí)間函數(shù)和轉(zhuǎn)換函數(shù)。2.4常用內(nèi)部函數(shù)

VB中備有各種計(jì)算算術(shù)函數(shù)的子程序,在程序中要使用某個(gè)函數(shù)時(shí),只要調(diào)用該函數(shù)就行了。

使用數(shù)學(xué)函數(shù)的幾點(diǎn)說明:

(1)

三角函數(shù)的自變量單位是弧度如Sin47°應(yīng)寫成Sin(47*3.14159/180)。

(2)

函數(shù)Int是求小于或等于x的最大整數(shù)。例如Int(2)=2,Int(-2.5)=-3

當(dāng)x≥0時(shí)就直接舍去小數(shù),若x<0則舍去小數(shù)位后再減1

利用Int函數(shù)可以對(duì)數(shù)據(jù)進(jìn)行四舍五入。例如,對(duì)一個(gè)正數(shù)x舍去小數(shù)位時(shí)進(jìn)行四舍五入,可采用如下式子:Int(x+0.5)

當(dāng)x=9.4時(shí),Int(9.4+0.5)=9

當(dāng)x=9.5時(shí),Int(9.5+0.5)=102.4.1數(shù)學(xué)函數(shù)函數(shù)名含義示例結(jié)果Abs(N)取絕對(duì)值A(chǔ)bs(-3.6)3.6Sqr(N)平方根Sqr(9)3Sgn(N)符號(hào)函數(shù)Sgn(-7.9)Sgr(7.9)Sgn(0)-110Exp(N)以e為底的指數(shù)(ex)Exp(3)20.086Log(N)以e為底的自然對(duì)數(shù)Log(10)2.3Sin(N)正弦函數(shù)Sin(0)0Cos(N)余弦函數(shù)Cos(0)1Tan(N)正切函數(shù)Tan(0)0Fix(N)取整函數(shù),無(wú)條件舍去小數(shù)部分Fix(-5.6)Fix(2.3)-52Int(N)取整函數(shù),返回不大于自變量的最大整數(shù)Int(-5.6)Int(2.36)-62(正舍負(fù)入)

(3)隨機(jī)函數(shù)可以模擬自然界中各種隨機(jī)現(xiàn)象,它所產(chǎn)生的隨機(jī)數(shù),可以提供給各種運(yùn)算或試驗(yàn)使用

Rnd通常與Int函數(shù)配合使用生成[a,b]區(qū)間范圍內(nèi)的隨機(jī)整數(shù),可以采用

Int((b-a+1)*Rnd+a)

例如Int(4*Rnd+1)可以產(chǎn)生1~4之間(含1和4)的隨機(jī)整數(shù)??梢允?,2,3或4,這由VB運(yùn)行時(shí)隨機(jī)給定使用Rnd函數(shù)之前,先用Randomize語(yǔ)句來(lái)初始化隨機(jī)數(shù)生成器編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=Int(x/10)'求十位數(shù)

b=xMod10'求個(gè)位數(shù)

c=b*10+a'生成新的數(shù)

Print"處理后的數(shù):";cEndSub運(yùn)行程序后單擊窗體,輸出結(jié)果是:

處理后的數(shù):63

例2.1

給定一個(gè)兩位正整數(shù)(如36),交換個(gè)位數(shù)和十位數(shù)的位置,把處理后的數(shù)顯示在窗體上PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36

a=x\10

'求十位數(shù)

b=x–10*a

'求個(gè)位數(shù)

c=b*10+aPrint"處理后的數(shù):";cEndSub

把上述程序改為以下形式,效果是否一樣?想一想通常,解決某個(gè)問題的程序方法有多種,我們應(yīng)該從中選擇較優(yōu)的一種方法。編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimaAsInteger,bAsInteger,cAsIntegerRandomize'初始化隨機(jī)數(shù)生成器

a=Int(90*Rnd+10)'產(chǎn)生[10,99]區(qū)間內(nèi)的隨機(jī)整數(shù)

b=Int(90*Rnd+10)c=a+b'求兩數(shù)之和

Print"產(chǎn)生的兩個(gè)隨機(jī)數(shù):";a,bPrint"和數(shù):";cEndSub運(yùn)行程序后單擊窗體,輸出結(jié)果是:

產(chǎn)生的兩個(gè)隨機(jī)數(shù):5671

和數(shù):127例2.2

通過隨機(jī)函數(shù)產(chǎn)生2個(gè)兩位正整數(shù),求這2個(gè)數(shù)之和并顯示出來(lái)

再次運(yùn)行程序,單擊窗體后輸出另一組結(jié)果是:產(chǎn)生的兩個(gè)隨機(jī)數(shù):1837

和數(shù):55

字符串函數(shù)用于進(jìn)行字符串處理

使用字符串函數(shù)的幾點(diǎn)說明:

(1)函數(shù)Mid(“ABCDEG”,3,2)的結(jié)果為”CD”

若省略n,則得到的是從P開始的往后所有字符,如

Mid(“ABCDE”,2)

的結(jié)果為“BCDE”

(2)插入字符串語(yǔ)句Mid,該語(yǔ)句格式如下:

Mid(字符串,p[,n])=子字符串用“子字符串”替換“字符串”中從P開始的與“子字符串”等長(zhǎng)的一串字符。例如,假設(shè)S=“ABCDE“,執(zhí)行語(yǔ)句Mid(S,3)=“99“后,S的值為“AB99E“2.4.2

字符串函數(shù)

(3)在函數(shù)Instr中,f和k均為可選參數(shù),f表示開始搜索的位置(默認(rèn)值為1),k表示比較方式,若k為0(默認(rèn)),表示區(qū)分大小寫;若k為1,則不分大小寫。格式:Instr(f,字符串1,字符串2,k)

例如Instr(3,”A12a34A56”,

”A”)

的結(jié)果為7

Instr(3,”A12a34A56”,”A”,1)的結(jié)果為4

Instr(”A12a34A56”,

”A”)

的結(jié)果為1

(4)在函數(shù)String中,字符也可以用ASCII代碼(附錄一)來(lái)表示

例如String(6,42)

與String(6,”*”)作用相同

先從字符串a(chǎn)中找出某個(gè)指定字符(本例為空格),再以此字符為界拆分成兩個(gè)字符串。編寫的窗體單擊過程代碼如下:

Mid()函數(shù) 格式:Mid(String,n,m)

功能:從String字符串中從第n個(gè)字符開始連續(xù)取m個(gè)字符。 例子:Mid("VisualBasic",7,5)函數(shù)返回值是"Basic"。

Left(字符串,n)返回字符串左邊n個(gè)字符。n>Len(字符串)時(shí),返回整個(gè)字符串。

Right(字符串,n)返回字符串右邊n個(gè)字符。

Len()函數(shù) 格式:Len(String)

功能:計(jì)算字符串的長(zhǎng)度。 例子:Len("VisualBasic")函數(shù)返回值為11

例2.3

使用字符串函數(shù)示例

InStr()函數(shù)格式:InStr([n,]string1,string2)

功能:在string1中從n開始查找string2,如果存在,函數(shù)值為string2在string1中的位置值;找不到時(shí)函數(shù)的值為0。n是可選參數(shù),為數(shù)值表達(dá)式設(shè)置每次搜索的起點(diǎn)。如果省略,將從第一個(gè)字符的位置開始。例子:InStr(2,"efabcdefg","ef")函數(shù)返回值為7Space(數(shù)值)返回由數(shù)值指定個(gè)數(shù)的空格所組成的字符串。一般用于格式化輸出或清除定長(zhǎng)字符串中的數(shù)據(jù)。例子:Space(3)String(數(shù)值,字符串)返回一個(gè)重復(fù)字符(字符串中的第一個(gè)字符)組成的字符串,數(shù)值用于指定個(gè)數(shù)。例子:String(3,"asdfg")函數(shù)返回值為"aaa"

Ltrim(字符串):去掉字符串的前導(dǎo)空格。例子:Ltrim("abcd")函數(shù)返回值為"abcd"Rtrim(字符串):去掉字符串的尾空格。例子:Rtrim("abcd")函數(shù)返回值為"abcd"Trim(字符串):去掉字符串的前后空格。例子:Trim("abcd")函數(shù)返回值為"abcd"Lcase(字符串)將字符串中的大寫字母換為小寫。在比較臨時(shí)輸入的字符串時(shí)有用。例子:Lcase("WHAT")函數(shù)返回值為"what"Ucase(字符串)將字符串中的小寫字母換為大寫。例子:Ucase("What")函數(shù)返回值為"WHAT"2.5.5轉(zhuǎn)換函數(shù)

Asc() 格式:Asc(String)

功能:將字符串轉(zhuǎn)換成ASCII值。 例子:a=Asc("C")a的值為67。

Chr() 格式:Chr(x)

功能:將ASCII碼值轉(zhuǎn)換成字符串。 例子:a=Chr(66)a的值為字符"B"。

Val() 格式:Val(String)

功能:將字符串量轉(zhuǎn)換成數(shù)值量。 例子:a=Val("-13.789") a的值為-13.789。

b=Val("13-789") 出錯(cuò)。

Str()

格式:Str(Number)

功能:將數(shù)值型量轉(zhuǎn)換成字符型量。 說明:Number為一個(gè)數(shù)值型量,返回一個(gè)字符型量。 例子:a=Str(12345)a的值為字符"12345"。說明:①Chr和Asc函數(shù)是一對(duì)互為反函數(shù),即Chr(Asc(n))、Asc(Chr(c))的結(jié)果為原來(lái)各自自變量的值,如Chr(Asc(122))的結(jié)果還是122。 ②Str函數(shù)將非負(fù)數(shù)值轉(zhuǎn)換成字符類型后,會(huì)在轉(zhuǎn)換后的字符串左邊增加空格,即數(shù)值的符號(hào)位。如Str(123)的結(jié)果為“123”,而不是“123”。 ③Val將數(shù)字字符串轉(zhuǎn)換為數(shù)值,當(dāng)字符串中出現(xiàn)非數(shù)值字符時(shí),停止轉(zhuǎn)換,函數(shù)返回的是停止轉(zhuǎn)換前的結(jié)果。如Val(“-123.45ty”)的結(jié)果為-123.45。PrivateSubFormClick()DimaAsString,bAsString,cAsString,nAsIntegera="Visual└┘FoxPro"

'└┘表示空格

n=InStr(a,"└┘")

'查找空格位置

b=Left(a,n-1)

'取左邊部分

c=Mid(a,n+1)

'取右邊部分

Printb

'顯示左邊部分

Printc

'顯示右邊部分

EndSub

程序運(yùn)行后單擊窗體,輸出結(jié)果是:

Visual

FoxPro實(shí)驗(yàn)程序

PrivateSubForm_Click()DimaAsString,bAsString,cAsString,nAsIntegera="Visual└┘FoxPro"

'└┘表示空格

n=InStr(a,"└┘")

'查找空格位置

b=Left(a,n-1)

'取左邊部分

c=Right(____,____)

'取右邊部分

Printb

'顯示左邊部分

Printc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論