第3章 數(shù)據(jù)類型與表達式_第1頁
第3章 數(shù)據(jù)類型與表達式_第2頁
第3章 數(shù)據(jù)類型與表達式_第3頁
第3章 數(shù)據(jù)類型與表達式_第4頁
第3章 數(shù)據(jù)類型與表達式_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章數(shù)據(jù)類型與表達式3.1.1字符集VisualBasic使用ANSI(美國國家標準協(xié)會)字符集。以下三類字符組成VisualBasic的基本字符集:數(shù)字:數(shù)字0~9。字母:大小寫英文字母A~Z,大小寫英文字母a~z。特殊字符:Space、!、"、#、$、%、&、'、(、)、*、+、,、–、.、/、:、;、<、=、>、?、@、[、\、]、^、_、{、|、}、~等。3.1基本字符集及編碼規(guī)則它們在語法上有著固定的含義,是語言的組成部分,用于表示系統(tǒng)提供的標準過程、函數(shù)、運算符、常量等。VisualBasic常用的系統(tǒng)關(guān)鍵字有:If、Else、End、Sub、Private、Function、Public、Form、Me、Unload、Do、While、Loop、Until、MsgBox、InputBox等。3.1.2關(guān)鍵字(1)VisualBasic程序是按行書寫的,一般一個代碼行書寫一條語句,輸入完按回車鍵結(jié)束。(2)代碼輸入時可以不區(qū)分大小寫字母。對關(guān)鍵字,系統(tǒng)自動識別并轉(zhuǎn)換為首字母大寫的標準形式;對于用戶定義的變量、過程名,以第一次定義的為準,以后輸入的自動轉(zhuǎn)換成首次定義的形式。(3)在同一行上可以書寫多個語句,語句之間用冒號“:”進行分隔。3.1.3編碼規(guī)則與約定(4)一條語句也可以分寫在多行上,通過在行的末尾加“續(xù)行符”(_:一個空格加一個下劃線字符)進行續(xù)行。(5)代碼中必須使用西文標點。(6)一個代碼行的長度最多不能超過255個字符。(7)使用注釋增加程序的可讀性,有利于程序的維護和調(diào)試。注釋語句以Rem開頭,也可以使用單引號“'”,其一般形式為:Rem<注釋內(nèi)容>'<注釋內(nèi)容>數(shù)據(jù)類型存儲大小取值范圍Integer(整型)2Byte-32768~32767Long(長整型)4Byte-2147483648~2147483647Single(單精度型)4Byte-3.402823E38~-1.401298E-451.401298E-45~3.402823E38Double(雙精度型)8Byte-1.79769313486232E308~-4.94065645841247E-324;4.94065645841247E-324~1.79769313486232E308String(字符型)變長:10Byte+串長度定長:串長度變長:0~約20億個字符定長:1~約65400個字符Boolean(邏輯型)2ByteTrue或FalseDate(日期型)8Byte100年1月1日

~9999年12月31日Byte(字節(jié)型)1Byte0~255Currency(貨幣型)8Byte-922,337,203,685,477.5808~922,337,203,685,477.5807Object(對象型)4Byte任何對象引用Variant(變體型)>=16Byte數(shù)值型可達Double型的范圍字符型可達變長字符串的串長度3.2

數(shù)據(jù)類型1.?dāng)?shù)值型(1)整型(Integer)和長整型(Long)整數(shù)用于表示不帶小數(shù)點和指數(shù)符號的數(shù),在計算機內(nèi)部以二進制補碼形式表示。整數(shù)的類型分為整型和長整型,分別以Integer和Long表示。通常整數(shù)數(shù)據(jù)較大時采用Long型表示,而Integer型表示較小的整數(shù)。(2)單精度型(Single)和雙精度型(Double)浮點數(shù)(又稱實數(shù))用于表示帶有小數(shù)部分的數(shù)。浮點數(shù)的類型分為單精度浮點數(shù)和雙精度浮點數(shù),分別以Single和Double表示。一般對精度要求較高的數(shù)值可以采用Double型,而對精度要求不高的數(shù)值可以采用Single型。(3)貨幣型(Currency)貨幣數(shù)據(jù)是整數(shù)或定點實數(shù),以Currency表示。這種類型的數(shù)據(jù)小數(shù)點是固定的,其小數(shù)點左邊有15位數(shù)字,右邊有4位數(shù)字,也稱為定點數(shù)據(jù)類型。(4)字節(jié)型(Byte)字節(jié)型數(shù)據(jù)存儲為無符號整數(shù),以Currency表示,范圍為0~255。2.字符型(String)字符型數(shù)據(jù)是用雙引號括起來的一串字符序列,也稱為“字符串”。其中長度為0(即不含任何字符)的字符串被稱為空字符串。VisualBasic有以下兩種類型的字符串:變長字符串:長度不確定定長字符串:含有確定個數(shù)的字符3.邏輯型(Boolean)邏輯數(shù)據(jù)類型(又稱布爾數(shù)據(jù)類型)用于邏輯判斷,它有True(真)和False(假)兩種取值。4.日期型(Date)日期型是由兩個“#”符號括起來用于表示日期和時間的數(shù)據(jù)。它可以是單獨日期的數(shù)據(jù),也可以是單獨時間的數(shù)據(jù),也可以是日期和時間的組合。5.對象型(Object)對象型數(shù)據(jù)用來表示應(yīng)用程序中的對象,它可以是控件對象、OLE對象等。6.變體型(Variant)變體型數(shù)據(jù)是一種特殊的數(shù)據(jù)類型,可以存儲各種類型的數(shù)據(jù)。它是VisualBasic的缺省數(shù)據(jù)類型,不論是常量還是變量,如果不加聲明,系統(tǒng)均按變體型數(shù)據(jù)處理。3.3.1常量1.直接常量直接常量實際就是常數(shù)。2.符號常量程序代碼中往往包含有重復(fù)使用的常量值,為了提高程序的可讀性和便于維護,可以用有意義的符號常量來代替這些常數(shù)值,使用符號常量時要先聲明。聲明常量的語法格式如下:[Private|Public]Const<常量名>[As類型]=<表達式>3.3

常量和變量3.系統(tǒng)常量系統(tǒng)常量是VisualBasic系統(tǒng)預(yù)先定義好的,用戶可以直接引用。1.變量命名規(guī)則變量名首字符必須是字母,并且由字母、數(shù)字和下劃線組成。變量名長度不超過255個字符。變量名作用域內(nèi)必須唯一。不能使用VisualBasic中的關(guān)鍵字(保留字)。變量名中的字母不區(qū)分大小寫。變量的命名最好還應(yīng)遵守一定的編程約定。3.3.2變量2.變量的聲明(1)顯式聲明VisualBasic中提供了4種變量聲明語句:Dim <變量名1>[As類型][,<變量名2>[As類型]…]Public <變量名1>[As類型][,<變量名2>[As類型]…]Private <變量名1>[As類型][,<變量名2>[As類型]…]Static <變量名1>[As類型][,<變量名2>[As類型]…](2)隱式聲明在VisualBasic中,未經(jīng)顯式聲明而直接使用,或者未經(jīng)顯式聲明而采用在變量后加上類型說明符來規(guī)定變量的類型,均屬對變量的“隱式聲明”。(3)強制顯式聲明(OptionExplicit語句)雖然VisualBasic允許用戶不顯式聲明變量而直接使用,但是可能會給程序帶來不易察覺的麻煩和錯誤,同時降低程序的可讀性和執(zhí)行效率??梢酝ㄟ^強制顯式聲明語句OptionExplicit,來要求所使用的變量必須事先聲明。OptionExplicit語句可以采用以下方法建立。方法一:激活代碼編輯器,從對象列表框中選擇“通用”或“General”,從事件列表框中選擇“聲明”或“Declarations”,在代碼編輯欄中輸入“OptionExplicit”。方法二:選擇“工具”菜單的“選項”命令項,在“編輯器”選項卡中,選中“要求變量聲明”復(fù)選框,VisualBasic系統(tǒng)就自動生成語句OptionExplicit,并加到模塊的聲明部分,如圖3-1所示。圖3-1使用OptionExplicit語句3.變量的作用域等

級聲明方式聲明位置與作用范圍過程級變量(局部)Dim,Static僅在聲明它們的過程中有效窗體/模塊級變量Dim,Private在聲明它們的窗體/模塊中的所有過程內(nèi)均有效全局變量Public在工程的所有過程中均有效運算是對數(shù)據(jù)進行加工的過程,運算符是描述各種不同運算的符號,表達式是由運算符、常量、變量和圓括號等按一定的規(guī)則組成的式子3.4

運算符和表達式運算符說明舉例結(jié)果^冪運算5^225-負號-3^2-9*和

/乘法和除法42*3/621\整除1\20Mod取余9Mod72+和-加法和減法15+9-4203.4.1算術(shù)運算符與算術(shù)表達式運算符說明舉例結(jié)果+連接兩個字符型數(shù)據(jù)"VB"+"程序設(shè)計""VB程序設(shè)計"&連接兩個字符型數(shù)據(jù)"VB"&"程序設(shè)計""VB程序設(shè)計"3.4.2字符串運算符與字符串表達式運算符說明舉例結(jié)果=相等"a"="A"False<>不等"a"<>"b"True>大于"ab">"aB"True<小于8*7<50False>=大于或等于8+3>=15False<=小于或等于6*3<=8*4TrueIs比較兩個對象的引用量3.4.3關(guān)系運算符與關(guān)系表達式運

符說明Not取反運算符(運算數(shù)為假時,結(jié)果為真,反之結(jié)果為假)And與運算符(運算數(shù)均為真時,結(jié)果才為真)Or或運算符(運算數(shù)中有一個為真時,結(jié)果為真)Xor異或運算符(運算數(shù)相反時,結(jié)果才為真)Eqv等價運算符(運算數(shù)相同時才為真,其余結(jié)果均為假)Imp蘊含運算符(第一個運算數(shù)為真,第二個運算數(shù)為假時,結(jié)果才為真,其余結(jié)果均為假)3.4.4邏輯運算符與邏輯表達式在VisualBasic中,有兩類函數(shù):內(nèi)部函數(shù)和用戶自定義函數(shù)內(nèi)部函數(shù)(也稱標準函數(shù)或公共函數(shù))是由系統(tǒng)提供的,是語言系統(tǒng)本身把一些常用的操作事先編寫成一段程序代碼并封裝起來,用戶可以通過函數(shù)名在任何一個VisualBasic程序中隨時調(diào)用這段程序并返回一個函數(shù)值。3.5常用內(nèi)部函數(shù)函數(shù)名功

能示

例結(jié)

果Sqr(x)求x的平方根Sqr(16)4Log(x)求x的自然對數(shù),x>0Log(1)0Exp(x)求以e為底的冪值,即求exExp(0)1Abs(x)求x的絕對值A(chǔ)bs(-8)8Hex[$](x)求x的十六進制數(shù),返回的是字符串Hex$](28)"1C"Oct[$](x)求x的八進制數(shù),返回的是字符串Oct[$](10)"12"Sgn(x)求x的符號,當(dāng)x>0,返回1;x=0,返回0;x<0,返回-1Sgn(-15)Sgn(0)Sgn(15)-101Rnd(x)返回(0,1)區(qū)間內(nèi)的隨機數(shù)Rnd(x)0~1之間的數(shù)Sin(x)求x的正弦值,x的單位是弧度Sin(0)0Cos(x)求x的余弦值,x的單位是弧度Cos(0)1Tan(x)求x的正切值,x的單位是弧度Tan(0)0Atn(x)求x的反正切值,函數(shù)返回的是主值區(qū)間的弧度值A(chǔ)tn(0)03.5.1算術(shù)函數(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)"AB"Right[$](x,n)從x字符串右邊起取n個字符Right("ABsYt",2)"Yt"Mid[$](x,n1,n2)從x字符串左邊第n1個位置開始向右取n2個字符Mid("ABsYt",2,3)"BsY"Ucase[$](x)將x字符串中所有小寫字母改為大寫Ucase("ABsYug")ABSYUGLcase[$](x)將x字符串中所有大寫字母改為小寫Ucase("ABsYug")absyugLtrim[$](x)去掉x左邊的空格Lrim("ABC")"ABC"Rtrim[$](x)去掉x右邊的空格Trim("ABC")"ABC"Trim[$](x)去掉x兩邊的空格Trim("ABC")"ABC"Instr([n,]x,"字符")從x的第n個位置起查找給定的字符,返回該字符在x中的位置,n的缺省值為1Instr("WBAC","B")2String[$](n,"字符")得到由n個首字符組成的一個字符串String(3,"abcd")"aaa"Space[$](n)得到n個空格Space(3)""3.5.2字符函數(shù)函數(shù)名功

能示

例結(jié)

果Str[$](x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成字符串Str(45.2)"45.2"Val(x)將字符串x中的數(shù)字轉(zhuǎn)換成數(shù)值Val("23ab")23Chr[$](x)返回以x為ASCII碼的字符Chr(65)"A"Asc(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)3-4Fix(x)將數(shù)值型數(shù)據(jù)x的小數(shù)部分舍去Fix(3.5)Fix(-3.5)3-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,23#)1990-2-23CCur(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成貨幣型CCur(25.6)25.6CLng(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成單精度型CSng(23.5125468)23.51255CDbl(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成雙精度型CDbl(23.5125468)23.5125468CSng(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成單精度型CSng(23.5125468)23.51255CYar(x)將數(shù)值型數(shù)據(jù)x轉(zhuǎn)換成變體型CVar("23")+"A""23A"Round(x,N)在保留N位小數(shù)的情況下“四舍五入”取整Round(2.86,1)2.9CStr(x)將x轉(zhuǎn)換成字符串型CStr(12)"12"3.5.3轉(zhuǎn)換函數(shù)函數(shù)名功

能示

例結(jié)

果Date返回系統(tǒng)日期Date2009-3-19Time返回系統(tǒng)時間Time11:30:27Now返回系統(tǒng)時間和日期Now2009-3-1911:30:27Year(x)返回日期時間x中的年份Year(Date)或Year(Now)2009Month(x)返回日期時間x中的月份(1-12)Month(Date)或Month(Now)3Day(x)返回日期時間x中的日期(1-31)Day(Date)或Day(Now)19MonthName(N)返回月份名MonthName(3)三月WeekDay(x)返回星期代號(1-7),星期日為1WeekDay(Date)5WeekDayName(N)根據(jù)N返回星期名稱,1為星期日WeekDayName(5)星期四3.5.4日期與時間函數(shù)1.隨機函數(shù)Rnd產(chǎn)生一個在(0,1)區(qū)間均勻分布的隨機數(shù),每次的值都不同;若x=0,則給出的是上一次本函數(shù)產(chǎn)生的隨機數(shù)。若要產(chǎn)生[a,b]區(qū)間的隨機整數(shù),可以使用公式:Int(Rnd*(b-a+1)+a)若要產(chǎn)生一個(a,b)區(qū)間的隨機整數(shù),可以使用公式:Int(Rnd*(b-a)+a)3.5.5隨機Rnd函數(shù)與Randomize語句2.Randomize語句系統(tǒng)產(chǎn)生的隨機數(shù)是由種子來決定的,缺省情況下,每次運行同一個應(yīng)用程序,VisualBasic都提供相同的種子,即Rnd將產(chǎn)生相同的隨機數(shù)序列。可以通過改變種子的方法,使每次產(chǎn)生不同

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論