版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章基本數(shù)據(jù)類型與表達式2.1VisualBasic字符集與詞匯表2.2VisualBasic的基本數(shù)據(jù)類型2.3常量與變量2.4運算符與表達式2.5常用內部函數(shù)
一個語句是由單詞和表達式構成,而單詞和表達式是由一個一個字符組成。字符、詞匯、表達式、語句、過程、函數(shù)等統(tǒng)稱為“語法單位”。語法單位的形成是按一定規(guī)則的,語法單位的形成規(guī)則稱為“語法規(guī)則”。2.1VisualBasic字符集與詞匯表字符是構成程序設計語言的最小語法單位。每一種程序設計語言都有自己的字符集。程序設計語言中的合法句子都是由字符集中的字符構成。
數(shù)字:0123456789
英文字母:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
特殊符號:Space!"#$%&'()*+,–./:;<=>?@[\]^_{|}~
2.1.1字符集
漢字也作為一種字符,它們既可以有語法意義,也可以作為字符顯示或打印出來。在程序代碼窗口中輸入程序時,漢字在中文方式下輸入,其它字符必須在英文方式下輸入。例如,輸入語句
Print"圓面積是:",3.14159*r*r
“單詞”是程序設計語言中具有獨立意義的最基本結構。例如:0.5是一個單詞,表示值為0.5的實型常數(shù)。程序設計語言中,單詞符號一般包括:運算符、界符、關鍵字、標識符、各類型常數(shù)等。2.1.2
詞匯集
運算符用于指定數(shù)據(jù)的各種運算。而界符是用來分隔單詞的符號。界符也稱為間隔符。運算符也作為界符來使用。
例如,語句Printx有兩個單詞:Print和x,界符是空格符;表達式 0.125*23包含3個單詞:0.125,*和23,它們中間沒有空格,運算符“*”就起了界符作用。1.運算符和界符(1)算術運算符
+(加)–(減)*(乘)/(除)
^(乘冪)\(整除)Mod(求模)
(2)字符串運算符
&或+(連接)
(4)邏輯運算符
NOT(邏輯非)AND(邏輯與)OR(邏輯或)
Xor(異或)Eqv(等價)Imp(蘊涵)
(3)比較運算符
>(大于)<(小于)=(等于)<>(不等于) >=(大于等于)<=(小于等于)
(5)其他界符((左圓括號))(右圓括號)[(左方括號)
](右方括號),(逗號);(分號)
:(冒號)!(感嘆號)?(問號)
“(雙引號) ‘(單引號) .(小數(shù)點)
%(百分號)#(井號)_(下劃線)
Space(空格)$(貨幣符或字符串類型符)關鍵字又稱保留字。在語法上具有固定含義的單詞稱為關鍵字,它是語句的重要組成部分。它也用來表示系統(tǒng)提供的標準過程、函數(shù)、運算符、常量等。例如:
AbsAddItemAndAnyAsBeepByValCallCaseChrCircleClearCloseClsCommandConstCosCurrencyDateDayDeftypeDimDirDoLoopDoEventsDoubleElseEndEofEqvErrorExitExpFalse…2.關鍵字
標識符用于標記用戶自定義的常量、類型、變量、控件或過程、函數(shù)等。標識符的選取必須遵循如下規(guī)則:
·必須以字母開頭,由字母、數(shù)字和下劃線組成。
·變量名的最后一個字符可以是類型說明符。
·不能超過255個字符??丶⒋绑w、類和模塊的名字不能超過40個字符。
·不能和關鍵字同名(但窗體和控件名除外)。3.標識符
另外,也允許使用漢字作為用戶自定義的標識符。
例如,合法的標識符有:ax1n0_1a2csum%namemyform姓名班級不合法標識符有:2ax+y
a,ba$bprint
標識符的選取除了符合上述原則外,應該盡可能做到“見名知義”,提高程序的可讀性。例如,年齡用age,名字用name,總和用sum
數(shù)據(jù)是程序的處理對象,它有不同類型。VB提供的基本數(shù)據(jù)類型主要有字符串型、數(shù)值型、邏輯型和日期型。不同類型的數(shù)據(jù)的表示形式、取值范圍和操作方式都不一樣。2.2.1
字符串型2.2.3
邏輯型2.2.2
數(shù)值型2.2.4
日期型2.2VisualBasic的基本數(shù)據(jù)類型
字符串(String)是一個字符序列,由放在一對雙引號中的ASCII字符(除雙引號和回車符之外)、漢字及其他可打印字符組成。
例如,合法的字符串:
"Hello""Wearestudents.""中華人民共和國""2+3=?""2000""#####""¥25,000.00"""(空字符串)2.2.1字符串型
(1)字符串中包含的字符個數(shù)稱為字符串長度。在VisualBasic6.0中,把漢字作為一個字符處理。長度為0(即不含任何字符)的字符串稱為空字符串,簡稱為空串。
(2)雙引號在程序代碼中起字符串的界定作用。當輸出一個字符串時,并不顯示雙引號;從鍵盤上輸入一個字符串時,也不需要鍵入雙引號。
(3)字符串中字母的大小寫是有區(qū)別的。例如,字符串“ABC”與“abc”是兩個不相同的字符串。注意:整型數(shù)是不帶小數(shù)點和指數(shù)符號的數(shù)。十進制整型數(shù)由0~9之間的數(shù)字組成,可以帶正號或負號。
例如:
147588565200–314532700
整型數(shù)按示數(shù)表示范圍的不同分為整數(shù)、長整數(shù)和字節(jié)型整數(shù)。整型數(shù)和長整數(shù)還可以有三種表示形式:十進制、八進制和十六進制形式。1.整型2.2.2數(shù)值型(1)整型(Integer)
十進制整數(shù)以兩個字節(jié)(16位)二進制碼表示和參與運算,其取值范圍是–32768~+32767。八進制整數(shù)由八進制數(shù)字0~7組成,前面冠以&或&0,可以帶正號或負號。其取值的絕對值范圍是&0~&177777。例如:&347&01277–&264
十六進制整數(shù)由十六進制數(shù)字0~9,A~F(或a~f)組成,前面冠以&H(或&h),可以帶正號或負號。其取值的絕對值范圍是&H0~&HFFFF。
例如:&H76&H32f–&ha4e
(2)長整型(Long)
十進制長整數(shù)以4個字節(jié)(32位)存儲,取值范圍是–2147483648~+2147483647。當用八進制或十六進制形式表示長整數(shù)時,數(shù)字序列都應以符號“&”結尾。它們示數(shù)的絕對值范圍分別是&0&~&37777777777和&H0&~&HFFFFFFFF&。
例如:
&3477&–&5557764&&O23456871&&H589&&hA2BCD5F&–&h569ef&
對在程序中用八進制或十六進制形式表示的整數(shù)、長整數(shù),需要輸出時,系統(tǒng)將自動把它們轉換成十進制數(shù)據(jù)形式輸出。注意:
例如:八進制數(shù)&177,其輸出結果為十進制數(shù)127
十六進制數(shù)&HFF,其輸出結果為十進值數(shù)255
(3)字節(jié)型(Byte)
以1個字節(jié)(8個二進位)存儲無符號整型,取值范圍在0~255之間。實型數(shù)是帶有小數(shù)部分的數(shù),分為定點數(shù)和浮點數(shù)。定點數(shù)為帶小數(shù)點的數(shù)。
浮點數(shù)由符號、指數(shù)和尾數(shù)三部分組成。
2.實型(1)單精度浮點數(shù)(Single)
用4個字節(jié)(32個二進位)存儲,其中符號占1位,指數(shù)占8位,其余23位表示尾數(shù)。單精度數(shù)可以精確到7位十進制數(shù)。負數(shù)的取值范圍為:
–3.402823E+38~–1.401298E–45
正數(shù)的取值范圍為:
1.401298E–45~3.402823E+38。
單精度浮點數(shù)的指數(shù)符號用字母“E”(或“e”)表示。例如:
123.45E3或123.45e+3,123.45是尾數(shù)部分,E3或e+3是指數(shù)部分,相當于123.45乘10的3次方。
–0.674523E5,相當于–0.674523乘10的5次方。
(2)雙精度浮點數(shù)(Double)
用8個字節(jié)(64個二進位)存儲,其中符號占1位,指數(shù)占11位,其余52位表示尾數(shù)。雙精度數(shù)可以精確到15位或16位十進制數(shù)。負數(shù)的取值范圍為:
–1.797693134862316E+308~–4.94065645841247E–324
正數(shù)的取值范圍為:
4.94065645841247E–324~1.797693134862316E+308
雙精度浮點數(shù)的指數(shù)符號可用“D”(或“d”)表示,VB會自動轉換為E。
例如:
123.45678D+3或123.45678d3,123.45678是尾數(shù)部分,D+3是指數(shù)部分,相當于123.45678乘以10的3次方。
345.123456789D–6,相當于345.123456789乘以10的–6次方。(3)貨幣類型數(shù)據(jù)(Currency)
貨幣類型數(shù)據(jù)是為表示錢款而設置的。該類型數(shù)據(jù)以8字節(jié)存儲,精確到小數(shù)點后4位,在小數(shù)點后4位以后的數(shù)字將被舍去。其取值范圍是:
–922337203685477.5808~922337203685477.5807
浮點數(shù)的小數(shù)點是“浮動”的,即小數(shù)點可以出現(xiàn)在數(shù)的任何位置,而貨幣類型數(shù)據(jù)的小數(shù)點是固定的,稱為定點數(shù)據(jù)類型。
邏輯型數(shù)據(jù)(Boolean)只有兩個可能值:
True(邏輯真)或者False(邏輯假)。邏輯型數(shù)據(jù)用2個字節(jié)(16個二進位)存儲。當邏輯值轉換為數(shù)值型時,F(xiàn)alse成為0,True成為–1。2.2.3邏輯型
日期型(Date)數(shù)據(jù)用來表示日期和時間,它以8個字節(jié)(64個二進位)存儲,可以表示的日期范圍從100年1月1日到9999年12月31日,可以表示的時間范圍從0:00:00到23:59:59。2.2.4日期型日期型數(shù)據(jù)的標準形式有三種:
1.#月/日/年#
這種形式用來表示日期。例如:#2/18/2003#
2.#時:分:秒AM∣PM#
這種形式用來表示時間。AM表示上午,PM表示下午。例如:#10:08:20AM#
3.#月/日/年時:分:秒AM∣PM#
這種形式用來表示日期和時間。例如:#2/18/200310:08:20AM#
當數(shù)值型數(shù)據(jù)要轉換為日期型數(shù)據(jù)時,小數(shù)點左邊的值表示日期信息,即從1899年12月31日開始所經(jīng)過的天數(shù)。而小數(shù)點右邊的值則表示時間,以毫秒為單位。午夜為0,中午為0.5。負整數(shù)表示1899年12月31日之前的日期和時間。
不同類型的數(shù)據(jù)既可以表示為常量形式,也可以表示為變量形式。常量的值在程序執(zhí)行期間是不會發(fā)生變化的。變量代表內存中指定的存儲單元。變量的存儲單元在程序中可以根據(jù)需要賦予不同的值,即變量的值是可以變化的。
2.3.1
常量2.3.2
變量2.3常量與變量文字常量的類型和值由它本身的表示形式?jīng)Q定。例如:
“Thisisastring”字符串常量,長度為16
12598
十進制整數(shù)
1.文字常量2.3.1常量常量的數(shù)據(jù)類型有時會存在多義性。例如,值3.01是單精度類型,還是雙精度類型或貨幣類型?規(guī)定:在缺省的情況下,VB將選擇需要內存容量最小的表示方法處理。例如,值3.01作為單精度數(shù)處理。
注意:為了顯式地指明數(shù)值型常量的類型,可以在常量后面加上類型說明符,這些說明符分別為:
%
整型
&
長整型
!
單精度浮點型#
雙精度浮點型
@
貨幣型$
字符串型例如:3.01#
雙精度浮點型常數(shù)
100.05@
貨幣型常數(shù)
在程序中的一些多次出現(xiàn)或難于記憶的常數(shù)值,可以用標識符來定義,即用標識符給常量取名。這樣定義的常量名稱稱為符號常量。用標識符定義常量后,凡是在程序中出現(xiàn)該常量的地方都可以使用相應的標識符代替。2.符號常量符號常量說明語句的一般格式:
Const<constantname>[As<type>]=<expression>
其中:<constantname>
為常數(shù)的名稱,用標識符表示。
As<type>
是可選項,用以說明常數(shù)的數(shù)據(jù)類型。<type>可以是:Byte,Boolean,Integer,Long,Currency,Single,Double,Date,String或Variant等。
<expression>是必選項,可以為文字常數(shù),也可以是包含除Is之外任意的算術操作符和邏輯操作符所構成的表達式。
(1)說明符號常量的類型時,可以在常量名后加上類型說明符。例如:Constone&=1。(2)在程序中引用符號常量時,通常省略類型說明符。(3)類型說明符不是符號常量的組成部分。例如,假設說明了:Constnum=56,則num!,num#,num%,num&,num@就不能再作變量名了。
(4)經(jīng)過說明的符號常量只是常數(shù)值的名字,不能在程序代碼中修改它的值。
注意:
(5)Const語句可以放在程序的不同位置。該語句出現(xiàn)的位置不同,有效范圍也不同。如果符號常量說明語句在過程內部,符號常量只能在該過程內有效。如果符號常量說明語句出現(xiàn)在窗體代碼的聲明部分中,則窗體以及窗體中各控件的事件驅動程序都能夠引用這些被聲明的符號常量。
OptionExplicitConstpi=3.14159PrivateSubCommand1_Click()Dimr1!r1=InputBox("請輸入半徑")
Print"半徑=";r1,"周長=";2*
pi*r1EndSub
PrivateSubCommand2_Click()Dimr2!r2=InputBox("請輸入半徑")
Print"半徑=";r2,"面積=";pi*r2*r2EndSub
Pi有效!Pi有效!例2-1
符號常量的作用域。變量是用來存儲數(shù)據(jù)的,系統(tǒng)對程序中的每一個變量都分配有相應存儲單元。存儲單元中存放的數(shù)據(jù)就是變量的值,它的類型就是變量的類型。在程序中,若要引用變量的值必須使用變量名。變量的名字用標識符表示。
2.3.2變量(1)變量說明語句變量說明語句一般形式:
Dim<variablename>[As<type>]其中:Dim
是用于說明變量的關鍵字
<variablename>
是用戶定義的標識符
<type>
可以是各種標準類型名稱或用戶自義類型標識符。缺省As子句時,被說明的變量為可變類型。例如:Dimvar1AsInteger DimtotalAsDouble
1.變量的說明
用Dim語句定義的變量的作用范圍與語句的位置有關。如果Dim語句出現(xiàn)在窗體代碼的聲明部分,則窗體以及窗體中各控件的事件驅動程序都能夠使用這些變量。
在過程內部用Dim語句說明的變量,只有在該過程執(zhí)行時才存在。過程執(zhí)行結束后,系統(tǒng)會把相應的存儲單元收回,變量的值也就消失了。過程中說明的變量是局部的。無法在一個過程中使用另一個過程中說明的變量。在不同的過程中可以使用相同的變量名。但它們表示不同的變量,分配有不同的存儲單元。
Constpi=3.14159265PrivateSubCommand1_Click()DimrasSingle
r=InputBox("請輸入半徑")
Print"半徑=";r,"周長=";2*pi*rEndSub
PrivateSubCommand2_Click()DimrasSingle
r=InputBox("請輸入半徑")
Print"半徑=";r,"面積=";pi*r*rEndSub
例2-2
不同過程使用相同的變量名。除了可以用As子句說明變量的類型外,還可以把類型說明符放在變量名的尾部,用于說明不同類型的變量。
例如:
Dimvar1% Dimtotal# Dimnamevar$
類型說明符“$”可以說明變長字符串變量,但不能說明定長字符串變量。說明定長字符串變量必須使用As子句。即用As子句可以說明變長字符串變量,也可以說明定長字符串變量。變長字符串變量的長度取決于賦給它的字符串常量的長度,定長字符串常量的長度通過加上“*<數(shù)值>”來決定。例如:
DimnamevarAsStringDimmynameAsString*10
在一個Dim語句中可以定義多個變量。例如:
Dimvar1AsString,var2AsDouble
(2)隱式說明如果使用一個變量之前不事先說明,則系統(tǒng)對該變量進行隱式說明。隱式說明的變量的類型為可變類型。
例2-3
輸出隱式說明變量的值。
輸出空值
PrivateSubCommand1_Click()DimvarAsIntegervar=100PrintPrint"var=";var,EndSub
PrivateSubCommand2_Click()Print“var=”;varEndSub
若一個隱式說明的變量直接參與數(shù)值運算時,作0值處理。例如,若把上述Command2_Click過程中的語句:
Print"var=";var改為:
Print"var=";var+1則輸出結果為數(shù)值1。若一個隱式說明的變量直接參與字符串運算時,作空串處理。變量的隱式說明可以省略了說明語句,看起來很方便,但往往會導致一些難以查找的錯誤。
例2-4
下列語句的作用是交換變量a,b的值:
temp=aa=bb=temp
若輸入為:
temp=aa=bb=emp
則會產(chǎn)生錯誤。有錯!規(guī)定每個變量都要經(jīng)過顯式說明才可以使用只須在程序模塊的聲明部分中加入語句:
OptionExplicit
例如:OptionExplicitPrivateSubCommand1_Click()DimrAsSingler=InputBox("請輸入半徑")
Print"圓半徑是:",rPrint"圓周長是:",2*3.14159*rPrint"圓面積是:",3.14159*r*rEndSub
在變量說明語句中,使用關鍵字Variant定義類型或僅定義變量而不作類型聲明(缺省類型說明As子句或變量名不帶類型符),則該變量稱為可變類型變量。例如:DimsomevalueAsVariant Dimsomevalue
2.可變類型變量在可變類型變量中可以存放任何類型的數(shù)據(jù),包括數(shù)值、字符串、日期和時間。變量的類型將隨著存放數(shù)據(jù)的變化而變化,VB自動完成各種必要的轉換。
例如:
somevalue=“100” somevalue=somevalue–10somevalue=“ABC”+Str(somevalue)
使用可變類型變量存在兩個隱患:進行算術運算時的隱患和進行“+”連接運算時的隱患。避免這兩個隱患可以采取如下兩個措施:(1)對可變類型變量進行算術運算時,必須確保變量中存放的是某種形式的數(shù)值;例如:Dimvalue value=“3e+2” value=value–10
若改為:value=“123e+x”則會產(chǎn)生錯誤。
(2)進行連接運算時,盡量使用運算符“&”。
Variant類型有兩個特殊常量:
(1)Empty
當可變類型變量沒有賦值前,它的值為Empty。進行算術運算時,Empty作為0參與運算;進行字符串運算時,Empty作為空字符串參與運算。例如:DimaPrint12345+a
(2)Null
表示無效數(shù)據(jù)
PrivateSubCommand1_Click()Dimaa="string":Print"a=";aa=Empty:Print"a=";aa=123:Print"a=";aa=Null:Print"a=";aa=Empty:Print"a=";aa=Null:Print"a=";aEndSub例2-5
觀察Empty
和Null值
a=stringa=a=123a=Nulla=a=Null在變量說明語句中使用關鍵字Static說明的變量稱為靜態(tài)變量。程序模塊運行結束后,VB不收回靜態(tài)變量所占的存儲單元,并且保留它們的值。再次調用該程序模塊時,也不會刷新靜態(tài)變量的值。使用其他說明符說明的變量稱為自動變量。3.靜態(tài)變量OptionExplicitPrivateSubCommand1_Click()DimxAsIntegerx=x+1Printx;"";EndSubPrivateSubCommand2_Click()StaticyAsIntegerIfy=0ThenPrinty=y+1Printy;"";EndSub111111123456
例2-6
測試靜態(tài)變量。運算是對數(shù)據(jù)的加工。對數(shù)據(jù)進行什么運算要由運算符來確定。參與運算的數(shù)據(jù)稱為運算量或操作數(shù)。運算量包括常量、變量、函數(shù)等。由運算量、運算符和圓括號構成的式子稱為表達式。表達式有多種類型:數(shù)值表達式、字符串表達式、關系表達式、邏輯表達式等。2.4運算符與表達式算術運算符是用來對數(shù)值型數(shù)據(jù)進行運算的一種符號。
+、–、*、/(實數(shù)除)、\(整數(shù)除)、Mod、^(指數(shù)運算)
除“–”可作取負運算,只需要一個操作數(shù)外,其余運算符均要求有兩個操作數(shù)。運算符左邊的操作數(shù)稱為左操作數(shù),運算符右邊的操作數(shù)稱為右操作數(shù)。2.4.1算術運算符與數(shù)值表達式
算術運算的一般形式為:
aOpb
或OPb其中Op表示運算符,a是左操作數(shù),b是右操作數(shù)。例如:100*45-50
a和b也可以是一個表達式。例如:23/5+1.2
由數(shù)值型數(shù)據(jù)、算術運算符和圓括號構成的表達式稱為數(shù)值表達式。其運算結果為數(shù)值型數(shù)據(jù)。例如:a*b^2+b/(58+r/sin(x-y))
特殊情況:單個數(shù)值型常量或變量或函數(shù)也是數(shù)值表達式。例如:0.5,Pi,a,sin(x)若左操作數(shù)a為負實數(shù),則右操作數(shù)b必須是整數(shù)。指數(shù)運算用來計算乘方和方根,其運算符為“^”。指數(shù)運算的一般形式為:
a^b
若左操作數(shù)a為正實數(shù),則右操作數(shù)b可為任意數(shù)值。當b不是整數(shù)時,設b=n/m,其中m,n均為整數(shù),則VB按下式計算:1.指數(shù)運算例如:
10^2
計算10的平方,結果為100
10^–2
計算10的平方的倒數(shù),即1/100,結果為0.01
25^0.5
計算25的平方根,結果為5
8^(1/3)
計算8的立方根,結果為2
8^(–1/3)
計算8的立方根的倒數(shù),結果為0.5
(–8)^(1/3)
錯誤!浮點數(shù)除法的運算符是“/”。左右操作數(shù)可以為整數(shù)或者浮點數(shù),運算結果的類型由其值決定。例如:3/2
結果為1.5,浮點型
3.6/1.8
結果為2,整型整數(shù)除法的運算符是“\”。左右操作數(shù)一般為整型數(shù)。當操作數(shù)帶有小數(shù)點時,VB首先對其四舍五入為整數(shù),然后進行整除運算。運算結果截取其整數(shù)部分,小數(shù)部分不作舍入處理。例如:10\4
結果為2
20\2.6
結果為6
25.63\6.78
結果為32.浮點數(shù)除法與整數(shù)除法
取模運算的運算符為Mod,專門用于求兩個數(shù)相除的余數(shù)。如果左右操作數(shù)為實數(shù),則先對其進行四舍五入取整,然后求兩個整數(shù)相除的余數(shù)。運算結果的符號取決于左操作數(shù)的符號。即左操作數(shù)為正數(shù),運算結果為正數(shù);左操作數(shù)為負數(shù)時,運算結果為負數(shù)。例如:10Mod4
結果等于2
20Mod2.6
結果等于2
25.63Mod6.78
結果等于5
–5Mod2
結果等于–1
–5Mod–2
結果等于–1
5Mod–2
結果等于13.取模運算算術運算符的優(yōu)先級如下:
^-→–(求負)-→*、/-→\-→
Mod-→+、–
當一個數(shù)值表達式中含有多種算術運算符時,必須按照以上順序求值。同級運算符從左到右運算。如果表達式中含有括號,則先進行括號內運算。括號內有括號時,從內到外逐層運算。例如:3+2*717
10*-5-50
(3+2)*735
1+((2+3)*2)*2214.算術運算符的優(yōu)先級注意:
(1)表達式中的字符要在同一行書寫。
(2)乘號“*”不能省略,也不能用“.”代替。
(3)分子分毋有運算時要加圓括號。
(4)表達式中的方括號和花括號用圓括號代替。
字符串連接運算符為:+或&。左右操作數(shù)都為字符串。運算結果是把兩個字符串連接起來。例如:“Visual”+“Basic”=“VisualBasic”
由字符串常量、字符串變量、連接運算符和圓括號構成的式子稱為字符串表達式。例如:A$+“Basic”&“VisualBasic”
字符串表達式的運算結果為字符串。
特殊情況:單個字符串型常量或變量或函數(shù)也是字符串表達式。例如:“Basic”、A$、Right(“VisualBasic”,5)
2.4.2字符串連接關系運算符用來比較兩個操作數(shù)的大小。關系運算符有:=、<>或><、>、<、>=、<=
用關系運算符把兩個操作數(shù)連接起來的式子稱為關系表達式。例如:5>3
a=b
x>=y+1
1.關系運算符2.4.3關系運算與邏輯運算關系表達式的運算結果為邏輯值。若關系運算符兩邊滿足關系運算符的含義,則運算結果為Ture(參與算術運算時為-1);否則,運算結果為False(參與算術運算時為0)。例如:5>3
值為Ture
Print(5>3)+1
輸出0
說明:
(1)字符串數(shù)據(jù)按ASCII碼和字典順序對各字符逐一進行比較。例如:“china”>“canada”“china”=“china”
“you”<“your”
“廣東”<“廣西”
(2)關系運算符的左右操作數(shù)一般要求類型相同。當類型不同時,VB會按形式值進行轉換后再比較。例如:156=“156”
結果為True
327=“abc”
出現(xiàn)類型不匹配的錯誤(3)應避免直接判斷兩個浮點數(shù)是否相等而改成對誤差的判別。
例如:Abs(num1–num2)<1E–6(4)判斷x是否在區(qū)間[a,b]時,不能寫成a<=x<=b而應寫成: a<=xAndx<=b
邏輯運算符有:Not(邏輯非)And(邏輯與)
Or(邏輯或)Xor(異或)
Eqv(等價)Imp(蘊含)
2.邏輯運算符(2)And(邏輯與)邏輯與運算需要兩個操作數(shù),當左右操作數(shù)的值同時為True時,運算結果才為True;否則,為False。
例如:5>3And8>5
結果為True
5>3And8<5
結果為False(1)Not(邏輯非)
邏輯非只有一個右操作數(shù)。它是一種取反運算。當右操作數(shù)為True時,運算結果為False。當右操作數(shù)為False時,運算結果為True。
例如:Not5<3
結果為True
Not5>3
結果為False(4)Xor(異或)異或運算也需要兩個操作數(shù),當左右操作數(shù)一樣時,運算結果為False;否則,為True。
例如:5>3Xor8>5
結果為False
5>3Xor8<5
結果為True(3)Or(邏輯或)
邏輯或也需要兩個操作數(shù),當左右兩個操作數(shù)中有一個或同時為True時,運算結果為True,只有左右兩個操作數(shù)同時為False時才為False。
例如:5>3Or8<5
結果為True
5<3Or8<5
結果為False(6)Imp(蘊含)
蘊含運算也需要兩個操作數(shù),當左操作數(shù)為True,右操作數(shù)為False時,運算結果為False,其它三種情況均為True。
例如:5>3Imp8>5
結果為True
5>3Imp8<5
結果為False(5)Eqv(等價)
等價運算也需要兩個操作數(shù),當左右兩個操作數(shù)一樣時,運算結果為True;否則,為False。
例如:5>3Eqv8>5
結果為True
5>3Eqv8<5
結果為False
Not→And→Or→Xor→Eqv→Imp
由邏輯運算量、關系表達式、邏輯運算符和圓括號構成的式子稱為邏輯表達式。例如:(x<0)Or(Not(i<>0)Andb)3.優(yōu)先級函數(shù)運算→算術運算→關系運算→邏輯運算
例如:2.4.4表達式的運算順序a/Sin(5*x)^3*b-4a/Sin(5*x)^3*b-4a/Sin(5*x)^3*b-4①a/Sin(
5*x
)^3*b-4①②a/Sin(
5*x
)^3*b-4①②③a/
Sin(
5*x
)^3*b-4①②③④a/
Sin(
5*x
)^3*b
-4①②③④⑤⑥
又如,設i=1,j=0,x=2,y=2,寫出下列布爾表達式的運算順序和運算結果。
x=2OrNoty>0And(x–y)/i<>0x=2OrNoty>0And(x–y)/i<>0x=2OrNoty>0And(x–y)/I<>0①0x=2OrNoty>0And(x–y)
/I<>0①0②0x=2OrNoty>0And(x–y)
/I<>0①0②0③Truex=2OrNoty>0And(x–y)
/I<>0①0②0③True④Truex=2OrNoty>0And(x–y)
/I
<>0①0②0③True④True⑤Falsex=2OrNot
y>0And(x–y)
/I
<>0①0②0③True④True⑤False⑥Falsex=2OrNot
y>0
And
(x–y)
/I
<>0①0②0③True④True⑤False⑥False⑦Falsex=2OrNot
y>0
And
(x–y)
/I
<>0①0②0③True④True⑤False⑥False⑦False⑧True
內部函數(shù)可以分為5類:轉換函數(shù)、數(shù)學函數(shù)、字符串函數(shù)、時間/日期函數(shù)和隨機函數(shù)。這些函數(shù)都帶有一個或幾個自變量,這些自變量也稱為“參數(shù)”。內部函數(shù)的功能就是對這些參數(shù)進行某種運算,返回一個值。這個值稱為函數(shù)值。要使用內部函數(shù)必須要調用它。調用內部函數(shù)的一般格式為:
<函數(shù)名>([<參數(shù)表>])其中參數(shù)表中的參數(shù)可以是一個參數(shù),也可以是多個參數(shù),多個參數(shù)時要用逗號分隔。這些參數(shù)可以為常量、變量、函數(shù)、更一般為表達式。2.5常用內部函數(shù)2.5.1
命令行的解釋執(zhí)行方式
2.5.2
轉換函數(shù)
2.5.3
數(shù)學函數(shù)
2.5.4
字符串函數(shù)
2.5.5
隨機函數(shù)解釋方式有兩種使用方法:使用啟動按鈕來解釋執(zhí)行程序和在立即窗口直接解釋執(zhí)行語句。在立即窗口直接解釋執(zhí)行語句的操作為:
①從菜單欄的“視圖”菜單項中選擇“立即窗口”菜單命令執(zhí)行。
②輸入語句和按回車鍵。
2.5.1命令行的解釋執(zhí)行方式轉換函數(shù)用于數(shù)據(jù)類型或形式的轉換,包括整型、浮點型、字符串型之間以及與ASCII碼字符之間的轉換。2.5.2轉換函數(shù)Int(n)
返回不大于n的最大整數(shù)。Fix(n)
去掉n的小數(shù)部分,返回其整數(shù)部分。例如:
?Int(5.872)
5?Fix(5.872)
5?Int(-5.872)
–6?Fix(-5.872)
–51.取整函數(shù)Asc(s)
返回字符串s的首字符的ASCII碼值。例如:
MyStr1=Asc("A") '返回65
MyStr2=Asc("a") '返回97
MyStr3=Asc("Apple") '返回65
PrintMyStr1,MyStr2,MyStr3
659765
Chr(n)
把表達式n的值轉換為相應的字符。其中表達式n的值是一個的合法ASCII碼值。例如:
MyChar1=Chr(65) '返回“A”MyChar2=Chr(97) '返回“a”MyChar3=Chr(62) '返回“>”
MyChar4=Chr(37) '返回“%”
PrintMyChar1,MyChar2,MyChar3,MyChar4
Aa>%2.類型轉換函數(shù)
Val(s)
返回字符串表達式s中所含的數(shù)值。若遇到字母(指數(shù)符號除外)則停止轉換。例如:
MyValue1=Val("2457") '返回整值2457
MyValue2=Val("2457")'去掉空格,返回整2457
MyValue3=Val("24and57") '返回整值24
MyValue4=Val("3E–2") '返回實數(shù)值3E–2PrintMyValue1,MyValue2,MyValue3,MyValue4
2457245724.03
Str(n)
返回數(shù)值表達式n的值字符串形式。當n轉換成字符串時,字符串的第一個位一定是空格或是負號。例如:
MyString1=Str(459) ‘返回"459"
MyString2=Str(–459.65)‘返回“–459.65"
MyString3=Str(459.001) ‘返回"459.001"
PrintMyString1,MyString2,MyString3
459-459.65459.001
CInt(x)
把數(shù)值表達式x的值的小數(shù)部分四舍五入轉換成整數(shù)。當小數(shù)部分為0.5時,舍(或入)為最接近的偶數(shù)。例如:MyDouble=2345.5678'MyDouble為Double型
MyInt=CInt(MyDouble)'MyInt的值為2346
PrintMyInt
2346
又如:PrintCint(2.5)
2PrintCint(3.5)
4
CCur(x)
把數(shù)值表達式x的值轉換為貨幣類型值,小數(shù)部分最多保留4位且自動四舍五入。例如:
MyDouble=543.214588'MyDouble為Double型
MyCurr1=CCur(MyDouble) '轉換為Currency型
MyCurr2=CCur(MyDouble*2)'轉換為Currency型
PrintMyCurr1,MyCurr2
534.21461086.4292
CDbl(x)把x的值轉換為雙精度數(shù)。例如:
MyCurr=CCur(234.456784)'MyCurr為Currency型
MyDouble=CDbl(MyCurr*8.2*0.01)‘結果為Double型
PrintMyDouble
19.2254576
CLng(x)
把數(shù)值表達式x的值的小數(shù)部分四舍五入轉換為長整數(shù)。例如:
MyVal1=25427.45MyVal2=25427.55 'MyVal1,MyVal2均為Double型
MyLong1=CLng(MyVal1)'把MyVal1轉換為長整數(shù)
MyLong2=CLng(MyVal2)'把MyVal2轉換為長整數(shù)
PrintMyLong1,MyLong2
2542725428
CSng(x)把數(shù)值表達式x的值四舍五入為單精度數(shù)。例如:
MyDouble1=75.3421115'MyDouble1為Double型
MyDouble2=75.3421555'MyDouble2為Double型
MySingle1=CSng(MyDouble1)MySingle2=CSng(MyDouble2)PrintMySingle1,MySingle2
75.3421175.34216
CVar(x)
把數(shù)值表達式x的值轉換為可變類型值。
例如:
MyInt=4534 'MyInt為Integer型
MyVar=CVar(MyInt&"000")PrintMyVar
4534000
(輸出結果為字符串)
Sin(x)
返回自變量x的正弦值
Cos(x)
返回自變量x的余弦值
Tan(x)
返回自變量x的正切值
Atn(x)
返回自變量x的反正切值其中參數(shù)x是數(shù)值表達式,Sin,Cos和Tan函數(shù)的自變量是為弧度,而Atn函數(shù)的自變量是正切值,返回值為弧度。若自變量以角度給出,則可以使用下面公式轉換為弧度:
1度=π/180
弧度1.三角函數(shù)2.5.3數(shù)學函數(shù)
Abs(x)
返回數(shù)值表達式x的值的絕對值。例如:
MyNumber1=Abs(50.3)MyNumber2=Abs(–50.3)PrintMyNumber1,MyNumber2
50.350.32.絕對值函數(shù)
Sgn(x)
返回數(shù)值表達式x的符號。當x的值<0時,函數(shù)返回–1;當x的值=0時,函數(shù)返回0;當x的值>0時,函數(shù)返回1。例如:
MyVar1=12:MyVar2=–2.4:MyVar3=0PrintSgn(MyVar1),Sgn(MyVar2),Sgn(MyVar3)
1–103.符號函數(shù)
Sqr(x)
返回數(shù)值表達式x的值的平方根。x的值須大于或等于0。例如:PrintSqr(64)
8PrintSqr(-4)‘錯誤!負數(shù)不能求平方根。4.平方根函數(shù)
Exp(x)
返回ex的值,其中x為數(shù)值表達式。例如:
PrintExp(1)
2.71828182845905
Log(x)
返回數(shù)值表達式x的值的自然對數(shù),即求lnx的值。
例如:
PrintLog(8)
2.079441541679845.指數(shù)和對數(shù)函數(shù)
LTrim(S)
去掉字符串s左邊的空白字符。
RTrim(S)
去掉字符串s右邊的空白字符。
Trim(S)
去掉字符串s左右兩邊的空白字符。例如:MyString="<–Trim–>"
PrintLTrim(MyString)PrintRTrim(MyString)PrintTrim(MyString)
<–Trim–><–Trim–><–Trim–>1.刪除空白字符函數(shù)2.5.4字符串函數(shù)
Left(s,n)
截取字符串s中最左邊的n個字符。
Mid(s,p,n)
在字符串s中,從第p個字符開始,向后截取n個字符。
Right(s,n)
截取字符串s中最右邊的n個字符。
例如:AnyString="HelloComputerWorld"FirstStr=Left(AnyString,6)MidStr=Mid(AnyString,7,8)LastStr=Right(AnyString,5)PrintFirstStr,MidStr,LastStr
HelloComputerWorld2.字符串截取函數(shù)
Len(s)
返回字符串s的長度,即所含的字符個數(shù)。例如:
MyString1="HelloWorld"PrintLen(MyString1)
11MyString2="華南理工大學"
PrintLen(MyString2)
63.字符串長度測試函數(shù)
String(n,ch)
生成n個同一字符組成的字符串,這個字符由ch指定。ch可以是字符,也可以是某個字符的ASCII碼,還可以是字符串。若ch為字符串,則生成由該字符串的第一個字符組成的n個字符的字符串。
Space(n)
生成由n個空格組成的字符串。例如:
MyS1=String(5,"*")
PrintMyS1
*****MyS2=String(5,42)PrintMyS2
*****4.String和Space函數(shù)MyS3=String(10,"ABC")PrintMyS3AAAAAAAAAAMyStr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025高考語文一輪復習講義:選擇性必修下冊(二) 單篇梳理4 歸去來兮辭并序
- 煙臺2024年05版小學4年級上冊英語第4單元期末試卷
- 費用報銷流程-記賬實操
- 上海市2024-2025學年高一上學期11月期中考試語文試題(無答案)
- 2024年汽、柴油深度加氫催化劑項目資金需求報告代可行性研究報告
- 高考化學復習講義:化學反應與電能
- 文化自信心得體會800字
- 房屋轉租第三方合同范本(30篇)
- 運動會安全應急預案
- 《技術的價值》教學設計(三篇)
- 天津民眾體檢中心——教你看懂體檢報告ppt課件
- HJ 535-2009 水質 氨氮的測定 納氏試劑分光光度法(代替GB 7479-87)
- 史上最全的自駕游完全手冊
- NB_T 10527-2021 煤礦立井井壁注漿施工規(guī)范_(高清最新)
- 執(zhí)行力培訓PPT
- GB 6944-2012 危險貨物分類和品名編號(高清版)
- 住建系統(tǒng)消防安全專項整治工作方案
- 閥門安裝使用說明書【精選文檔】
- 2022電子政務內網(wǎng)使用管理人員安全保密承諾書
- 土地增值稅清算底稿(中稅協(xié)版)
- 人教版小學五年級英語上冊第一、二、三單元復習Recycle教案
評論
0/150
提交評論