




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第3章VB語言基本知識1第3章VB語言基本知識1難點:變量的類型定義運算符的優(yōu)先級重點:常量與變量運算符與表達式常用標準函數(shù)2難點:重點:23.1VB語言的編碼規(guī)則一、字符集在VB的代碼中,有兩種字符:系統(tǒng)關鍵字和用戶自定義標識符常用的系統(tǒng)關鍵字有:If、Else、End、Sub、Private、Function、Public、Form、Me、Unload、Do、While、Loop、Until、MessageBox、InputBox等用戶自定義標識符時,應遵循以下規(guī)則:只能由字母、數(shù)字、下劃線組成;第一個字符必須是英文字母;有效長度為255個字符;不可以包含標點符號和類型說明符%、&、!、#、@、$;不可以是系統(tǒng)關鍵字。關鍵字:又稱保留字,在語法上有固定含義,是語言的組成部分,用于表示系統(tǒng)提供的標準過程、函數(shù)、運算符、常量等;VB中約定關鍵字的首寫字母為大寫。33.1VB語言的編碼規(guī)則關鍵字:又稱保留字,在語法上二、代碼書寫規(guī)則在VB代碼窗口中編寫程序代碼,除了要了解和使用控件、基本的數(shù)據(jù)表示外,為提高編程的效率,還必須了解VB的編碼規(guī)則: 1.一般情況下,一行上書寫一條語句,一行上最多可以書寫255個字符。若需要在同一行上書寫多條語句,語句間用冒號“:”隔開;若需要將一條語句分多行寫,則必須在行末加續(xù)行符“_”(空格和下劃線)。 2.VB代碼不區(qū)分大小寫,且自動轉換代碼,使代碼規(guī)范。對系統(tǒng)的關鍵字,總是轉換成首字母為大寫的格式。4二、代碼書寫規(guī)則在VB代碼窗口中編寫程序代碼,除3、對用戶自定義標識符(變量名、過程名、函數(shù)名),以第一次定義的格式為準,以后的表示均被自動轉換為第一次定義的格式。4、使用縮進以區(qū)分程序的不同部分,突出程序結構。
5、添加注釋使程序容易被理解。 53、對用戶自定義標識符(變量名、過程名、函數(shù)名),以第一次數(shù)據(jù)類型是程序設計的必要組成部分,也是程序處理的對象。在不同語言中,數(shù)據(jù)類型的規(guī)定和處理方法不同。VB提供系統(tǒng)定義的數(shù)據(jù)類型—標準數(shù)據(jù)類型用戶自己定義數(shù)據(jù)類型標準數(shù)據(jù)類型主要有:數(shù)值型字符串型(String)布爾型(Boolean)/邏輯型日期型(Date)變體型(Variant)對象型(Object)3.2數(shù)據(jù)類型6數(shù)據(jù)類型是程序設計的必要組成部分,也是程序處用來表達整數(shù)和實數(shù) 整型(Integer) 長整型(Long) 單精度浮點型(Single) 雙精度浮點型(Double) 貨幣型(Currency) 字節(jié)型(Byte)一、標準數(shù)據(jù)類型(一)數(shù)值型數(shù)據(jù)7用來表達整數(shù)和實數(shù)一、標準數(shù)據(jù)類型7整型(Integer):以2個字節(jié)的二進制碼存儲。十進制:由0-9數(shù)字和正負號組成,取值范圍-32768-32767八進制:由0-7數(shù)字組成,前面冠以&或&O,取值范圍&0-&177777例:&123,或&O123
十六進制:由0-9數(shù)字及A-F組成,前面冠以&H(或&h),取值范圍&H0-&HFFFF例:&H56,&H7F1.整數(shù)類型定義:是不帶小數(shù)點和指數(shù)符號的數(shù)根據(jù)表示數(shù)的范圍的不同,可分為整型、長整型,且都有三種表示形式,即十進制、八進制、十六進制。8整型(Integer):以2個字節(jié)的二進制碼存儲。1.整數(shù)類長整型(Long):以4個字節(jié)的二進制碼存儲。十進制:由0-9數(shù)字和正負號組成,取值范圍-2147483648~2147483647八進制:由0-7數(shù)字組成,前面冠以&或&O,以&結束,取值范圍&0&-&37777777777&例:&123&,或&O123&
十六進制:由0-9數(shù)字及A-F組成,前面冠以&H(或&h),以&結尾,取值范圍&H0&-&HFFFFFFFF&例:&H56&,&H7F&9長整型(Long):以4個字節(jié)的二進制碼存儲。9是帶小數(shù)部分的數(shù)。按存儲格式,又分為浮點型和定點型
浮點型實數(shù)由符號、尾數(shù)及指數(shù)三部分組成。2.實數(shù)類型單精度浮點數(shù)的指數(shù)用E(e)表示;雙精度浮點的指數(shù)用D(或d)表示。[+|-]X···X.X···X[E|D][+|-]XXX指數(shù)部分尾數(shù)部分10是帶小數(shù)部分的數(shù)。2.實數(shù)類型單精度浮點數(shù)的指數(shù)用E(e)表單精度浮點型(Single)占4個字節(jié)存儲空間,可以精確到7位十進制,取值范圍±1.40×10-45~±3.40×1038貨幣型(Currency)占8個字節(jié)的存儲空間,用于表達定點數(shù),小數(shù)左邊有15位,右邊有4位,取值分圍:-922337203685477.5808~922337203685477.5807主要用于要求精度特別重要的場合,如貨幣計算和定點計算.雙精度浮點型(Double)占8個字節(jié)的存儲空間,可以精確到15位或16位十進制數(shù),取值范圍±4.94×10-324~±1.79×1030811單精度浮點型(Single)貨幣型(Currency)雙精度是一種無符號整型數(shù),占1個字節(jié)用于存儲二進制數(shù)據(jù),取值范圍:0~255
3.字節(jié)型(Byte)12是一種無符號整型數(shù),占1個字節(jié)3.字節(jié)型(Byte)12字符串是一個用雙引號(英文)括起來的字符序列,由一切可打印的西文字符和漢字組成(二)字符串型數(shù)據(jù)(String)例:“Hello”“123456”“程序設計”“”(空字符串)13字符串是一個用雙引號(英文)括起來的字符序列,由一切注意:
(1)VB字符串有兩種:可變長度字符串和固定長度字符串。前者指程序執(zhí)行過程中字符串長度不固定,最多可包含2^31個字符;后者指在程序執(zhí)行過程中字符串長度保持不變的字符串,最大長度為2^16。(2)雙引號在程序代碼中起字符串的定界作用。(3)在字符串中,字母的大小寫是有區(qū)別的。例如“AB123”與“ab123”代表兩個不同的字符串。(4)若字符串本身包含雙引號,可用連續(xù)的兩個雙引號表示.例:“Youmuststudyhard”,hesaid.寫成:“““Youmuststudyhard””,hesaid.”14注意:14注意:當將數(shù)值型數(shù)據(jù)轉換為布爾型時,0轉換為False,非0值轉換為True。當將布爾型數(shù)據(jù)轉換為數(shù)值型數(shù)據(jù)類型時,F(xiàn)alse轉換為0,True轉換為-1。(三)布爾型數(shù)據(jù)(Boolean)占2個字節(jié)的存儲空間,用于邏輯判斷,只有True和False兩個值。15注意:(三)布爾型數(shù)據(jù)(Boolean)占2個字節(jié)按8個字節(jié)的浮點形式存儲,可以表示的日期范圍從100年1月1日~9999年12月31日,而時間可以從0:00:00~23:59:59(四)日期型數(shù)據(jù)(Date)日期型數(shù)據(jù)有兩種表示方法:用#號括起來表示,例#January1,2001#;另一種以數(shù)字序列表示,小數(shù)點左邊的值表示日期,而小數(shù)點右邊的值則表示時間。16按8個字節(jié)的浮點形式存儲,可以表示的日期范圍從1是隨時可以改變數(shù)據(jù)類型的數(shù)據(jù)。沒有用Dim等語句顯示說明其類型,在VB中對所有未定義的變量都默認為是變體型的。可以包含數(shù)值等任何類型的數(shù)據(jù)還可以包含Empty、Error、Null等特殊值Empty用來標記未初始化的變體型變量:數(shù)值計算時為0,字符運算時為空串Null一般用于數(shù)據(jù)庫應用程序:如表達式中包含Null值則其值總為空Error用來表示在過程中出錯時的特殊值(五)變體型數(shù)據(jù)(Variant)17是隨時可以改變數(shù)據(jù)類型的數(shù)據(jù)。沒有用Dim等存儲32位(4字節(jié))的地址信息,利用VB中的Set語句為其指定值(六)對象型數(shù)據(jù)(Object)18存儲32位(4字節(jié))的地址信息,利用VB中的二、用戶自定義數(shù)據(jù)類型 用戶可以使用Type語句定義自己的數(shù)據(jù)類型格式如下: Type自定義數(shù)據(jù)類型名 元素名As類型名 元素名As類型名 …… EndTypeTypestudents NameASString*12 NumASInteger AgeASIntegerEndType19二、用戶自定義數(shù)據(jù)類型 用戶可以使用Type語句定義自己的數(shù)常量是指在程序運行期間其值不發(fā)生變化的量。在VisualBasic中,有兩種形式的常量直接常量符號常量用戶自定義符號常量系統(tǒng)定義符號常量3.3常量20常量是指在程序運行期間其值不發(fā)生變化的量。用戶根據(jù)數(shù)據(jù)類型常量分為:字符串常量數(shù)值常量布爾常量日期常量一.直接常量直接常量就是在程序代碼中,以直接明顯的形式給出的數(shù)。例如:”歡迎使用visualBasic”字符串常量12345數(shù)值型常量True布爾型常量#11/10/2001#日期型常量21根據(jù)數(shù)據(jù)類型常量分為:一.直接常量直接常量就是在程序代碼在程序設計中,常用常量命名的方法來取代程序代碼中出現(xiàn)的數(shù),這種常量稱為符號常量。符號常量在使用前需要使用Const語句進行聲明。聲明的格式如下:[Public|Private]Const<常量名>[As<類型>]=<表達式>二.符號常量1.用戶自定義符號常量說明:<常量名>:按變量名的命名規(guī)則命名。As<類型>:可選項,用以說明符號常量的數(shù)據(jù)類型。<類型>可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Date、String或Variant。一個As<類型>子句只能說明一個符號常量。若省略該項,則系統(tǒng)根據(jù)表達式的求值結果,確定最合適的數(shù)據(jù)類型。<表達式>:由數(shù)值常量或字符串常量以及運算符組成。在<表達式>中不能使用函數(shù)調(diào)用。22在程序設計中,常用常量命名的方法來取代程序代用先前定義過的符號常量定義新符號常量例如:ConstPi=3.14159聲明符號常量Pi代表3.14159,單精度類型ConstMaxAsInteger=9聲明符號常量Max代表9,整型ConstBirthDate=#1/1/01#聲明符號常量BirthDate代表2001年1月1日,日期型ConstPi=3.14,Max=9,MyStr=“Hello”用逗號分隔多個符號常量聲明ConstPi2=Pi*223用先前定義過的符號常量定義新符號常量例如:ConstPi=1)如果要使創(chuàng)建的符號常量只作用于某個過程中,則應在該過程內(nèi)部聲明該符號常量。注意:2)如果要使創(chuàng)建的符號常量對模塊中所有過程都有效,但對模塊之外任何代碼都無效,則應在模塊的聲明段中聲明符號常量。3)如果要使創(chuàng)建的符號常量在整個應用程序中有效,則應在標準模塊的聲明段中進行聲明,并在Const前面放置Public關鍵字。在窗體模塊或類模塊中不能聲明Public符號常量。241)如果要使創(chuàng)建的符號常量只作用于某個過程中,則應在該例如:Constpi=3.14159PrivateSubCommandl_Click()
Constr=100s=pi*r^2Print“圓面積=”;s,rEndSubPrivateSubCommand2_C1ick()angle=Sin(20*pi/180)Printangle,rEndSub符號常量pi在整個窗體模塊中有效,符號常量r只在本事件過程中有效25例如:符號常量pi在整個窗體模塊中有效,符號常量r只在本4)由于符號常量可以用其他符號常量定義,因此在兩個以上符號常量之間不要出現(xiàn)循環(huán)或循環(huán)引用。例如:在標準模塊Modulel中定義:PublicConstconA=conB*2在整個應用程序中有效在標準模塊Module2中定義:PublicConstconB=conA/2在整個應用程序中有效當程序中有兩個以上的公共符號常量,而且每個公共符號常量都用另一個去定義時就會出現(xiàn)循環(huán)。出現(xiàn)循環(huán)引用,在運行此應用程序時,VB就會產(chǎn)生錯誤信息。為了避免出現(xiàn)循環(huán)引用,可以將公共符號常量限制在單一模塊內(nèi),或最多只存在于少數(shù)幾個模塊內(nèi)。264)由于符號常量可以用其他符號常量定義,因此在兩個以上符號常5)符號常量是有意義的名字,它用于取代永遠不變的數(shù)值或字符串。盡管符號常量有點像變量,但不能像對變量那樣修改符號常量,也不能對符號常量賦以新值。275)符號常量是有意義的名字,它用于取代永遠不變的數(shù)值或字符串2.系統(tǒng)定義的符號常量系統(tǒng)符號常量的定義可以從“對象瀏覽器”中獲得。使用對象瀏覽器可以顯示包括當前工程及對象庫在內(nèi)的過程、模塊、類、屬性和方法等的描述信息。選擇對象庫在“類”列表中選擇所需要的符號常量組用鼠標單擊某一個符號常量描述框中顯示有關該符號常量的定義及描述信息。例:vbBlue所表示的顏色值為&HFF0000從菜單欄視圖中選擇“對象瀏覽器”或(F2)282.系統(tǒng)定義的符號常量系統(tǒng)符號常量的定義可
每個變量都有名字和數(shù)據(jù)類型,通過名字來引用一個變量,而通過數(shù)據(jù)類型來確定該變量的存儲方式。
變量是指在程序運行時其值可以改變的量,是一個有名稱的內(nèi)存單元。3.4變量29每個變量都有名字和數(shù)據(jù)類型,通過名字來引用一VB變量的命名規(guī)則:.變量名必須以字母開頭,長度不超過255個字符。.變量名只能由字母、數(shù)字和下劃線組成,不可以包含小數(shù)點、空格或者內(nèi)嵌的類型聲明字符。.不能使用關鍵字,不能與過程名或符號常量同名。.變量名不區(qū)分大小寫。一.變量的命名規(guī)則例如:合法變量名:strMyString、intCount、MyForm等非法變量名:1x、a+b、LiLin、Sin等30VB變量的命名規(guī)則:一.變量的命名規(guī)則例如:30二.變量的聲明變量使用之前,一般必須先聲明變量名和類型,以便系統(tǒng)為其分配存儲單元。固定格式聲明隱式聲明強制顯式聲明VB變量及其類型聲明方式31二.變量的聲明變量使用之前,一般必須先聲明變格式:說明:<類型>:可以是VB提供的各種數(shù)據(jù)類型或用戶自定義類型。[As<類型>]:方括號部分表示該部分可以缺省。缺省時,變量默認為變體類型.Dim:在窗體模塊、標準模塊或過程中聲明變量。Private:變量僅在該模塊或過程中有效。Static:在過程中定義靜態(tài)變量,即使該過程結束,也仍然保留變量的值。Public:標準模塊中聲明全局變量,使變量在整個應用程序中有效。Dim|Private|Static|Public<變量名>[As<類型>]1、固定格式聲明32說明:Dim|Private|Static|Public變量名后加一特定符號來表明數(shù)據(jù)類型:%整型&長整型!單精度型#雙精度型@貨幣型$字符串型X!=4.56Num%=88Name$=“李紅”33變量名后加一特定符號來表明數(shù)據(jù)類型:%整型X!=4.5若變量未經(jīng)定義而直接使用,VB會自動建立一個變量。可存放任何類型的數(shù)據(jù),如數(shù)值、字符串、日期和時間。2、隱式聲明可見,隨著所賦值的不同,變量的類型在不斷變化.這種方法很方便,但是常常會因為轉換過程難以預料,而導致一個難以查找的錯誤。因此,應該在應用程序中聲明所使用的變量的類型。例如:SomeValue=100SomeValue=“ABC”34若變量未經(jīng)定義而直接使用,VB會自動建立一個(1)可在窗體模塊或標準模塊的聲明段中加入語句:OptionExplicit3、強制顯式聲明VB可采用強制聲明功能,使所有變量都必須先聲明后使用,這樣,若運行時遇到一個未經(jīng)明確聲明的變量名,VB就會發(fā)出錯誤警告。聲明方式:(2)在“工具”菜單中打開“選項”對話框,單擊“編輯器”選擇“要求變量聲明”選項,即可自動插入OptionExplicit語句。注:OptionExplicit語句的作用范圍僅限于語句所在模塊.對于需要強制式變量聲明的窗體模塊、標準模塊及類模塊,必須將OptionExplicit語句放在這些模塊的聲明段中。35(1)可在窗體模塊或標準模塊的聲明段中加入語句:VB中有以下6類運算符和表達式:
·算術運算符與算術表達式.字符串運算符與字符串表達式.關系運算符與關系表達式.邏輯運算符與邏輯表達式.日期運算符與日期表達式.對象運算符與對象表達式用運算符將運算對象(或操作數(shù))連接起來即構成表達式。表達式表示了某種求值規(guī)則。
操作數(shù)可以是常量、變量、函數(shù)、對象等,而運算符也有各種類型。3.5運算符與表達式36VB中有以下6類運算符和表達式:用運算符將運一、算術運算符與算術表達式
算術運算符用于對數(shù)值型數(shù)據(jù)執(zhí)行各種算術運算。VB提供了7個算術運算符,優(yōu)先級次序如表所列:優(yōu)先級運算符運算1^乘方2-取負3*乘法/浮點除法4\整數(shù)除法5Mod取模6+加法-減法
其中,取負(—)運算符是單目運算符,其余運算符均為雙目運算符(需要兩個操作數(shù))。37一、算術運算符與算術表達式算術運算符用于對數(shù)乘方運算用來計算乘方和方根。例:10^210的平方,結果為10010^(-2)10的平方的倒數(shù),即1/100,結果為0.0125^0.525的平方根,結果為58^(1/3)8的立方根,結果為22^2^3運算順序從左到右,結果為以64(-8)^(-1/3)錯誤,當?shù)讛?shù)為負數(shù)時,指數(shù)必須是整數(shù)1.乘方運算38乘方運算用來計算乘方和方根。1.乘方運算382.整數(shù)除法(\)例:10\4結果為225.68\6.99先四舍五入再整除,結果為3執(zhí)行整除運算,結果為整型值。參加運算的操作數(shù)一般為整型數(shù)。當操作數(shù)帶有小數(shù)點時,先被四舍五入為整型數(shù),后整除。392.整數(shù)除法(\)例:執(zhí)行整除運算,結果為整例:10Mod4結果為225.68Mod6.99先四舍五入再求余數(shù),結果為511Mod-4結果為3-11Mod5結果為-1-11Mod–3結果為-23.取模運算(Mod)取模運算符Mod用于求余數(shù),為第一操作數(shù)整除第二操作數(shù)所得的余數(shù).操作數(shù)帶小數(shù),先四舍五入取整型數(shù),后求余;運算結果符號取決于第一個操作數(shù)。40例:3.取模運算(Mod)取模運算符Mod用注意:“&”和“+”這兩個運算符的區(qū)別:“+”運算符兩邊的操作數(shù)應均為字符串。如果都為數(shù)值型,則進行算術運算;如果有一個為非數(shù)字字符串,另一個為數(shù)值型,則出錯?!?’’運算符兩邊的操作數(shù)不論是數(shù)值型的還是字符串型的,都進行字符串的連接運算,系統(tǒng)先將數(shù)值型操作數(shù)轉換為字符串,然后再進行連接運算。二、字符串運算符與字符串表達式字符串運算符有兩個:“&”、“+”,是將兩個字符串連接起來,合并成一個新的字符串。例如:“Hello”&“World”結果為“HelloWorld”18+“25”結果為43“Check”&123結果為“Checkl23”18&25結果為1825“Check”+123
錯誤
41注意:“&”和“+”這兩個運算符的區(qū)別:“+”運算符兩邊的VB提供的關系運算符:=等于2=3False<>不等于2<>3True<2<3True>2>3False>=2>=3False<=2<=3TrueLike字符串匹配“aBBa”Like“a*a”TrueIs對象引用比較object1Isobject2三、關系運算符與關系表達式關系運算符又稱為比較運算符,用于對兩個表達式的值進行比較,比較的結果為布爾值True(真)或False(假)。42VB提供的關系運算符:三、關系運算符與關系表達式有關說明:若兩個操作數(shù)是數(shù)值型,按其大小比較。若兩個操作數(shù)是字符串,則按字符的ASCII碼值從左到右逐一比較。對單精度或雙精度進行比較時,應避免直接判斷兩個浮點數(shù)是否相等,而改成對其誤差的判斷。例如:Abs(A-B)<1E-5關系運算符的優(yōu)先級相同。“Like”運算符與通配符“?”、“*”等結合使用,常用于數(shù)據(jù)庫模糊查詢?!癐s”運算符用于兩個對象變量的引用比較。**isNull43有關說明:43例:數(shù)學上判斷x是否在區(qū)間[a,b]內(nèi)如寫成:a<=x<=b則不能完成指定功能假設a=1,b=3,x=4VB在計算:1<=x<=3時由左向右計算先計算1<=4成立,值為-1接著計算-1<=3
成立,最終結果為True,而我們想要的結果為False故引入邏輯表達式44例:數(shù)學上判斷x是否在區(qū)間[a,b]內(nèi)44四、邏輯運算符與邏輯表達式
邏輯運算也稱布爾運算或邏輯乘.運算符兩邊的操作數(shù)要求為邏輯值.用邏輯運算符連接兩個或多個邏輯量組成的表達式稱為邏輯表達式或布爾表達式.邏輯表達式的結果仍為邏輯值True或False.45四、邏輯運算符與邏輯表達式邏輯運算也稱布爾運算或邏當兩個操作數(shù)均為假時,結果才為假當兩個操作數(shù)均為真時,結果才為真當操作數(shù)為假時,結果為真說明False(3>8)And(5<6)與And2TrueTrue結果(3>8)Or(5<6)Not(3>8)例子或非運算OrNot運算符Not運算符為單目運算符,其它為雙目運算符.31優(yōu)先級45XorEqv6Imp異或同或蘊含當兩個操作數(shù)不等價時,結果為真當兩個操作數(shù)值等價時,結果為真如果A則B(3>8)Xor(5<6)(3>8)Eqr(5<6)(3>8)Imp(5<6)TrueFalseTrue46當兩個操作數(shù)均為假時,結果才為假當兩個操作數(shù)均為真時,結果才真值表TrueFalseAXorBFalseBFalseAFalseTrueTrueFalseTrueTrueTrueFalseTrueFalseAEqvBFalseBFalseATrueFalseeTrueFalseFalseTrueTrueTrueTrueFalseAImpBFalseBFalseATrueTrueTrueFalseTrueTrueTrueFalse47真值表TrueFalseAXorBFalseBFalse2.3.5表達式的運算順序表達式的運算的先后順序為:函數(shù)運算算術運算關系運算邏輯運算例:a=3,b=5,c=-1,d=7a+b>c+dAnda>=5OrNotc>0Ord<0⑩True①8②6④False③True⑤False⑥False⑦True⑧False⑨True482.3.5表達式的運算順序表達式的運算的先后順序為:函數(shù)運VB提供系統(tǒng)內(nèi)部函數(shù),允許用戶自定義函數(shù)過程。內(nèi)部函數(shù)分5類:數(shù)學函數(shù)字符串函數(shù)隨機函數(shù)、格式輸出函數(shù)轉換函數(shù)日期和時間函數(shù)這些函數(shù)都帶有一個或幾個自變量,在程序設計中稱為參數(shù)。函數(shù)運算后返回一個值。3.6常用內(nèi)部函數(shù)49VB提供系統(tǒng)內(nèi)部函數(shù),允許用戶自定義函數(shù)過程。內(nèi)部函數(shù)分5類函數(shù)一般調(diào)用格式:<函數(shù)名>([<參數(shù)表>])函數(shù)的參數(shù)可以是常量、變量或表達式,若有多個參數(shù)時,參數(shù)之間以逗號分隔50函數(shù)一般調(diào)用格式:<函數(shù)名>([<參數(shù)表>])函數(shù)的參一、數(shù)學函數(shù)數(shù)學函數(shù)用于各種數(shù)學運算,主要包括三角函數(shù)平方根函數(shù)絕對值函數(shù)對數(shù)函數(shù)指數(shù)函數(shù)絕對值函數(shù)Abs(x)返回x的絕對值例:Abs(3.4)結果為3.4Abs(-3.4)結果為3.451一、數(shù)學函數(shù)數(shù)學函數(shù)用于各種數(shù)學運算,主要包括絕對值函數(shù)5平方根函數(shù)Sqr(x)返回x的平方根,x>=0例:Sqr(9)結果為3三角函數(shù)Sin(x)正玄函數(shù)Cos(x)余玄函數(shù)Tan(x)正切函數(shù)Atn(x)反正切函數(shù)參數(shù)單位為弧度52平方根函數(shù)三角函數(shù)52指數(shù)和對數(shù)函數(shù)Exp(x)返回以e為底的指數(shù)函數(shù),即數(shù)學中的exLog(x)返回以e為底的自然對數(shù),即數(shù)學中的lnx。VB沒有提供常用對數(shù)函數(shù),要想計算常用對數(shù)可以換算:例如:Exp(1)、Exp(2*X)、Log(10)。53指數(shù)和對數(shù)函數(shù)53取整函數(shù)Int(x)返回不大于x的最大值Fix(x)返回x的整數(shù)部分例:Int(3.6)=3Int(-2.3)=-3Fix(6.5)=6Fix(-5.6)=-5四舍五入函數(shù)CInt(x)CLng(x)例:CInt(3.6)=4
54取整函數(shù)四舍五入函數(shù)54隨機函數(shù)Rnd[(x)]產(chǎn)生0~1之間的單精度隨機數(shù)。說明:若x<0,則每次都使用x作為隨機數(shù)種子得到相同的結果;若x>0,則以上一個隨機數(shù)作為種子,產(chǎn)生序列中的下一個隨機數(shù);若x=0,則產(chǎn)生與最近生成的隨機數(shù)相同的數(shù);若省略參數(shù)x,則以上一個隨機數(shù)作為種子,產(chǎn)生序列中的下一個隨機數(shù)產(chǎn)生[N1,N2]間隨機整數(shù),可使用公式:Int((N2-N1+1)*Rnd)+N255產(chǎn)生[N1,N2]間隨機整數(shù),可使用公式:55二、字符串函數(shù)VisualBasic提供了大量的字符串函數(shù),具有很強的字符串處理能力。1.刪除空白字符函數(shù)LTrim(s)去掉字符串s左邊的空白字符(即前導空格)。RTrim(s)去掉字符串s右邊的空白字符(即后置空格)。Trim(s)去掉字符串s左右兩邊的空白字符。例如:LTrim(”ABC”)結果為“ABC”RTrim(”ABC”)結果為“ABC”
Trim(”ABC”)結果為“ABC”56二、字符串函數(shù)VisualBasic提供了大量的字符串函數(shù),2.取子串函數(shù)Left(s,n)取字符串s左邊的n個字符Right(s,n)取字符串s右邊的n個字符Mid(s,p,n)從字字符串s的第p個字符開始取n個字符例:Left(“ABCDE”,2)結果為“AB”Right(“ABCDE”,2)結果為“DE”Mid(“ABCDE”,2,3)結果為“BCD”Mid(“ABCDE”,2,6)結果為“BCDE”3.字符串長度函數(shù)Len(s)返回字符串s的長度例:Len(“ABCDE”)結果為5572.取子串函數(shù)3.字符串長度函數(shù)575.生成空格函數(shù)Space(n)返回n個空格例:Space(3)的結果為“”4.生成字符串函數(shù)String(n,s)取字符串s的第一個字符構成長度為n的新字符串。例:String(3,”ABC”)結果“AAA”String(3,65)結果“AAA”(字符”A”的ASCII碼為65)585.生成空格函數(shù)4.生成字符串函數(shù)587.字母大小寫轉換函數(shù)UCase(s)把小寫字母轉換為大寫字母。LCase(s)把大寫字母轉換為小寫字母。例:UCase(”Abc”)結果為"ABC”LCase(”ABc”)結果為"abc”6.搜索子字符串函數(shù)
InStr([n,]s1,s2)在字符串s1中第n個位置開始查找字符串s2出現(xiàn)的起始位置例:InStr(”ABCDE”,”BC”)結果為21nStr(”ABCDECDE”,”DE”)結果為4597.字母大小寫轉換函數(shù)6.搜索子字符串函數(shù)59日期和時間函數(shù)可以顯示系統(tǒng)的日期和時間,提供某個事件何時發(fā)生及持續(xù)時間長短等信息。常用的日期時間函數(shù)有:Now返回系統(tǒng)日期和時間Date返回系統(tǒng)日期Time返回系統(tǒng)時間Day(d)返回參數(shù)d中指定月份的第幾天WeekDay(d)返回參數(shù)d中指定的星期幾Month(d)返回參數(shù)d中指定的月份Year(d)返回年份Hour(d)返回小時(0~23)Minute(d)返回分鐘(0~59)Second(d)返回秒(0~59)Timer返回從午夜開始到現(xiàn)在經(jīng)過的秒數(shù)三、日期和時間函數(shù)60日期和時間函數(shù)可以顯示系統(tǒng)的日期和時間,提供某個事件何時發(fā)生轉換函數(shù)用于數(shù)據(jù)類型或形式的轉換,包括整型、實型、字符串型之間以及與ASCII碼字符之間的轉換。下面介紹常用的轉換函數(shù)。1.將字符轉換成ASCII碼Asc(s)返回字符串s中第一個字符的ASCII碼。例:Asc(“A”)結果為65Asc(“ABC”)結果為65四、數(shù)據(jù)類型轉換函數(shù)2.將ASCII碼轉換成字符Chr(x)把x的值轉換為對應的ASCII字符例:Chr(65)的結果為”A”。61轉換函數(shù)用于數(shù)據(jù)類型或形式的轉換,包括整型、實型、字符串型之3.將數(shù)值轉換成字符串Str(x)把x的值轉換為一個字符串。如果x為正,則返回的字符串前有一前導空格。例:Str(123)的結果為“123”。4.將字符串轉換成數(shù)值Val(s)把數(shù)字字符串s轉換為數(shù)值。例:Val(“123”)結果為123Val(“123AB”)結果為123Val(“.123AB”)結果為.123Val(“a123AB”)結果為0623.將數(shù)值轉換成字符串4.將字符串轉換成數(shù)值625.數(shù)值型轉換成邏輯型數(shù)據(jù)Cbool(x)非0為True0為False。例:Cbool(123)的結果為True。6.字符串轉換成日期型數(shù)據(jù)Cdate(x)把字符串轉換為日期數(shù)據(jù)。例:Cdate(“February20,1999”)結果為99-2-20Cdate(“4:30:40PM”)結果為16:30:40635.數(shù)值型轉換成邏輯型數(shù)據(jù)6.字符串轉換成日期型數(shù)據(jù)63
格式輸出函數(shù)可以使數(shù)值、日期或字符串按指定的格式輸出。其格式為
Format(<表達式>[,<格式字符串>])五、格式輸出函數(shù)<表達式>:要格式化的數(shù)值、日期或字符串表達式。<格式字符串>:指定表達式的值的輸出格式。格式字符有三類:數(shù)值格式、日期格式和字符串格式。格式字符要加引號。64格式輸出函數(shù)可以使數(shù)值、日期或字符串按指定的格式輸出65656666作業(yè):P573、7、8、9課后分析:本節(jié)需掌握知識點較多,不需要一下子都記住,以后用到時逐漸記憶。
67作業(yè):課后分析:67第3章VB語言基本知識68第3章VB語言基本知識1難點:變量的類型定義運算符的優(yōu)先級重點:常量與變量運算符與表達式常用標準函數(shù)69難點:重點:23.1VB語言的編碼規(guī)則一、字符集在VB的代碼中,有兩種字符:系統(tǒng)關鍵字和用戶自定義標識符常用的系統(tǒng)關鍵字有:If、Else、End、Sub、Private、Function、Public、Form、Me、Unload、Do、While、Loop、Until、MessageBox、InputBox等用戶自定義標識符時,應遵循以下規(guī)則:只能由字母、數(shù)字、下劃線組成;第一個字符必須是英文字母;有效長度為255個字符;不可以包含標點符號和類型說明符%、&、!、#、@、$;不可以是系統(tǒng)關鍵字。關鍵字:又稱保留字,在語法上有固定含義,是語言的組成部分,用于表示系統(tǒng)提供的標準過程、函數(shù)、運算符、常量等;VB中約定關鍵字的首寫字母為大寫。703.1VB語言的編碼規(guī)則關鍵字:又稱保留字,在語法上二、代碼書寫規(guī)則在VB代碼窗口中編寫程序代碼,除了要了解和使用控件、基本的數(shù)據(jù)表示外,為提高編程的效率,還必須了解VB的編碼規(guī)則: 1.一般情況下,一行上書寫一條語句,一行上最多可以書寫255個字符。若需要在同一行上書寫多條語句,語句間用冒號“:”隔開;若需要將一條語句分多行寫,則必須在行末加續(xù)行符“_”(空格和下劃線)。 2.VB代碼不區(qū)分大小寫,且自動轉換代碼,使代碼規(guī)范。對系統(tǒng)的關鍵字,總是轉換成首字母為大寫的格式。71二、代碼書寫規(guī)則在VB代碼窗口中編寫程序代碼,除3、對用戶自定義標識符(變量名、過程名、函數(shù)名),以第一次定義的格式為準,以后的表示均被自動轉換為第一次定義的格式。4、使用縮進以區(qū)分程序的不同部分,突出程序結構。
5、添加注釋使程序容易被理解。 723、對用戶自定義標識符(變量名、過程名、函數(shù)名),以第一次數(shù)據(jù)類型是程序設計的必要組成部分,也是程序處理的對象。在不同語言中,數(shù)據(jù)類型的規(guī)定和處理方法不同。VB提供系統(tǒng)定義的數(shù)據(jù)類型—標準數(shù)據(jù)類型用戶自己定義數(shù)據(jù)類型標準數(shù)據(jù)類型主要有:數(shù)值型字符串型(String)布爾型(Boolean)/邏輯型日期型(Date)變體型(Variant)對象型(Object)3.2數(shù)據(jù)類型73數(shù)據(jù)類型是程序設計的必要組成部分,也是程序處用來表達整數(shù)和實數(shù) 整型(Integer) 長整型(Long) 單精度浮點型(Single) 雙精度浮點型(Double) 貨幣型(Currency) 字節(jié)型(Byte)一、標準數(shù)據(jù)類型(一)數(shù)值型數(shù)據(jù)74用來表達整數(shù)和實數(shù)一、標準數(shù)據(jù)類型7整型(Integer):以2個字節(jié)的二進制碼存儲。十進制:由0-9數(shù)字和正負號組成,取值范圍-32768-32767八進制:由0-7數(shù)字組成,前面冠以&或&O,取值范圍&0-&177777例:&123,或&O123
十六進制:由0-9數(shù)字及A-F組成,前面冠以&H(或&h),取值范圍&H0-&HFFFF例:&H56,&H7F1.整數(shù)類型定義:是不帶小數(shù)點和指數(shù)符號的數(shù)根據(jù)表示數(shù)的范圍的不同,可分為整型、長整型,且都有三種表示形式,即十進制、八進制、十六進制。75整型(Integer):以2個字節(jié)的二進制碼存儲。1.整數(shù)類長整型(Long):以4個字節(jié)的二進制碼存儲。十進制:由0-9數(shù)字和正負號組成,取值范圍-2147483648~2147483647八進制:由0-7數(shù)字組成,前面冠以&或&O,以&結束,取值范圍&0&-&37777777777&例:&123&,或&O123&
十六進制:由0-9數(shù)字及A-F組成,前面冠以&H(或&h),以&結尾,取值范圍&H0&-&HFFFFFFFF&例:&H56&,&H7F&76長整型(Long):以4個字節(jié)的二進制碼存儲。9是帶小數(shù)部分的數(shù)。按存儲格式,又分為浮點型和定點型
浮點型實數(shù)由符號、尾數(shù)及指數(shù)三部分組成。2.實數(shù)類型單精度浮點數(shù)的指數(shù)用E(e)表示;雙精度浮點的指數(shù)用D(或d)表示。[+|-]X···X.X···X[E|D][+|-]XXX指數(shù)部分尾數(shù)部分77是帶小數(shù)部分的數(shù)。2.實數(shù)類型單精度浮點數(shù)的指數(shù)用E(e)表單精度浮點型(Single)占4個字節(jié)存儲空間,可以精確到7位十進制,取值范圍±1.40×10-45~±3.40×1038貨幣型(Currency)占8個字節(jié)的存儲空間,用于表達定點數(shù),小數(shù)左邊有15位,右邊有4位,取值分圍:-922337203685477.5808~922337203685477.5807主要用于要求精度特別重要的場合,如貨幣計算和定點計算.雙精度浮點型(Double)占8個字節(jié)的存儲空間,可以精確到15位或16位十進制數(shù),取值范圍±4.94×10-324~±1.79×1030878單精度浮點型(Single)貨幣型(Currency)雙精度是一種無符號整型數(shù),占1個字節(jié)用于存儲二進制數(shù)據(jù),取值范圍:0~255
3.字節(jié)型(Byte)79是一種無符號整型數(shù),占1個字節(jié)3.字節(jié)型(Byte)12字符串是一個用雙引號(英文)括起來的字符序列,由一切可打印的西文字符和漢字組成(二)字符串型數(shù)據(jù)(String)例:“Hello”“123456”“程序設計”“”(空字符串)80字符串是一個用雙引號(英文)括起來的字符序列,由一切注意:
(1)VB字符串有兩種:可變長度字符串和固定長度字符串。前者指程序執(zhí)行過程中字符串長度不固定,最多可包含2^31個字符;后者指在程序執(zhí)行過程中字符串長度保持不變的字符串,最大長度為2^16。(2)雙引號在程序代碼中起字符串的定界作用。(3)在字符串中,字母的大小寫是有區(qū)別的。例如“AB123”與“ab123”代表兩個不同的字符串。(4)若字符串本身包含雙引號,可用連續(xù)的兩個雙引號表示.例:“Youmuststudyhard”,hesaid.寫成:“““Youmuststudyhard””,hesaid.”81注意:14注意:當將數(shù)值型數(shù)據(jù)轉換為布爾型時,0轉換為False,非0值轉換為True。當將布爾型數(shù)據(jù)轉換為數(shù)值型數(shù)據(jù)類型時,F(xiàn)alse轉換為0,True轉換為-1。(三)布爾型數(shù)據(jù)(Boolean)占2個字節(jié)的存儲空間,用于邏輯判斷,只有True和False兩個值。82注意:(三)布爾型數(shù)據(jù)(Boolean)占2個字節(jié)按8個字節(jié)的浮點形式存儲,可以表示的日期范圍從100年1月1日~9999年12月31日,而時間可以從0:00:00~23:59:59(四)日期型數(shù)據(jù)(Date)日期型數(shù)據(jù)有兩種表示方法:用#號括起來表示,例#January1,2001#;另一種以數(shù)字序列表示,小數(shù)點左邊的值表示日期,而小數(shù)點右邊的值則表示時間。83按8個字節(jié)的浮點形式存儲,可以表示的日期范圍從1是隨時可以改變數(shù)據(jù)類型的數(shù)據(jù)。沒有用Dim等語句顯示說明其類型,在VB中對所有未定義的變量都默認為是變體型的??梢园瑪?shù)值等任何類型的數(shù)據(jù)還可以包含Empty、Error、Null等特殊值Empty用來標記未初始化的變體型變量:數(shù)值計算時為0,字符運算時為空串Null一般用于數(shù)據(jù)庫應用程序:如表達式中包含Null值則其值總為空Error用來表示在過程中出錯時的特殊值(五)變體型數(shù)據(jù)(Variant)84是隨時可以改變數(shù)據(jù)類型的數(shù)據(jù)。沒有用Dim等存儲32位(4字節(jié))的地址信息,利用VB中的Set語句為其指定值(六)對象型數(shù)據(jù)(Object)85存儲32位(4字節(jié))的地址信息,利用VB中的二、用戶自定義數(shù)據(jù)類型 用戶可以使用Type語句定義自己的數(shù)據(jù)類型格式如下: Type自定義數(shù)據(jù)類型名 元素名As類型名 元素名As類型名 …… EndTypeTypestudents NameASString*12 NumASInteger AgeASIntegerEndType86二、用戶自定義數(shù)據(jù)類型 用戶可以使用Type語句定義自己的數(shù)常量是指在程序運行期間其值不發(fā)生變化的量。在VisualBasic中,有兩種形式的常量直接常量符號常量用戶自定義符號常量系統(tǒng)定義符號常量3.3常量87常量是指在程序運行期間其值不發(fā)生變化的量。用戶根據(jù)數(shù)據(jù)類型常量分為:字符串常量數(shù)值常量布爾常量日期常量一.直接常量直接常量就是在程序代碼中,以直接明顯的形式給出的數(shù)。例如:”歡迎使用visualBasic”字符串常量12345數(shù)值型常量True布爾型常量#11/10/2001#日期型常量88根據(jù)數(shù)據(jù)類型常量分為:一.直接常量直接常量就是在程序代碼在程序設計中,常用常量命名的方法來取代程序代碼中出現(xiàn)的數(shù),這種常量稱為符號常量。符號常量在使用前需要使用Const語句進行聲明。聲明的格式如下:[Public|Private]Const<常量名>[As<類型>]=<表達式>二.符號常量1.用戶自定義符號常量說明:<常量名>:按變量名的命名規(guī)則命名。As<類型>:可選項,用以說明符號常量的數(shù)據(jù)類型。<類型>可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Date、String或Variant。一個As<類型>子句只能說明一個符號常量。若省略該項,則系統(tǒng)根據(jù)表達式的求值結果,確定最合適的數(shù)據(jù)類型。<表達式>:由數(shù)值常量或字符串常量以及運算符組成。在<表達式>中不能使用函數(shù)調(diào)用。89在程序設計中,常用常量命名的方法來取代程序代用先前定義過的符號常量定義新符號常量例如:ConstPi=3.14159聲明符號常量Pi代表3.14159,單精度類型ConstMaxAsInteger=9聲明符號常量Max代表9,整型ConstBirthDate=#1/1/01#聲明符號常量BirthDate代表2001年1月1日,日期型ConstPi=3.14,Max=9,MyStr=“Hello”用逗號分隔多個符號常量聲明ConstPi2=Pi*290用先前定義過的符號常量定義新符號常量例如:ConstPi=1)如果要使創(chuàng)建的符號常量只作用于某個過程中,則應在該過程內(nèi)部聲明該符號常量。注意:2)如果要使創(chuàng)建的符號常量對模塊中所有過程都有效,但對模塊之外任何代碼都無效,則應在模塊的聲明段中聲明符號常量。3)如果要使創(chuàng)建的符號常量在整個應用程序中有效,則應在標準模塊的聲明段中進行聲明,并在Const前面放置Public關鍵字。在窗體模塊或類模塊中不能聲明Public符號常量。911)如果要使創(chuàng)建的符號常量只作用于某個過程中,則應在該例如:Constpi=3.14159PrivateSubCommandl_Click()
Constr=100s=pi*r^2Print“圓面積=”;s,rEndSubPrivateSubCommand2_C1ick()angle=Sin(20*pi/180)Printangle,rEndSub符號常量pi在整個窗體模塊中有效,符號常量r只在本事件過程中有效92例如:符號常量pi在整個窗體模塊中有效,符號常量r只在本4)由于符號常量可以用其他符號常量定義,因此在兩個以上符號常量之間不要出現(xiàn)循環(huán)或循環(huán)引用。例如:在標準模塊Modulel中定義:PublicConstconA=conB*2在整個應用程序中有效在標準模塊Module2中定義:PublicConstconB=conA/2在整個應用程序中有效當程序中有兩個以上的公共符號常量,而且每個公共符號常量都用另一個去定義時就會出現(xiàn)循環(huán)。出現(xiàn)循環(huán)引用,在運行此應用程序時,VB就會產(chǎn)生錯誤信息。為了避免出現(xiàn)循環(huán)引用,可以將公共符號常量限制在單一模塊內(nèi),或最多只存在于少數(shù)幾個模塊內(nèi)。934)由于符號常量可以用其他符號常量定義,因此在兩個以上符號常5)符號常量是有意義的名字,它用于取代永遠不變的數(shù)值或字符串。盡管符號常量有點像變量,但不能像對變量那樣修改符號常量,也不能對符號常量賦以新值。945)符號常量是有意義的名字,它用于取代永遠不變的數(shù)值或字符串2.系統(tǒng)定義的符號常量系統(tǒng)符號常量的定義可以從“對象瀏覽器”中獲得。使用對象瀏覽器可以顯示包括當前工程及對象庫在內(nèi)的過程、模塊、類、屬性和方法等的描述信息。選擇對象庫在“類”列表中選擇所需要的符號常量組用鼠標單擊某一個符號常量描述框中顯示有關該符號常量的定義及描述信息。例:vbBlue所表示的顏色值為&HFF0000從菜單欄視圖中選擇“對象瀏覽器”或(F2)952.系統(tǒng)定義的符號常量系統(tǒng)符號常量的定義可
每個變量都有名字和數(shù)據(jù)類型,通過名字來引用一個變量,而通過數(shù)據(jù)類型來確定該變量的存儲方式。
變量是指在程序運行時其值可以改變的量,是一個有名稱的內(nèi)存單元。3.4變量96每個變量都有名字和數(shù)據(jù)類型,通過名字來引用一VB變量的命名規(guī)則:.變量名必須以字母開頭,長度不超過255個字符。.變量名只能由字母、數(shù)字和下劃線組成,不可以包含小數(shù)點、空格或者內(nèi)嵌的類型聲明字符。.不能使用關鍵字,不能與過程名或符號常量同名。.變量名不區(qū)分大小寫。一.變量的命名規(guī)則例如:合法變量名:strMyString、intCount、MyForm等非法變量名:1x、a+b、LiLin、Sin等97VB變量的命名規(guī)則:一.變量的命名規(guī)則例如:30二.變量的聲明變量使用之前,一般必須先聲明變量名和類型,以便系統(tǒng)為其分配存儲單元。固定格式聲明隱式聲明強制顯式聲明VB變量及其類型聲明方式98二.變量的聲明變量使用之前,一般必須先聲明變格式:說明:<類型>:可以是VB提供的各種數(shù)據(jù)類型或用戶自定義類型。[As<類型>]:方括號部分表示該部分可以缺省。缺省時,變量默認為變體類型.Dim:在窗體模塊、標準模塊或過程中聲明變量。Private:變量僅在該模塊或過程中有效。Static:在過程中定義靜態(tài)變量,即使該過程結束,也仍然保留變量的值。Public:標準模塊中聲明全局變量,使變量在整個應用程序中有效。Dim|Private|Static|Public<變量名>[As<類型>]1、固定格式聲明99說明:Dim|Private|Static|Public變量名后加一特定符號來表明數(shù)據(jù)類型:%整型&長整型!單精度型#雙精度型@貨幣型$字符串型X!=4.56Num%=88Name$=“李紅”100變量名后加一特定符號來表明數(shù)據(jù)類型:%整型X!=4.5若變量未經(jīng)定義而直接使用,VB會自動建立一個變量??纱娣湃魏晤愋偷臄?shù)據(jù),如數(shù)值、字符串、日期和時間。2、隱式聲明可見,隨著所賦值的不同,變量的類型在不斷變化.這種方法很方便,但是常常會因為轉換過程難以預料,而導致一個難以查找的錯誤。因此,應該在應用程序中聲明所使用的變量的類型。例如:SomeValue=100SomeValue=“ABC”101若變量未經(jīng)定義而直接使用,VB會自動建立一個(1)可在窗體模塊或標準模塊的聲明段中加入語句:OptionExplicit3、強制顯式聲明VB可采用強制聲明功能,使所有變量都必須先聲明后使用,這樣,若運行時遇到一個未經(jīng)明確聲明的變量名,VB就會發(fā)出錯誤警告。聲明方式:(2)在“工具”菜單中打開“選項”對話框,單擊“編輯器”選擇“要求變量聲明”選項,即可自動插入OptionExplicit語句。注:OptionExplicit語句的作用范圍僅限于語句所在模塊.對于需要強制式變量聲明的窗體模塊、標準模塊及類模塊,必須將OptionExplicit語句放在這些模塊的聲明段中。102(1)可在窗體模塊或標準模塊的聲明段中加入語句:VB中有以下6類運算符和表達式:
·算術運算符與算術表達式.字符串運算符與字符串表達式.關系運算符與關系表達式.邏輯運算符與邏輯表達式.日期運算符與日期表達式.對象運算符與對象表達式用運算符將運算對象(或操作數(shù))連接起來即構成表達式。表達式表示了某種求值規(guī)則。
操作數(shù)可以是常量、變量、函數(shù)、對象等,而運算符也有各種類型。3.5運算符與表達式103VB中有以下6類運算符和表達式:用運算符將運一、算術運算符與算術表達式
算術運算符用于對數(shù)值型數(shù)據(jù)執(zhí)行各種算術運算。VB提供了7個算術運算符,優(yōu)先級次序如表所列:優(yōu)先級運算符運算1^乘方2-取負3*乘法/浮點除法4\整數(shù)除法5Mod取模6+加法-減法
其中,取負(—)運算符是單目運算符,其余運算符均為雙目運算符(需要兩個操作數(shù))。104一、算術運算符與算術表達式算術運算符用于對數(shù)乘方運算用來計算乘方和方根。例:10^210的平方,結果為10010^(-2)10的平方的倒數(shù),即1/100,結果為0.0125^0.525的平方根,結果為58^(1/3)8的立方根,結果為22^2^3運算順序從左到右,結果為以64(-8)^(-1/3)錯誤,當?shù)讛?shù)為負數(shù)時,指數(shù)必須是整數(shù)1.乘方運算105乘方運算用來計算乘方和方根。1.乘方運算382.整數(shù)除法(\)例:10\4結果為225.68\6.99先四舍五入再整除,結果為3執(zhí)行整除運算,結果為整型值。參加運算的操作數(shù)一般為整型數(shù)。當操作數(shù)帶有小數(shù)點時,先被四舍五入為整型數(shù),后整除。1062.整數(shù)除法(\)例:執(zhí)行整除運算,結果為整例:10Mod4結果為225.68Mod6.99先四舍五入再求余數(shù),結果為511Mod-4結果為3-11Mod5結果為-1-11Mod–3結果為-23.取模運算(Mod)取模運算符Mod用于求余數(shù),為第一操作數(shù)整除第二操作數(shù)所得的余數(shù).操作數(shù)帶小數(shù),先四舍五入取整型數(shù),后求余;運算結果符號取決于第一個操作數(shù)。107例:3.取模運算(Mod)取模運算符Mod用注意:“&”和“+”這兩個運算符的區(qū)別:“+”運算符兩邊的操作數(shù)應均為字符串。如果都為數(shù)值型,則進行算術運算;如果有一個為非數(shù)字字符串,另一個為數(shù)值型,則出錯?!?’’運算符兩邊的操作數(shù)不論是數(shù)值型的還是字符串型的,都進行字符串的連接運算,系統(tǒng)先將數(shù)值型操作數(shù)轉換為字符串,然后再進行連接運算。二、字符串運算符與字符串表達式字符串運算符有兩個:“&”、“+”,是將兩個字符串連接起來,合并成一個新的字符串。例如:“Hello”&“World”結果為“HelloWorld”18+“25”結果為43“Check”&123結果為“Checkl23”18&25結果為1825“Check”+123
錯誤
108注意:“&”和“+”這兩個運算符的區(qū)別:“+”運算符兩邊的VB提供的關系運算符:=等于2=3False<>不等于2<>3True<2<3True>2>3False>=2>=3False<=2<=3TrueLike字符串匹配“aBBa”Like“a*a”TrueIs對象引用比較object1Isobject2三、關系運算符與關系表達式關系運算符又稱為比較運算符,用于對兩個表達式的值進行比較,比較的結果為布爾值True(真)或False(假)。109VB提供的關系運算符:三、關系運算符與關系表達式有關說明:若兩個操作數(shù)是數(shù)值型,按其大小比較。若兩個操作數(shù)是字符串,則按字符的ASCII碼值從左到右逐一比較。對單精度或雙精度進行比較時,應避免直接判斷兩個浮點數(shù)是否相等,而改成對其誤差的判斷。例如:Abs(A-B)<1E-5關系運算符的優(yōu)先級相同?!癓ike”運算符與通配符“?”、“*”等結合使用,常用于數(shù)據(jù)庫模糊查詢?!癐s”運算符用于兩個對象變量的引用比較。**isNull110有關說明:43例:數(shù)學上判斷x是否在區(qū)間[a,b]內(nèi)如寫成:a<=x<=b則不能完成指定功能假設a=1,b=3,x=4VB在計算:1<=x<=3時由左向右計算先計算1<=4成立,值為-1接著計算-1<=3
成立,最終結果為True,而我們想要的結果為False故引入邏輯表達式111例:數(shù)學上判斷x是否在區(qū)間[a,b]內(nèi)44四、邏輯運算符與邏輯表達式
邏輯運算也稱布爾運算或邏輯乘.運算符兩邊的操作數(shù)要求為邏輯值.用邏輯運算符連接兩個或多個邏輯量組成的表達式稱為邏輯表達式或布爾表達式.邏輯表達式的結果仍為邏輯值True或False.112四、邏輯運算符與邏輯表達式邏輯運算也稱布爾運算或邏當兩個操作數(shù)均為假時,結果才為假當兩個操作數(shù)均為真時,結果才為真當操作數(shù)為假時,結果為真說明False(3>8)And(5<6)與And2TrueTrue結果(3>8)Or(5<6)Not(3>8)例子或非運算OrNot運算符Not運算符為單目運算符,其它為雙目運算符.31優(yōu)先級45XorEqv6Imp異或同或蘊含當兩個操作數(shù)不等價時,結果為真當兩個操作數(shù)值等價時,結果為真如果A則B(3>8)Xor(5<6)(3>8)Eqr(5<6)(3>8)Imp(5<6)TrueFalseTrue113當兩個操作數(shù)均為假時,結果才為假當兩個操作數(shù)均為真時,結果才真值表TrueFalseAXorBFalseBFalseAFalseTrueTrueFalseTrueTrueTrueFalseTrueFalseAEqvBFalseBFalseATrueFalseeTrueFalseFalseTrueTrueTrueTrueFalseAImpBFalseBFalseATrueTrueTrueFalseTrueTrueTrueFalse114真值表TrueFalseAXorBFalseBFalse2.3.5表達式的運算順序表達式的運算的先后順序為:函數(shù)運算算術運算關系運算邏輯運算例:a=3,b=5,c=-1,d=7a+b>c+dAnda>=5OrNotc>0Ord<0⑩True①8②6④False③True⑤False⑥False⑦True⑧False⑨True1152.3.5表達式的運算順序表達式的運算的先后順序為:函數(shù)運VB提供系統(tǒng)內(nèi)部函數(shù),允許用戶自定義函數(shù)過程。內(nèi)部函數(shù)分5類:數(shù)學函數(shù)字符串函數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論