版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章數(shù)據(jù)類型、常量、變量及表達式本章內(nèi)容及要求:1.熟悉VB程序中代碼和語句書寫規(guī)則;2.掌握VB的數(shù)據(jù)類型;3.掌握VB的運算符和表達式的使用;4.掌握常用內(nèi)部函數(shù)的使用;本章重點:變量和常量的定義及使用、運算符和表達式的使用及常用內(nèi)部函數(shù)的使用。本章難點:數(shù)據(jù)類型、內(nèi)部函數(shù)。第三章數(shù)據(jù)類型、常量、變量及表達式本章內(nèi)容及要求:本章13.1VB語言字符集及編碼規(guī)則3.1.1VB的字符集l
字母:大寫英文字母A—Z;小寫英文字母a—z。l
數(shù)字:0一9;l專用字符:共27個,P48表。3.1.2編碼規(guī)則與約定
(一)編碼規(guī)則1.VB代碼中不區(qū)分字母的大小寫。2.同一行上可以書寫多條語句,但語句間要用冒號“:”分隔。3.若一個語句行不能寫下全部語句,或在特別需要時,可以換行。換行時需在本行后加入續(xù)行符,1個空格加下劃線“_”。3.1VB語言字符集及編碼規(guī)則3.1.1VB的字符集24.一行最多允許255個字符。5.注釋以Rem開頭,也可以使用單引號“'”,注釋內(nèi)容可直接出現(xiàn)在語句的后面。6.在程序轉(zhuǎn)向時需用到標(biāo)號,標(biāo)號是以字母開始而以冒號結(jié)束的字符串。(二)約定1.為了提高程序的可讀性,對于VB中的關(guān)鍵字其首字母大寫,其余字母小寫2.注釋有利于程序的維護和調(diào)試Rem開始或單撇‘。例如:‘ThisisaVBREMThisisaVB
在6.0中新增了“塊注釋/取消塊注釋”(視圖/工具欄/編輯)4.一行最多允許255個字符。(二)約定1.為了提高程33.通常不使用行號4.對象名命名約定:每個對象的名字由3個小寫字母組成的前綴(指明對象的類型)和表示該對象作用的縮寫字母組成。如命令按鈕前綴:cmd3.通常不使用行號43.2
數(shù)據(jù)類型3.2.1標(biāo)準數(shù)據(jù)類型3.2數(shù)據(jù)類型3.2.1標(biāo)準數(shù)據(jù)類型53.2.2自定義類型在模塊級別中使用,用于定義包含一個或多個元素的用戶自定義的數(shù)據(jù)類型。使用形式:
Type自定義類型名 元素名[([下標(biāo)])]As類型名 元素名[([下標(biāo)])]As類型名...EndType
見下例3.2.2自定義類型在模塊級別中使用,用6TypeStudent XhAsSting XmAsString XbAsString NlAsInteger ScoreAsSingleEndType例如:對于一個學(xué)生的“學(xué)號”、“姓名”、“性別”、“年齡”、“入學(xué)成績”等數(shù)據(jù),為了處理數(shù)據(jù)的方便,常常需要把這些數(shù)據(jù)定義成一個新的數(shù)據(jù)類型(如Student類型)。TypeStudent例如:對73.3常量和變量3.3.1常量在程序運行過程中,其值不能被改變的量稱為常量。在VB中有三類常量:普通常量符號常量系統(tǒng)常量一、普通常量1.
整型常量
(1)整型(Integer):表示-32768至32767之間的整數(shù)例如:1011020(2)長整型(Long):表示-2,147,483,648至2,147,483,647之間的整數(shù)例如:長整型常數(shù)的書寫:23&3.3常量和變量3.3.1常量8通常我們說的整型常量指的是十進制整數(shù),但VB中可以使用八進制和十六進制形式的整型常數(shù),因此整型常數(shù)有如下三種形式:
1)十進制整數(shù)。如125,0,-89。202)八進制整數(shù)。以&或&O(字母O)開頭的整數(shù)是八進制整數(shù),如&O25表示八進制整數(shù)25,即(25)8
,等于十進制數(shù)21。3)十六進制。以&H開頭的整數(shù)是十六進制整數(shù),如&H25表示十六進制整數(shù)25,即(25)16,等于十進制數(shù)37。VB中的顏色數(shù)據(jù)常常用十六進制整數(shù)表示。通常我們說的整型常量指的是十進制整數(shù),但VB92、實型常量1)單精度實型(Single):有效數(shù)為7位表示-3.37E+38至3.37E+38之間的實數(shù)2)雙精度實型(Double):有效數(shù)為15位實型常量的表示:1)十進制小數(shù)形式。它是由正負號(+,-)、數(shù)字(0~9)和小數(shù)點(.)或類型符號(!、#)組成,即±n.n,±n!或±n#,其中n是0~9的數(shù)字。例如0.123、.123、123.0、123!、123#等都是十進制小數(shù)形式。2)指數(shù)形式?!纍E±m(xù)或
±n.nE±m(xù),±nD±m(xù)或
±n.nD±m(xù)
例:1.25E+3和1.25D+3相當(dāng)于1250.0或者1.25×103。2、實型常量103、字符串常量在VB中字符串常量是用雙引號“"”括起的一串字符,例如"ABC","abcdefg","123","0","VB程序設(shè)計"等。說明:(1)字符串中的字符可以是所有西文字符和漢字、標(biāo)點符號等;(2)""表示空字符串,而""表示有一個空格的字符串;(3)若字符串中有雙引號,例如ABD"XYZ,則用連續(xù)兩個雙引號表示,即:"ABD""XYZ“4、邏輯(Boolean)數(shù)據(jù)類型只有兩個值True,或False。將邏輯數(shù)據(jù)轉(zhuǎn)換成整型時:True為-1,F(xiàn)alse為0;其它數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)時:非0為True,0為False。3、字符串常量115、日期常量日期(Date)型數(shù)據(jù)按8字節(jié)的浮點數(shù)來存儲,表示日期范圍從公元100年1月1日~9999年12月31日,而時間范圍從0:00:00~23:59:59。一種在字面上可被認作日期和時間的字符,只要用號碼符“#”括起來,都可以作為日期型數(shù)值常量。例:#09/02/99#、#January4,1989#,#2002-5-414:30:00PM#都是合法的日期型常量。
說明:當(dāng)以數(shù)值表示日期數(shù)據(jù)時,整數(shù)部分代表日期,而小數(shù)部分代表時間;例如1表示1899年12月31日。大于1的整數(shù)表示該日期以后的日期,0和小于0的整數(shù)表示該日期以前的日期。5、日期常量12二、符號常量在程序中,某個常量多次被使用,則可以使用一個符號來代替該常量,這樣不僅在書寫上方便,而且有效地改進了程序的可讀性和可維護性。VB中使用關(guān)鍵字Const聲明符號常量。其格式如下:Const常量名[As類型|類型符號]=常數(shù)表達式例如:ConstPI#=3.1415926535等價于:ConstPIAsDouble=3.1415926535三、系統(tǒng)常量VB系統(tǒng)提供了應(yīng)用程序和控件的系統(tǒng)定義常數(shù)。它們存放于系統(tǒng)的對象庫中,在“對象瀏覽器”中的VisualBasic(VB)和VisualBasicforapplications(VBA)對象庫中列舉了VisualBasic的常數(shù)二、符號常量三、系統(tǒng)常量13例如,要將文本框Text1的前景顏色設(shè)置為紅色,可以使用下面的語句:Text1.ForeColor=vbRed這里的vbRed就是系統(tǒng)常量。這比直接使用16進制數(shù)來設(shè)置要直觀得多。
又如,窗口狀態(tài)屬性WindowsState可取0,1,2三個值,對應(yīng)三種不同狀態(tài)(參見第二章表2-2所示)。在程序中使用語句Myform.WindowsState=vbMaxmized,將窗口極大化,顯然要比使用語句Myform.WindowsState=2易于閱讀和理解。例如,要將文本框Text1的前景顏色設(shè)置為紅14一.變量和常量的命名規(guī)則1.以字母或漢字開頭,后可跟字母、數(shù)字或下劃線組成,長度小于等于40個字符;2.不能使用VB中的關(guān)鍵字;3.VB中不區(qū)分變量名的大小寫.4.為了增加程序的可讀性,可在變量名前加一個縮寫的前綴來表明該變量的數(shù)據(jù)類型。例如:strAbc,(字符串變量)iCount,(整型變量)dblx,(雙精度變量)sYz(單精度變量)3.3.2變量一.變量和常量的命名規(guī)則3.3.2變量15二.變量聲明
1.用Dim語句顯式聲明變量形式:Dim變量名[AS類型] Dim變量名[類型符]例 DimiCountAsinteger,sumAssingle 等價于DimiCount%,sum!2.隱式聲明VisualBasic允許用戶在編寫應(yīng)用程序時,不聲明變量而直接使用,系統(tǒng)臨時為新變量分配存儲空間并使用,這就是隱式聲明。所有隱式聲明的變量都是Variant數(shù)據(jù)類型。VisualBasic根據(jù)程序中賦予變量的值來自動調(diào)整變量的類型。例如:二.變量聲明16下面是一個很簡單的程序,其使用的變量a,b,Sum都沒有事先定義。PrivateSubForm_Click()Sum=0a=10:b=20Sum=a+bPrint"Sum=";SumEndSub3.強制顯式聲明——OptionExplicit語句良好的編程習(xí)慣都應(yīng)該是“先聲明變量,后使用變量”,這樣做可以提高程序的效率,同時也使程序易于調(diào)試。VisualBasic中可以強制顯式聲明,可以在窗體模塊、標(biāo)準模塊和類模塊的通用聲明段中加入語句:OptionExplicit下面是一個很簡單的程序,其使用的變量a,b,Sum都沒173.4運算符和表達式一.運算符
1.算術(shù)運算符(均是雙目運算,ia=3)例:5+10mod10\9/3+2^2結(jié)果是:103.4運算符和表達式一.運算符10182.字符串運算符與字符串表達式字符串運算符有:&、+。功能是字符串連接例如:"ABCD"+"EFGHI"'結(jié)果為:ABCDEFGHI“VB”&“程序設(shè)計教程”'結(jié)果為:VB程序設(shè)計教程說明:當(dāng)連接符兩旁的操作量都為字符串時,上述兩個連接符等價。它們區(qū)別是:
+(連接運算):兩個操作數(shù)均應(yīng)為字符串類型;
&(連接運算):兩個操作數(shù)既可為字符型也可為數(shù)值型,當(dāng)是數(shù)值型時,系統(tǒng)自動先將其轉(zhuǎn)換為數(shù)字字符,然后進行連接操作。2.字符串運算符與字符串表達式19例:"100"+123'結(jié)果為223"100"+"123"'結(jié)果為100123"Abc"+"123"'出錯"100"&123'結(jié)果為100123100&123'結(jié)果為100123"Abc"&"123"'結(jié)果為Abc123"Abc"&123'結(jié)果為Abc123注意:使用運算符“&”時,變量與運算符“&”之間應(yīng)加一個空格。這是因為符號“&”還是長整型的類型定義符,如果變量與符號“&”接在一起,VB系統(tǒng)先把它作為類型定義符處理,因而就會出現(xiàn)語法錯誤。例:注意:使用運算符“&”時,變量與運算符203.4.3關(guān)系運算符與關(guān)系表達式
關(guān)系運算符都是雙目運算,是用來比較兩個運算量之間的關(guān)系,關(guān)系表達式的運算結(jié)果為邏輯量。若關(guān)系成立,結(jié)果為True,若關(guān)系不成立,結(jié)果為False。VB中的關(guān)系運算符如下表所示。運算符含義優(yōu)先級實例結(jié)果<小于所有關(guān)系運算優(yōu)先級相同。低于算術(shù)運算的加“+”,減“-”運算,高于邏輯非“Not”運算。15+10<20False<=小于或等于10<=20True>大于10>20False>=大于或等于"This">="That"True=等于"This"="That"False<>不等于"This"<>"That"TrueLike字符串匹配"This"Like*is"TrueIs對象比較
3.4.3關(guān)系運算符與關(guān)系表達式關(guān)系運算21關(guān)系運算的規(guī)則如下:(1)當(dāng)兩個操作式均為數(shù)值型,按數(shù)值大小比較。(2)字符串比較,則按字符的ASCII碼值從左到右一一比較,直到出現(xiàn)不同的字符為止.。例:"ABCDE">"ABRA" 結(jié)果為False(3)數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù)比較,如:29>"189",按數(shù)值比較,結(jié)果為False。(4)數(shù)值型與不能轉(zhuǎn)換成數(shù)值型的字符型比較,如:77>"sdcd",不能比較,系統(tǒng)出錯。(5)“Like”運算符是VB6.0新增加的。其使用格式為:str1Likestr2關(guān)系運算的規(guī)則如下:(3)數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù)比較,223.4.4邏輯運算符與邏輯表達式
Not邏輯非為單目運算符(要求一個操作數(shù)),其它為雙目運算符。
條件表達式1And條件表達式2條件表達式均為T結(jié)果為T條件表達式1Or條件表達式2條件表達式有一個T結(jié)果為T3.4.4邏輯運算符與邏輯表達式23說明:(1)邏輯運算符的優(yōu)先級不相同,Not(邏輯非)最高,但它低于關(guān)系運算,Imp(邏輯蘊含)最低。(2)VB中常用的邏輯運算符是Not、And和Or。它們用于將多個關(guān)系表達式進行邏輯判斷。(XorEqvImp)例如,數(shù)學(xué)上表示某個數(shù)在某個區(qū)域時用表達式:10≤X<20,用VB程序中應(yīng)寫成:X>=10AndX<20(3)參與邏輯運算的量一般都應(yīng)是邏輯型數(shù)據(jù),如果參與邏輯運算的兩操作數(shù)是數(shù)值量,則以數(shù)值的二進制值逐位進行邏輯運算(0當(dāng)False,1當(dāng)True)。關(guān)系表達式與邏輯表達式常常用在條件語句與循環(huán)語句中,作為條件控制程序的流程走向。說明:243.4.5日期型表達式日期型數(shù)據(jù)是一種特殊的數(shù)值型數(shù)據(jù),只能有下面3種情況:1.一個日期型數(shù)據(jù)可以相減:
DateB-DateA結(jié)果是一個數(shù)值型整數(shù)(兩個日期相差的天數(shù))。例如:#05/08/2002#-#05/01/2002#其結(jié)果為數(shù)值:72.一個日期型數(shù)據(jù)(DateA)與一數(shù)值數(shù)據(jù)(N)可作加法運算:DateA+N其結(jié)果仍是一個日期型數(shù)據(jù)。例如:#05/01/2002#+7其結(jié)果為日期型數(shù)據(jù):#05/08/2002#3.一個日期型數(shù)據(jù)(DateA)與一數(shù)值數(shù)據(jù)(N)可作減法運算:DateA-N其結(jié)果仍是一個日期型數(shù)據(jù)。例如:#05/08/2002#-7其結(jié)果為日期型數(shù)據(jù):#05/01/2002#3.4.5日期型表達式253.4.6運算符的執(zhí)行順序
表達式中出現(xiàn)了多種不同類型的運算符時,其運算符優(yōu)先級如下:
算術(shù)運算符>=字符運算符>關(guān)系運算符>邏輯運算
說明:1.當(dāng)一個表達式中出現(xiàn)多種運算符時,首先進行算術(shù)運算符,接著處理字符串連接運算符,然后處理比較運算符,最后處理邏輯運算符,在各類運算中再按照相應(yīng)的優(yōu)先次序進行。2.可以用括號改變優(yōu)先順序,強令表達式的某些部分優(yōu)先運行。括號內(nèi)的運算總是優(yōu)先于括號外的運算。對于多重括號,總是由內(nèi)到外。3.4.6運算符的執(zhí)行順序表達式中263.表達式的書寫中需注意的問題(1)運算符不能相鄰。例a+-b是錯誤的。(2)乘號不能省略。例x乘以y應(yīng)寫成:x*y(3)括號必須成對出現(xiàn),均使用圓括號。(4)表達式從左到右在同一基準并排書寫,不能出現(xiàn)上下標(biāo)(5)要注意各種運算符的優(yōu)先級別,為保持運算順序,在寫VB表達式時需要適當(dāng)添加括號(),若用到庫函數(shù)必須按庫函要求書寫。如:
(b-sqr(b*b-4*a*c))/(2*a)(a+b)/(a-b)
3.表達式的書寫中需注意的問題27VB提供了上百種內(nèi)部函數(shù)(庫函數(shù)),要求掌握這些常用函數(shù)的功能及使用。調(diào)用方法:
函數(shù)名(參數(shù)列表)有參函數(shù)函數(shù)名無參函數(shù)說明:
(1)使用庫函數(shù)要注意參數(shù)的個數(shù)及其參數(shù)的數(shù)據(jù)類型(2)要注意函數(shù)的定義域(自變量或參數(shù)的取值范圍)例如:sqr(x)要求:x>=0(3)要注意函數(shù)的值域。如:exp(23773)的值就超出實數(shù)在計算機中的表示范圍。3.5常用內(nèi)部函數(shù)VB提供了上百種內(nèi)部函數(shù)(庫函數(shù)),要求掌握這些常281.數(shù)學(xué)函數(shù)常用的數(shù)學(xué)函數(shù)見表3-8所示Abs(N)Cos(N)Sin(N)Exp(N)Log(N)Sqr(N)Rnd[(N)]Sgn(N)說明:(1)在三角函數(shù)中的自變量是以弧度為單位。如:sin300sin(3.14159/180*30)(2)Rnd函數(shù)返回0~1(包括0和不包括1)之間的雙精度隨機數(shù)。Randomize用于產(chǎn)生新“種子”若要產(chǎn)生1-100的隨機整數(shù):Int(Rnd*100)+1
提問:怎樣產(chǎn)生[N,M]區(qū)間的隨機數(shù)?
1.數(shù)學(xué)函數(shù)292.轉(zhuǎn)換函數(shù)常用的轉(zhuǎn)換函數(shù)見p62表所示說明:(1)要區(qū)別兩個取整函數(shù)int()和fix()Fix(N)為截斷取整,即去掉小數(shù)后的數(shù)。Int(N)不大于N的最大整數(shù)。N>0與int(N)相同,當(dāng)N<0時,int(N)與fix(N)-1相等。例如:Fix(9.59)=9,Int(9.59)=9Fix(-9.59)=-9,Int(-9.59)=-10
思考:如何實現(xiàn)四舍五入取整?(2)Asc("Abcd")
值為:65(只取首字母的Ascii值)
(3)Val("abc123")值為:0,Val("1.2sa10")值為1.2注意:Val()函數(shù)只將最前面的數(shù)字字符轉(zhuǎn)換為數(shù)值。2.轉(zhuǎn)換函數(shù)303.字符串操作函數(shù)
常用的字符串函數(shù)見p46表說明:如果返回是字符型,則函數(shù)后有“$”字符。當(dāng)然一般也可以不寫,習(xí)慣都寫上。例如:len("Thisisabook!")15Left$("ABCDEFG",3)"ABC"Mid$("ABCDEFG",2,3)"BCD"InStr(2,“ABCDEFGEF”,“EF”) 5(第一次出現(xiàn)的位置)3.字符串操作函數(shù)314.日期、時間函數(shù)
常用的日期時間函數(shù)見P65表
掌握:Time()Date()Now()Year()Month()Day()5.格式輸出函數(shù)使用格式
Format$(表達式[,“格式字符串”])
功能:按用戶指定格式返回表達式,常常用在print方法中。使用形式:print
Format$(表達式[,“格式字符串”])表達式:可以是數(shù)值、日期或字符串型表達式。格式字符串:表示輸出表達式時采用的輸出格式。不同數(shù)據(jù)類型所采用的格式字符串是不同的。4.日期、時間函數(shù)5.格式輸出函數(shù)32(1)數(shù)值型數(shù)據(jù)格式化(見表3-12)
注意:對于符號:0與#,當(dāng)數(shù)值的實際位數(shù)比格式控制給定的位數(shù)多時,系統(tǒng)將按四舍五入返回給定的位數(shù)。如:Format(3.14159,“###.###”),其值為3.142(2)日期和時間型數(shù)據(jù)格式化(見表3-13)缺省日期格式為:“mm/dd/yy”,時間格式:“hh:mm:ss”
(3)字符串類型數(shù)據(jù)格式化(見表3-14)(1)數(shù)值型數(shù)據(jù)格式化(見表3-12)333.5.6其它函數(shù)除上面常用的四類函數(shù),VB中還有測試函數(shù)、與文件操作有關(guān)的函數(shù)及其它函數(shù)作業(yè):課后習(xí)題本周實驗內(nèi)容:實驗指導(dǎo)書上實驗3.5.6其它函數(shù)作業(yè):34習(xí)題3.1如何在程序中使用注釋?3.2VisualBasic提供了哪些標(biāo)準數(shù)據(jù)類型?聲明類型時,其類型關(guān)鍵字各是什么?其類型說明符又是什么?3.3符號常量與變量有什么區(qū)別?什么情況下宜用符號常量?什么情況下宜用變量?3.4下列哪幾個是合法的變量名?ABCde String abc_1 ABC123 123Bcd ABπC習(xí)題3.1如何在程序中使用注釋?353.5如果希望使用變量x來存放數(shù)據(jù)877438.34243,應(yīng)該將變量x聲明為何種類型?3.6在VisualBasic中,對于尚未賦值的變量,系統(tǒng)默認值是什么?3.7VisualBasic的字符串運算符有哪兩種?3.8VisualBasic共有幾種表達式?如何確定表達式的類型?3.9函數(shù)Int(Rnd(0)*10)是在哪個范圍內(nèi)的整數(shù)?3.5如果希望使用變量x來存放數(shù)據(jù)877438.3424363.10將下列數(shù)學(xué)表達式改寫成等價的VisualBasic表達式。(1)A·B+Cos(35o)(2)[(x+y)+z]×10-5(a+b)(3)(4)㏑(e2+)(5) (6)3.11把VisualBasic算術(shù)表達式a/(b+c/(d+e/Sqr(f)))寫成數(shù)學(xué)表達式。3.10將下列數(shù)學(xué)表達式改寫成等價的VisualBas373.12設(shè)a=2,b=3,c=4,d=5,求下列表達式的值。(1)6/a^2(2)4Mod7\2*3/2+9\2^3(3)#11/22/01#-10(4)"123"<>"123"&"ABC"&"XYZ"(5)a*b>=8(6)"ABD"<"ABC"(7)Sgn(-2^a)+Abs(-2^b)+Int(-2^c)(8)a>bAndc<=dOr2*a>cAndb<>cOrc>d(9)Nota<=cOrc*4=b^2Andb<>a+c3.12設(shè)a=2,b=3,c=4,d=5,求下列表達式的383.13根據(jù)所給條件,列出邏輯表達式。(1)閏年的條件是年份(year)能被4整除,但不能被100整除;或者能被400整除。(2)一元二次方程ax2+bx+c=0有實根的條件為:a≠0,并且b2-4ac≥0。(3)x是小于100的非負數(shù)。3.13根據(jù)所給條件,列出邏輯表達式。393.14寫出下列函數(shù)的值。(1)Int(-3.14159) (2)Sqr(Sqr(64))(3)Fix(-3.1415926)(4)Int(Abs(99-100)/2)(5)Sgn(7*3+2)(6)UCase("Hello")(7)Left("Hello",2)(8)Val("16Year")(9)Str(-459.65) (10)Len("Hello")3.14寫出下列函數(shù)的值。403.15如果x是一個正實數(shù),對x的第3位小數(shù)四舍五入的表達式是:(1)0.01*Int(x+0.005)(2)0.01*Int(100*(x+0.005))(3)0.01*Int(100*(x+0.05)) (4)0.01*Int(x+0.05)3.15如果x是一個正實數(shù),對x的第3位小數(shù)四舍五入的表413.16寫出執(zhí)行以下語句后的輸出結(jié)果。PrintChr$(65)a$="Good":b$="Morning"Printa+bPrinta&bs$="ABCDEFGHIJK"PrintMid(s,3,4)PrintLen(s)PrintInStr(s,"efg")PrintLCase(s)3.16寫出執(zhí)行以下語句后的輸出結(jié)果。423.17假定當(dāng)前日期為2003年2月16日,星期日,請寫出執(zhí)行以下語句后的輸出結(jié)果。PrintDay(Now)PrintMonth(Now)PrintYear(Now)PrintWeekday(Now)3.17假定當(dāng)前日期為2003年2月16日,星期日,請寫43第三章數(shù)據(jù)類型、常量、變量及表達式本章內(nèi)容及要求:1.熟悉VB程序中代碼和語句書寫規(guī)則;2.掌握VB的數(shù)據(jù)類型;3.掌握VB的運算符和表達式的使用;4.掌握常用內(nèi)部函數(shù)的使用;本章重點:變量和常量的定義及使用、運算符和表達式的使用及常用內(nèi)部函數(shù)的使用。本章難點:數(shù)據(jù)類型、內(nèi)部函數(shù)。第三章數(shù)據(jù)類型、常量、變量及表達式本章內(nèi)容及要求:本章443.1VB語言字符集及編碼規(guī)則3.1.1VB的字符集l
字母:大寫英文字母A—Z;小寫英文字母a—z。l
數(shù)字:0一9;l專用字符:共27個,P48表。3.1.2編碼規(guī)則與約定
(一)編碼規(guī)則1.VB代碼中不區(qū)分字母的大小寫。2.同一行上可以書寫多條語句,但語句間要用冒號“:”分隔。3.若一個語句行不能寫下全部語句,或在特別需要時,可以換行。換行時需在本行后加入續(xù)行符,1個空格加下劃線“_”。3.1VB語言字符集及編碼規(guī)則3.1.1VB的字符集454.一行最多允許255個字符。5.注釋以Rem開頭,也可以使用單引號“'”,注釋內(nèi)容可直接出現(xiàn)在語句的后面。6.在程序轉(zhuǎn)向時需用到標(biāo)號,標(biāo)號是以字母開始而以冒號結(jié)束的字符串。(二)約定1.為了提高程序的可讀性,對于VB中的關(guān)鍵字其首字母大寫,其余字母小寫2.注釋有利于程序的維護和調(diào)試Rem開始或單撇‘。例如:‘ThisisaVBREMThisisaVB
在6.0中新增了“塊注釋/取消塊注釋”(視圖/工具欄/編輯)4.一行最多允許255個字符。(二)約定1.為了提高程463.通常不使用行號4.對象名命名約定:每個對象的名字由3個小寫字母組成的前綴(指明對象的類型)和表示該對象作用的縮寫字母組成。如命令按鈕前綴:cmd3.通常不使用行號473.2
數(shù)據(jù)類型3.2.1標(biāo)準數(shù)據(jù)類型3.2數(shù)據(jù)類型3.2.1標(biāo)準數(shù)據(jù)類型483.2.2自定義類型在模塊級別中使用,用于定義包含一個或多個元素的用戶自定義的數(shù)據(jù)類型。使用形式:
Type自定義類型名 元素名[([下標(biāo)])]As類型名 元素名[([下標(biāo)])]As類型名...EndType
見下例3.2.2自定義類型在模塊級別中使用,用49TypeStudent XhAsSting XmAsString XbAsString NlAsInteger ScoreAsSingleEndType例如:對于一個學(xué)生的“學(xué)號”、“姓名”、“性別”、“年齡”、“入學(xué)成績”等數(shù)據(jù),為了處理數(shù)據(jù)的方便,常常需要把這些數(shù)據(jù)定義成一個新的數(shù)據(jù)類型(如Student類型)。TypeStudent例如:對503.3常量和變量3.3.1常量在程序運行過程中,其值不能被改變的量稱為常量。在VB中有三類常量:普通常量符號常量系統(tǒng)常量一、普通常量1.
整型常量
(1)整型(Integer):表示-32768至32767之間的整數(shù)例如:1011020(2)長整型(Long):表示-2,147,483,648至2,147,483,647之間的整數(shù)例如:長整型常數(shù)的書寫:23&3.3常量和變量3.3.1常量51通常我們說的整型常量指的是十進制整數(shù),但VB中可以使用八進制和十六進制形式的整型常數(shù),因此整型常數(shù)有如下三種形式:
1)十進制整數(shù)。如125,0,-89。202)八進制整數(shù)。以&或&O(字母O)開頭的整數(shù)是八進制整數(shù),如&O25表示八進制整數(shù)25,即(25)8
,等于十進制數(shù)21。3)十六進制。以&H開頭的整數(shù)是十六進制整數(shù),如&H25表示十六進制整數(shù)25,即(25)16,等于十進制數(shù)37。VB中的顏色數(shù)據(jù)常常用十六進制整數(shù)表示。通常我們說的整型常量指的是十進制整數(shù),但VB522、實型常量1)單精度實型(Single):有效數(shù)為7位表示-3.37E+38至3.37E+38之間的實數(shù)2)雙精度實型(Double):有效數(shù)為15位實型常量的表示:1)十進制小數(shù)形式。它是由正負號(+,-)、數(shù)字(0~9)和小數(shù)點(.)或類型符號(!、#)組成,即±n.n,±n!或±n#,其中n是0~9的數(shù)字。例如0.123、.123、123.0、123!、123#等都是十進制小數(shù)形式。2)指數(shù)形式?!纍E±m(xù)或
±n.nE±m(xù),±nD±m(xù)或
±n.nD±m(xù)
例:1.25E+3和1.25D+3相當(dāng)于1250.0或者1.25×103。2、實型常量533、字符串常量在VB中字符串常量是用雙引號“"”括起的一串字符,例如"ABC","abcdefg","123","0","VB程序設(shè)計"等。說明:(1)字符串中的字符可以是所有西文字符和漢字、標(biāo)點符號等;(2)""表示空字符串,而""表示有一個空格的字符串;(3)若字符串中有雙引號,例如ABD"XYZ,則用連續(xù)兩個雙引號表示,即:"ABD""XYZ“4、邏輯(Boolean)數(shù)據(jù)類型只有兩個值True,或False。將邏輯數(shù)據(jù)轉(zhuǎn)換成整型時:True為-1,F(xiàn)alse為0;其它數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)時:非0為True,0為False。3、字符串常量545、日期常量日期(Date)型數(shù)據(jù)按8字節(jié)的浮點數(shù)來存儲,表示日期范圍從公元100年1月1日~9999年12月31日,而時間范圍從0:00:00~23:59:59。一種在字面上可被認作日期和時間的字符,只要用號碼符“#”括起來,都可以作為日期型數(shù)值常量。例:#09/02/99#、#January4,1989#,#2002-5-414:30:00PM#都是合法的日期型常量。
說明:當(dāng)以數(shù)值表示日期數(shù)據(jù)時,整數(shù)部分代表日期,而小數(shù)部分代表時間;例如1表示1899年12月31日。大于1的整數(shù)表示該日期以后的日期,0和小于0的整數(shù)表示該日期以前的日期。5、日期常量55二、符號常量在程序中,某個常量多次被使用,則可以使用一個符號來代替該常量,這樣不僅在書寫上方便,而且有效地改進了程序的可讀性和可維護性。VB中使用關(guān)鍵字Const聲明符號常量。其格式如下:Const常量名[As類型|類型符號]=常數(shù)表達式例如:ConstPI#=3.1415926535等價于:ConstPIAsDouble=3.1415926535三、系統(tǒng)常量VB系統(tǒng)提供了應(yīng)用程序和控件的系統(tǒng)定義常數(shù)。它們存放于系統(tǒng)的對象庫中,在“對象瀏覽器”中的VisualBasic(VB)和VisualBasicforapplications(VBA)對象庫中列舉了VisualBasic的常數(shù)二、符號常量三、系統(tǒng)常量56例如,要將文本框Text1的前景顏色設(shè)置為紅色,可以使用下面的語句:Text1.ForeColor=vbRed這里的vbRed就是系統(tǒng)常量。這比直接使用16進制數(shù)來設(shè)置要直觀得多。
又如,窗口狀態(tài)屬性WindowsState可取0,1,2三個值,對應(yīng)三種不同狀態(tài)(參見第二章表2-2所示)。在程序中使用語句Myform.WindowsState=vbMaxmized,將窗口極大化,顯然要比使用語句Myform.WindowsState=2易于閱讀和理解。例如,要將文本框Text1的前景顏色設(shè)置為紅57一.變量和常量的命名規(guī)則1.以字母或漢字開頭,后可跟字母、數(shù)字或下劃線組成,長度小于等于40個字符;2.不能使用VB中的關(guān)鍵字;3.VB中不區(qū)分變量名的大小寫.4.為了增加程序的可讀性,可在變量名前加一個縮寫的前綴來表明該變量的數(shù)據(jù)類型。例如:strAbc,(字符串變量)iCount,(整型變量)dblx,(雙精度變量)sYz(單精度變量)3.3.2變量一.變量和常量的命名規(guī)則3.3.2變量58二.變量聲明
1.用Dim語句顯式聲明變量形式:Dim變量名[AS類型] Dim變量名[類型符]例 DimiCountAsinteger,sumAssingle 等價于DimiCount%,sum!2.隱式聲明VisualBasic允許用戶在編寫應(yīng)用程序時,不聲明變量而直接使用,系統(tǒng)臨時為新變量分配存儲空間并使用,這就是隱式聲明。所有隱式聲明的變量都是Variant數(shù)據(jù)類型。VisualBasic根據(jù)程序中賦予變量的值來自動調(diào)整變量的類型。例如:二.變量聲明59下面是一個很簡單的程序,其使用的變量a,b,Sum都沒有事先定義。PrivateSubForm_Click()Sum=0a=10:b=20Sum=a+bPrint"Sum=";SumEndSub3.強制顯式聲明——OptionExplicit語句良好的編程習(xí)慣都應(yīng)該是“先聲明變量,后使用變量”,這樣做可以提高程序的效率,同時也使程序易于調(diào)試。VisualBasic中可以強制顯式聲明,可以在窗體模塊、標(biāo)準模塊和類模塊的通用聲明段中加入語句:OptionExplicit下面是一個很簡單的程序,其使用的變量a,b,Sum都沒603.4運算符和表達式一.運算符
1.算術(shù)運算符(均是雙目運算,ia=3)例:5+10mod10\9/3+2^2結(jié)果是:103.4運算符和表達式一.運算符10612.字符串運算符與字符串表達式字符串運算符有:&、+。功能是字符串連接例如:"ABCD"+"EFGHI"'結(jié)果為:ABCDEFGHI“VB”&“程序設(shè)計教程”'結(jié)果為:VB程序設(shè)計教程說明:當(dāng)連接符兩旁的操作量都為字符串時,上述兩個連接符等價。它們區(qū)別是:
+(連接運算):兩個操作數(shù)均應(yīng)為字符串類型;
&(連接運算):兩個操作數(shù)既可為字符型也可為數(shù)值型,當(dāng)是數(shù)值型時,系統(tǒng)自動先將其轉(zhuǎn)換為數(shù)字字符,然后進行連接操作。2.字符串運算符與字符串表達式62例:"100"+123'結(jié)果為223"100"+"123"'結(jié)果為100123"Abc"+"123"'出錯"100"&123'結(jié)果為100123100&123'結(jié)果為100123"Abc"&"123"'結(jié)果為Abc123"Abc"&123'結(jié)果為Abc123注意:使用運算符“&”時,變量與運算符“&”之間應(yīng)加一個空格。這是因為符號“&”還是長整型的類型定義符,如果變量與符號“&”接在一起,VB系統(tǒng)先把它作為類型定義符處理,因而就會出現(xiàn)語法錯誤。例:注意:使用運算符“&”時,變量與運算符633.4.3關(guān)系運算符與關(guān)系表達式
關(guān)系運算符都是雙目運算,是用來比較兩個運算量之間的關(guān)系,關(guān)系表達式的運算結(jié)果為邏輯量。若關(guān)系成立,結(jié)果為True,若關(guān)系不成立,結(jié)果為False。VB中的關(guān)系運算符如下表所示。運算符含義優(yōu)先級實例結(jié)果<小于所有關(guān)系運算優(yōu)先級相同。低于算術(shù)運算的加“+”,減“-”運算,高于邏輯非“Not”運算。15+10<20False<=小于或等于10<=20True>大于10>20False>=大于或等于"This">="That"True=等于"This"="That"False<>不等于"This"<>"That"TrueLike字符串匹配"This"Like*is"TrueIs對象比較
3.4.3關(guān)系運算符與關(guān)系表達式關(guān)系運算64關(guān)系運算的規(guī)則如下:(1)當(dāng)兩個操作式均為數(shù)值型,按數(shù)值大小比較。(2)字符串比較,則按字符的ASCII碼值從左到右一一比較,直到出現(xiàn)不同的字符為止.。例:"ABCDE">"ABRA" 結(jié)果為False(3)數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù)比較,如:29>"189",按數(shù)值比較,結(jié)果為False。(4)數(shù)值型與不能轉(zhuǎn)換成數(shù)值型的字符型比較,如:77>"sdcd",不能比較,系統(tǒng)出錯。(5)“Like”運算符是VB6.0新增加的。其使用格式為:str1Likestr2關(guān)系運算的規(guī)則如下:(3)數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù)比較,653.4.4邏輯運算符與邏輯表達式
Not邏輯非為單目運算符(要求一個操作數(shù)),其它為雙目運算符。
條件表達式1And條件表達式2條件表達式均為T結(jié)果為T條件表達式1Or條件表達式2條件表達式有一個T結(jié)果為T3.4.4邏輯運算符與邏輯表達式66說明:(1)邏輯運算符的優(yōu)先級不相同,Not(邏輯非)最高,但它低于關(guān)系運算,Imp(邏輯蘊含)最低。(2)VB中常用的邏輯運算符是Not、And和Or。它們用于將多個關(guān)系表達式進行邏輯判斷。(XorEqvImp)例如,數(shù)學(xué)上表示某個數(shù)在某個區(qū)域時用表達式:10≤X<20,用VB程序中應(yīng)寫成:X>=10AndX<20(3)參與邏輯運算的量一般都應(yīng)是邏輯型數(shù)據(jù),如果參與邏輯運算的兩操作數(shù)是數(shù)值量,則以數(shù)值的二進制值逐位進行邏輯運算(0當(dāng)False,1當(dāng)True)。關(guān)系表達式與邏輯表達式常常用在條件語句與循環(huán)語句中,作為條件控制程序的流程走向。說明:673.4.5日期型表達式日期型數(shù)據(jù)是一種特殊的數(shù)值型數(shù)據(jù),只能有下面3種情況:1.一個日期型數(shù)據(jù)可以相減:
DateB-DateA結(jié)果是一個數(shù)值型整數(shù)(兩個日期相差的天數(shù))。例如:#05/08/2002#-#05/01/2002#其結(jié)果為數(shù)值:72.一個日期型數(shù)據(jù)(DateA)與一數(shù)值數(shù)據(jù)(N)可作加法運算:DateA+N其結(jié)果仍是一個日期型數(shù)據(jù)。例如:#05/01/2002#+7其結(jié)果為日期型數(shù)據(jù):#05/08/2002#3.一個日期型數(shù)據(jù)(DateA)與一數(shù)值數(shù)據(jù)(N)可作減法運算:DateA-N其結(jié)果仍是一個日期型數(shù)據(jù)。例如:#05/08/2002#-7其結(jié)果為日期型數(shù)據(jù):#05/01/2002#3.4.5日期型表達式683.4.6運算符的執(zhí)行順序
表達式中出現(xiàn)了多種不同類型的運算符時,其運算符優(yōu)先級如下:
算術(shù)運算符>=字符運算符>關(guān)系運算符>邏輯運算
說明:1.當(dāng)一個表達式中出現(xiàn)多種運算符時,首先進行算術(shù)運算符,接著處理字符串連接運算符,然后處理比較運算符,最后處理邏輯運算符,在各類運算中再按照相應(yīng)的優(yōu)先次序進行。2.可以用括號改變優(yōu)先順序,強令表達式的某些部分優(yōu)先運行。括號內(nèi)的運算總是優(yōu)先于括號外的運算。對于多重括號,總是由內(nèi)到外。3.4.6運算符的執(zhí)行順序表達式中693.表達式的書寫中需注意的問題(1)運算符不能相鄰。例a+-b是錯誤的。(2)乘號不能省略。例x乘以y應(yīng)寫成:x*y(3)括號必須成對出現(xiàn),均使用圓括號。(4)表達式從左到右在同一基準并排書寫,不能出現(xiàn)上下標(biāo)(5)要注意各種運算符的優(yōu)先級別,為保持運算順序,在寫VB表達式時需要適當(dāng)添加括號(),若用到庫函數(shù)必須按庫函要求書寫。如:
(b-sqr(b*b-4*a*c))/(2*a)(a+b)/(a-b)
3.表達式的書寫中需注意的問題70VB提供了上百種內(nèi)部函數(shù)(庫函數(shù)),要求掌握這些常用函數(shù)的功能及使用。調(diào)用方法:
函數(shù)名(參數(shù)列表)有參函數(shù)函數(shù)名無參函數(shù)說明:
(1)使用庫函數(shù)要注意參數(shù)的個數(shù)及其參數(shù)的數(shù)據(jù)類型(2)要注意函數(shù)的定義域(自變量或參數(shù)的取值范圍)例如:sqr(x)要求:x>=0(3)要注意函數(shù)的值域。如:exp(23773)的值就超出實數(shù)在計算機中的表示范圍。3.5常用內(nèi)部函數(shù)VB提供了上百種內(nèi)部函數(shù)(庫函數(shù)),要求掌握這些常711.數(shù)學(xué)函數(shù)常用的數(shù)學(xué)函數(shù)見表3-8所示Abs(N)Cos(N)Sin(N)Exp(N)Log(N)Sqr(N)Rnd[(N)]Sgn(N)說明:(1)在三角函數(shù)中的自變量是以弧度為單位。如:sin300sin(3.14159/180*30)(2)Rnd函數(shù)返回0~1(包括0和不包括1)之間的雙精度隨機數(shù)。Randomize用于產(chǎn)生新“種子”若要產(chǎn)生1-100的隨機整數(shù):Int(Rnd*100)+1
提問:怎樣產(chǎn)生[N,M]區(qū)間的隨機數(shù)?
1.數(shù)學(xué)函數(shù)722.轉(zhuǎn)換函數(shù)常用的轉(zhuǎn)換函數(shù)見p62表所示說明:(1)要區(qū)別兩個取整函數(shù)int()和fix()Fix(N)為截斷取整,即去掉小數(shù)后的數(shù)。Int(N)不大于N的最大整數(shù)。N>0與int(N)相同,當(dāng)N<0時,int(N)與fix(N)-1相等。例如:Fix(9.59)=9,Int(9.59)=9Fix(-9.59)=-9,Int(-9.59)=-10
思考:如何實現(xiàn)四舍五入取整?(2)Asc("Abcd")
值為:65(只取首字母的Ascii值)
(3)Val("abc123")值為:0,Val("1.2sa10")值為1.2注意:Val()函數(shù)只將最前面的數(shù)字字符轉(zhuǎn)換為數(shù)值。2.轉(zhuǎn)換函數(shù)733.字符串操作函數(shù)
常用的字符串函數(shù)見p46表說明:如果返回是字符型,則函數(shù)后有“$”字符。當(dāng)然一般也可以不寫,習(xí)慣都寫上。例如:len("Thisisabook!")15Left$("ABCDEFG",3)"ABC"Mid$("ABCDEFG",2,3)"BCD"InStr(2,“ABCDEFGEF”,“EF”) 5(第一次出現(xiàn)的位置)3.字符串操作函數(shù)744.日期、時間函數(shù)
常用的日期時間函數(shù)見P65表
掌握:Time()Date()Now()Year()Month()Day()5.格式輸出函數(shù)使用格式
Format$(
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑河2025年黑龍江黑河市愛輝區(qū)林業(yè)和草原局所屬事業(yè)單位招聘37人筆試歷年參考題庫附帶答案詳解
- 連云港2025年江蘇連云港市交通運輸綜合行政執(zhí)法支隊招聘急需緊缺人才4人筆試歷年參考題庫附帶答案詳解
- 蘇州江蘇蘇州張家港市市級機關(guān)服務(wù)中心招聘公益性崗位(編外)人員3人筆試歷年參考題庫附帶答案詳解
- 鹽城江蘇南京師范大學(xué)鹽城高級中學(xué)面向區(qū)外選調(diào)教師10人筆試歷年參考題庫附帶答案詳解
- 溫州浙江溫州市龍灣郵政管理局招聘編外工作人員筆試歷年參考題庫附帶答案詳解
- 江西2025年江西省檢驗檢測認證總院招聘49人筆試歷年參考題庫附帶答案詳解
- 昆明云南昆明醫(yī)科大學(xué)第一附屬醫(yī)院昆醫(yī)大附一院招聘科研助理人員筆試歷年參考題庫附帶答案詳解
- 恩施2025年湖北恩施鶴峰縣教育系統(tǒng)選調(diào)工作人員筆試歷年參考題庫附帶答案詳解
- 廣東2025年廣東省應(yīng)急管理廳所屬事業(yè)單位招聘博士研究生(第二批)8人筆試歷年參考題庫附帶答案詳解
- 宜賓2025年四川宜賓屏山縣招用幼兒園合同制教師40人筆試歷年參考題庫附帶答案詳解
- 《硅墨烯保溫裝飾一體板應(yīng)用技術(shù)規(guī)程》
- 名篇精讀百萬英鎊課件
- 拆除廢鐵工程方案(3篇)
- 軍隊醫(yī)療管理辦法
- CJ/T 325-2010公共浴池水質(zhì)標(biāo)準
- GB/T 10810.1-2025眼鏡鏡片第1部分:單焦和多焦
- 音樂節(jié)活動場地租賃合同
- 風(fēng)險管理顧問協(xié)議
- 一年級下冊字帖筆順
- 2024屆高考語文復(fù)習(xí):散文訓(xùn)練王劍冰散文(含解析)
- SWITCH暗黑破壞神3超級金手指修改 版本號:2.7.7.92380
評論
0/150
提交評論