版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第2章基本數(shù)據(jù)類型與表達式2.1VisualBasic字符集與詞匯表2.2VisualBasic的基本數(shù)據(jù)類型2.3常量與變量2.4運算符與表達式2.5常用內(nèi)部函數(shù)
一個語句是由單詞和表達式構(gòu)成,而單詞和表達式是由一個一個字符組成。字符、詞匯、表達式、語句、過程、函數(shù)等統(tǒng)稱為“語法單位”。語法單位的形成是按一定規(guī)則的,語法單位的形成規(guī)則稱為“語法規(guī)則”。2.1VisualBasic字符集與詞匯表字符是構(gòu)成程序設(shè)計語言的最小語法單位。每一種程序設(shè)計語言都有自己的字符集。程序設(shè)計語言中的合法句子都是由字符集中的字符構(gòu)成。
數(shù)字:0123456789
英文字母:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
特殊符號:Space!"#$%&'()*+,–./:;<=>?@[\]^_{|}~
2.1.1字符集
漢字也作為一種字符,它們既可以有語法意義,也可以作為字符顯示或打印出來。在程序代碼窗口中輸入程序時,漢字在中文方式下輸入,其它字符必須在英文方式下輸入。例如,輸入語句
Print"圓面積是:",3.14159*r*r
“單詞”是程序設(shè)計語言中具有獨立意義的最基本結(jié)構(gòu)。例如:0.5是一個單詞,表示值為0.5的實型常數(shù)。程序設(shè)計語言中,單詞符號一般包括:運算符、界符、關(guān)鍵字、標(biāo)識符、各類型常數(shù)等。2.1.2
詞匯集
運算符用于指定數(shù)據(jù)的各種運算。而界符是用來分隔單詞的符號。界符也稱為間隔符。運算符也作為界符來使用。
例如,語句Printx有兩個單詞:Print和x,界符是空格符;表達式 0.125*23包含3個單詞:0.125,*和23,它們中間沒有空格,運算符“*”就起了界符作用。1.運算符和界符(1)算術(shù)運算符
+(加)–(減)*(乘)/(除)
^(乘冪)\(整除)Mod(求模)
(2)字符串運算符
&或+(連接)
(4)邏輯運算符
NOT(邏輯非)AND(邏輯與)OR(邏輯或)
Xor(異或)Eqv(等價)Imp(蘊涵)
(3)比較運算符
>(大于)<(小于)=(等于)<>(不等于) >=(大于等于)<=(小于等于)
(5)其他界符((左圓括號))(右圓括號)[(左方括號)
](右方括號),(逗號);(分號)
:(冒號)!(感嘆號)?(問號)
“(雙引號) ‘(單引號) .(小數(shù)點)
%(百分號)#(井號)_(下劃線)
Space(空格)$(貨幣符或字符串類型符)關(guān)鍵字又稱保留字。在語法上具有固定含義的單詞稱為關(guān)鍵字,它是語句的重要組成部分。它也用來表示系統(tǒng)提供的標(biāo)準(zhǔn)過程、函數(shù)、運算符、常量等。例如:
AbsAddItemAndAnyAsBeepByValCallCaseChrCircleClearCloseClsCommandConstCosCurrencyDateDayDeftypeDimDirDoLoopDoEventsDoubleElseEndEofEqvErrorExitExpFalse…2.關(guān)鍵字
標(biāo)識符用于標(biāo)記用戶自定義的常量、類型、變量、控件或過程、函數(shù)等。標(biāo)識符的選取必須遵循如下規(guī)則:
·必須以字母開頭,由字母、數(shù)字和下劃線組成。
·變量名的最后一個字符可以是類型說明符。
·不能超過255個字符??丶?、窗體、類和模塊的名字不能超過40個字符。
·不能和關(guān)鍵字同名(但窗體和控件名除外)。3.標(biāo)識符
另外,也允許使用漢字作為用戶自定義的標(biāo)識符。
例如,合法的標(biāo)識符有:ax1n0_1a2csum%namemyform姓名班級不合法標(biāo)識符有:2ax+y
a,ba$bprint
標(biāo)識符的選取除了符合上述原則外,應(yīng)該盡可能做到“見名知義”,提高程序的可讀性。例如,年齡用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)雙引號在程序代碼中起字符串的界定作用。當(dāng)輸出一個字符串時,并不顯示雙引號;從鍵盤上輸入一個字符串時,也不需要鍵入雙引號。
(3)字符串中字母的大小寫是有區(qū)別的。例如,字符串“ABC”與“abc”是兩個不相同的字符串。注意:整型數(shù)是不帶小數(shù)點和指數(shù)符號的數(shù)。十進制整型數(shù)由0~9之間的數(shù)字組成,可以帶正號或負(fù)號。
例如:
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,可以帶正號或負(fù)號。其取值的絕對值范圍是&0~&177777。例如:&347&01277–&264
十六進制整數(shù)由十六進制數(shù)字0~9,A~F(或a~f)組成,前面冠以&H(或&h),可以帶正號或負(fù)號。其取值的絕對值范圍是&H0~&HFFFF。
例如:&H76&H32f–&ha4e
(2)長整型(Long)
十進制長整數(shù)以4個字節(jié)(32位)存儲,取值范圍是–2147483648~+2147483647。當(dāng)用八進制或十六進制形式表示長整數(shù)時,數(shù)字序列都應(yīng)以符號“&”結(jié)尾。它們示數(shù)的絕對值范圍分別是&0&~&37777777777和&H0&~&HFFFFFFFF&。
例如:
&3477&–&5557764&&O23456871&&H589&&hA2BCD5F&–&h569ef&
對在程序中用八進制或十六進制形式表示的整數(shù)、長整數(shù),需要輸出時,系統(tǒng)將自動把它們轉(zhuǎn)換成十進制數(shù)據(jù)形式輸出。注意:
例如:八進制數(shù)&177,其輸出結(jié)果為十進制數(shù)127
十六進制數(shù)&HFF,其輸出結(jié)果為十進值數(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ù)。負(fù)數(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ù)部分,相當(dāng)于123.45乘10的3次方。
–0.674523E5,相當(dāng)于–0.674523乘10的5次方。
(2)雙精度浮點數(shù)(Double)
用8個字節(jié)(64個二進位)存儲,其中符號占1位,指數(shù)占11位,其余52位表示尾數(shù)。雙精度數(shù)可以精確到15位或16位十進制數(shù)。負(fù)數(shù)的取值范圍為:
–1.797693134862316E+308~–4.94065645841247E–324
正數(shù)的取值范圍為:
4.94065645841247E–324~1.797693134862316E+308
雙精度浮點數(shù)的指數(shù)符號可用“D”(或“d”)表示,VB會自動轉(zhuǎn)換為E。
例如:
123.45678D+3或123.45678d3,123.45678是尾數(shù)部分,D+3是指數(shù)部分,相當(dāng)于123.45678乘以10的3次方。
345.123456789D–6,相當(dāng)于345.123456789乘以10的–6次方。(3)貨幣類型數(shù)據(jù)(Currency)
貨幣類型數(shù)據(jù)是為表示錢款而設(shè)置的。該類型數(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個二進位)存儲。當(dāng)邏輯值轉(zhuǎn)換為數(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ù)的標(biāo)準(zhǔn)形式有三種:
1.#月/日/年#
這種形式用來表示日期。例如:#2/18/2003#
2.#時:分:秒AM∣PM#
這種形式用來表示時間。AM表示上午,PM表示下午。例如:#10:08:20AM#
3.#月/日/年時:分:秒AM∣PM#
這種形式用來表示日期和時間。例如:#2/18/200310:08:20AM#
當(dāng)數(shù)值型數(shù)據(jù)要轉(zhuǎn)換為日期型數(shù)據(jù)時,小數(shù)點左邊的值表示日期信息,即從1899年12月31日開始所經(jīng)過的天數(shù)。而小數(shù)點右邊的值則表示時間,以毫秒為單位。午夜為0,中午為0.5。負(fù)整數(shù)表示1899年12月31日之前的日期和時間。
不同類型的數(shù)據(jù)既可以表示為常量形式,也可以表示為變量形式。常量的值在程序執(zhí)行期間是不會發(fā)生變化的。變量代表內(nèi)存中指定的存儲單元。變量的存儲單元在程序中可以根據(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將選擇需要內(nèi)存容量最小的表示方法處理。例如,值3.01作為單精度數(shù)處理。
注意:為了顯式地指明數(shù)值型常量的類型,可以在常量后面加上類型說明符,這些說明符分別為:
%
整型
&
長整型
!
單精度浮點型#
雙精度浮點型
@
貨幣型$
字符串型例如:3.01#
雙精度浮點型常數(shù)
100.05@
貨幣型常數(shù)
在程序中的一些多次出現(xiàn)或難于記憶的常數(shù)值,可以用標(biāo)識符來定義,即用標(biāo)識符給常量取名。這樣定義的常量名稱稱為符號常量。用標(biāo)識符定義常量后,凡是在程序中出現(xiàn)該常量的地方都可以使用相應(yīng)的標(biāo)識符代替。2.符號常量符號常量說明語句的一般格式:
Const<constantname>[As<type>]=<expression>
其中:<constantname>
為常數(shù)的名稱,用標(biāo)識符表示。
As<type>
是可選項,用以說明常數(shù)的數(shù)據(jù)類型。<type>可以是:Byte,Boolean,Integer,Long,Currency,Single,Double,Date,String或Variant等。
<expression>是必選項,可以為文字常數(shù),也可以是包含除Is之外任意的算術(shù)操作符和邏輯操作符所構(gòu)成的表達式。
(1)說明符號常量的類型時,可以在常量名后加上類型說明符。例如:Constone&=1。(2)在程序中引用符號常量時,通常省略類型說明符。(3)類型說明符不是符號常量的組成部分。例如,假設(shè)說明了:Constnum=56,則num!,num#,num%,num&,num@就不能再作變量名了。
(4)經(jīng)過說明的符號常量只是常數(shù)值的名字,不能在程序代碼中修改它的值。
注意:
(5)Const語句可以放在程序的不同位置。該語句出現(xiàn)的位置不同,有效范圍也不同。如果符號常量說明語句在過程內(nèi)部,符號常量只能在該過程內(nèi)有效。如果符號常量說明語句出現(xiàn)在窗體代碼的聲明部分中,則窗體以及窗體中各控件的事件驅(qū)動程序都能夠引用這些被聲明的符號常量。
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)對程序中的每一個變量都分配有相應(yīng)存儲單元。存儲單元中存放的數(shù)據(jù)就是變量的值,它的類型就是變量的類型。在程序中,若要引用變量的值必須使用變量名。變量的名字用標(biāo)識符表示。
2.3.2變量(1)變量說明語句變量說明語句一般形式:
Dim<variablename>[As<type>]其中:Dim
是用于說明變量的關(guān)鍵字
<variablename>
是用戶定義的標(biāo)識符
<type>
可以是各種標(biāo)準(zhǔn)類型名稱或用戶自義類型標(biāo)識符。缺省As子句時,被說明的變量為可變類型。例如:Dimvar1AsInteger DimtotalAsDouble
1.變量的說明
用Dim語句定義的變量的作用范圍與語句的位置有關(guān)。如果Dim語句出現(xiàn)在窗體代碼的聲明部分,則窗體以及窗體中各控件的事件驅(qū)動程序都能夠使用這些變量。
在過程內(nèi)部用Dim語句說明的變量,只有在該過程執(zhí)行時才存在。過程執(zhí)行結(jié)束后,系統(tǒng)會把相應(yī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則輸出結(jié)果為數(shù)值1。若一個隱式說明的變量直接參與字符串運算時,作空串處理。變量的隱式說明可以省略了說明語句,看起來很方便,但往往會導(dǎo)致一些難以查找的錯誤。
例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
在變量說明語句中,使用關(guān)鍵字Variant定義類型或僅定義變量而不作類型聲明(缺省類型說明As子句或變量名不帶類型符),則該變量稱為可變類型變量。例如:DimsomevalueAsVariant Dimsomevalue
2.可變類型變量在可變類型變量中可以存放任何類型的數(shù)據(jù),包括數(shù)值、字符串、日期和時間。變量的類型將隨著存放數(shù)據(jù)的變化而變化,VB自動完成各種必要的轉(zhuǎn)換。
例如:
somevalue=“100” somevalue=somevalue–10somevalue=“ABC”+Str(somevalue)
使用可變類型變量存在兩個隱患:進行算術(shù)運算時的隱患和進行“+”連接運算時的隱患。避免這兩個隱患可以采取如下兩個措施:(1)對可變類型變量進行算術(shù)運算時,必須確保變量中存放的是某種形式的數(shù)值;例如:Dimvalue value=“3e+2” value=value–10
若改為:value=“123e+x”則會產(chǎn)生錯誤。
(2)進行連接運算時,盡量使用運算符“&”。
Variant類型有兩個特殊常量:
(1)Empty
當(dāng)可變類型變量沒有賦值前,它的值為Empty。進行算術(shù)運算時,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在變量說明語句中使用關(guān)鍵字Static說明的變量稱為靜態(tài)變量。程序模塊運行結(jié)束后,VB不收回靜態(tài)變量所占的存儲單元,并且保留它們的值。再次調(diào)用該程序模塊時,也不會刷新靜態(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ù)等。由運算量、運算符和圓括號構(gòu)成的式子稱為表達式。表達式有多種類型:數(shù)值表達式、字符串表達式、關(guān)系表達式、邏輯表達式等。2.4運算符與表達式算術(shù)運算符是用來對數(shù)值型數(shù)據(jù)進行運算的一種符號。
+、–、*、/(實數(shù)除)、\(整數(shù)除)、Mod、^(指數(shù)運算)
除“–”可作取負(fù)運算,只需要一個操作數(shù)外,其余運算符均要求有兩個操作數(shù)。運算符左邊的操作數(shù)稱為左操作數(shù),運算符右邊的操作數(shù)稱為右操作數(shù)。2.4.1算術(shù)運算符與數(shù)值表達式
算術(shù)運算的一般形式為:
aOpb
或OPb其中Op表示運算符,a是左操作數(shù),b是右操作數(shù)。例如:100*45-50
a和b也可以是一個表達式。例如:23/5+1.2
由數(shù)值型數(shù)據(jù)、算術(shù)運算符和圓括號構(gòu)成的表達式稱為數(shù)值表達式。其運算結(jié)果為數(shù)值型數(shù)據(jù)。例如:a*b^2+b/(58+r/sin(x-y))
特殊情況:單個數(shù)值型常量或變量或函數(shù)也是數(shù)值表達式。例如:0.5,Pi,a,sin(x)若左操作數(shù)a為負(fù)實數(shù),則右操作數(shù)b必須是整數(shù)。指數(shù)運算用來計算乘方和方根,其運算符為“^”。指數(shù)運算的一般形式為:
a^b
若左操作數(shù)a為正實數(shù),則右操作數(shù)b可為任意數(shù)值。當(dāng)b不是整數(shù)時,設(shè)b=n/m,其中m,n均為整數(shù),則VB按下式計算:1.指數(shù)運算例如:
10^2
計算10的平方,結(jié)果為100
10^–2
計算10的平方的倒數(shù),即1/100,結(jié)果為0.01
25^0.5
計算25的平方根,結(jié)果為5
8^(1/3)
計算8的立方根,結(jié)果為2
8^(–1/3)
計算8的立方根的倒數(shù),結(jié)果為0.5
(–8)^(1/3)
錯誤!浮點數(shù)除法的運算符是“/”。左右操作數(shù)可以為整數(shù)或者浮點數(shù),運算結(jié)果的類型由其值決定。例如:3/2
結(jié)果為1.5,浮點型
3.6/1.8
結(jié)果為2,整型整數(shù)除法的運算符是“\”。左右操作數(shù)一般為整型數(shù)。當(dāng)操作數(shù)帶有小數(shù)點時,VB首先對其四舍五入為整數(shù),然后進行整除運算。運算結(jié)果截取其整數(shù)部分,小數(shù)部分不作舍入處理。例如:10\4
結(jié)果為2
20\2.6
結(jié)果為6
25.63\6.78
結(jié)果為32.浮點數(shù)除法與整數(shù)除法
取模運算的運算符為Mod,專門用于求兩個數(shù)相除的余數(shù)。如果左右操作數(shù)為實數(shù),則先對其進行四舍五入取整,然后求兩個整數(shù)相除的余數(shù)。運算結(jié)果的符號取決于左操作數(shù)的符號。即左操作數(shù)為正數(shù),運算結(jié)果為正數(shù);左操作數(shù)為負(fù)數(shù)時,運算結(jié)果為負(fù)數(shù)。例如:10Mod4
結(jié)果等于2
20Mod2.6
結(jié)果等于2
25.63Mod6.78
結(jié)果等于5
–5Mod2
結(jié)果等于–1
–5Mod–2
結(jié)果等于–1
5Mod–2
結(jié)果等于13.取模運算算術(shù)運算符的優(yōu)先級如下:
^-→–(求負(fù))-→*、/-→\-→
Mod-→+、–
當(dāng)一個數(shù)值表達式中含有多種算術(shù)運算符時,必須按照以上順序求值。同級運算符從左到右運算。如果表達式中含有括號,則先進行括號內(nèi)運算。括號內(nèi)有括號時,從內(nèi)到外逐層運算。例如:3+2*717
10*-5-50
(3+2)*735
1+((2+3)*2)*2214.算術(shù)運算符的優(yōu)先級注意:
(1)表達式中的字符要在同一行書寫。
(2)乘號“*”不能省略,也不能用“.”代替。
(3)分子分毋有運算時要加圓括號。
(4)表達式中的方括號和花括號用圓括號代替。
字符串連接運算符為:+或&。左右操作數(shù)都為字符串。運算結(jié)果是把兩個字符串連接起來。例如:“Visual”+“Basic”=“VisualBasic”
由字符串常量、字符串變量、連接運算符和圓括號構(gòu)成的式子稱為字符串表達式。例如:A$+“Basic”&“VisualBasic”
字符串表達式的運算結(jié)果為字符串。
特殊情況:單個字符串型常量或變量或函數(shù)也是字符串表達式。例如:“Basic”、A$、Right(“VisualBasic”,5)
2.4.2字符串連接關(guān)系運算符用來比較兩個操作數(shù)的大小。關(guān)系運算符有:=、<>或><、>、<、>=、<=
用關(guān)系運算符把兩個操作數(shù)連接起來的式子稱為關(guān)系表達式。例如:5>3
a=b
x>=y+1
1.關(guān)系運算符2.4.3關(guān)系運算與邏輯運算關(guān)系表達式的運算結(jié)果為邏輯值。若關(guān)系運算符兩邊滿足關(guān)系運算符的含義,則運算結(jié)果為Ture(參與算術(shù)運算時為-1);否則,運算結(jié)果為False(參與算術(shù)運算時為0)。例如:5>3
值為Ture
Print(5>3)+1
輸出0
說明:
(1)字符串?dāng)?shù)據(jù)按ASCII碼和字典順序?qū)Ω髯址鹨贿M行比較。例如:“china”>“canada”“china”=“china”
“you”<“your”
“廣東”<“廣西”
(2)關(guān)系運算符的左右操作數(shù)一般要求類型相同。當(dāng)類型不同時,VB會按形式值進行轉(zhuǎn)換后再比較。例如:156=“156”
結(jié)果為True
327=“abc”
出現(xiàn)類型不匹配的錯誤(3)應(yīng)避免直接判斷兩個浮點數(shù)是否相等而改成對誤差的判別。
例如:Abs(num1–num2)<1E–6(4)判斷x是否在區(qū)間[a,b]時,不能寫成a<=x<=b而應(yīng)寫成: a<=xAndx<=b
邏輯運算符有:Not(邏輯非)And(邏輯與)
Or(邏輯或)Xor(異或)
Eqv(等價)Imp(蘊含)
2.邏輯運算符(2)And(邏輯與)邏輯與運算需要兩個操作數(shù),當(dāng)左右操作數(shù)的值同時為True時,運算結(jié)果才為True;否則,為False。
例如:5>3And8>5
結(jié)果為True
5>3And8<5
結(jié)果為False(1)Not(邏輯非)
邏輯非只有一個右操作數(shù)。它是一種取反運算。當(dāng)右操作數(shù)為True時,運算結(jié)果為False。當(dāng)右操作數(shù)為False時,運算結(jié)果為True。
例如:Not5<3
結(jié)果為True
Not5>3
結(jié)果為False(4)Xor(異或)異或運算也需要兩個操作數(shù),當(dāng)左右操作數(shù)一樣時,運算結(jié)果為False;否則,為True。
例如:5>3Xor8>5
結(jié)果為False
5>3Xor8<5
結(jié)果為True(3)Or(邏輯或)
邏輯或也需要兩個操作數(shù),當(dāng)左右兩個操作數(shù)中有一個或同時為True時,運算結(jié)果為True,只有左右兩個操作數(shù)同時為False時才為False。
例如:5>3Or8<5
結(jié)果為True
5<3Or8<5
結(jié)果為False(6)Imp(蘊含)
蘊含運算也需要兩個操作數(shù),當(dāng)左操作數(shù)為True,右操作數(shù)為False時,運算結(jié)果為False,其它三種情況均為True。
例如:5>3Imp8>5
結(jié)果為True
5>3Imp8<5
結(jié)果為False(5)Eqv(等價)
等價運算也需要兩個操作數(shù),當(dāng)左右兩個操作數(shù)一樣時,運算結(jié)果為True;否則,為False。
例如:5>3Eqv8>5
結(jié)果為True
5>3Eqv8<5
結(jié)果為False
Not→And→Or→Xor→Eqv→Imp
由邏輯運算量、關(guān)系表達式、邏輯運算符和圓括號構(gòu)成的式子稱為邏輯表達式。例如:(x<0)Or(Not(i<>0)Andb)3.優(yōu)先級函數(shù)運算→算術(shù)運算→關(guān)系運算→邏輯運算
例如: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①②③④⑤⑥
又如,設(shè)i=1,j=0,x=2,y=2,寫出下列布爾表達式的運算順序和運算結(jié)果。
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
內(nèi)部函數(shù)可以分為5類:轉(zhuǎn)換函數(shù)、數(shù)學(xué)函數(shù)、字符串函數(shù)、時間/日期函數(shù)和隨機函數(shù)。這些函數(shù)都帶有一個或幾個自變量,這些自變量也稱為“參數(shù)”。內(nèi)部函數(shù)的功能就是對這些參數(shù)進行某種運算,返回一個值。這個值稱為函數(shù)值。要使用內(nèi)部函數(shù)必須要調(diào)用它。調(diào)用內(nèi)部函數(shù)的一般格式為:
<函數(shù)名>([<參數(shù)表>])其中參數(shù)表中的參數(shù)可以是一個參數(shù),也可以是多個參數(shù),多個參數(shù)時要用逗號分隔。這些參數(shù)可以為常量、變量、函數(shù)、更一般為表達式。2.5常用內(nèi)部函數(shù)2.5.1
命令行的解釋執(zhí)行方式
2.5.2
轉(zhuǎn)換函數(shù)
2.5.3
數(shù)學(xué)函數(shù)
2.5.4
字符串函數(shù)
2.5.5
隨機函數(shù)解釋方式有兩種使用方法:使用啟動按鈕來解釋執(zhí)行程序和在立即窗口直接解釋執(zhí)行語句。在立即窗口直接解釋執(zhí)行語句的操作為:
①從菜單欄的“視圖”菜單項中選擇“立即窗口”菜單命令執(zhí)行。
②輸入語句和按回車鍵。
2.5.1命令行的解釋執(zhí)行方式轉(zhuǎn)換函數(shù)用于數(shù)據(jù)類型或形式的轉(zhuǎn)換,包括整型、浮點型、字符串型之間以及與ASCII碼字符之間的轉(zhuǎn)換。2.5.2轉(zhuǎn)換函數(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的值轉(zhuǎn)換為相應(yīng)的字符。其中表達式n的值是一個的合法ASCII碼值。例如:
MyChar1=Chr(65) '返回“A”MyChar2=Chr(97) '返回“a”MyChar3=Chr(62) '返回“>”
MyChar4=Chr(37) '返回“%”
PrintMyChar1,MyChar2,MyChar3,MyChar4
Aa>%2.類型轉(zhuǎn)換函數(shù)
Val(s)
返回字符串表達式s中所含的數(shù)值。若遇到字母(指數(shù)符號除外)則停止轉(zhuǎn)換。例如:
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的值字符串形式。當(dāng)n轉(zhuǎn)換成字符串時,字符串的第一個位一定是空格或是負(fù)號。例如:
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ù)部分四舍五入轉(zhuǎn)換成整數(shù)。當(dāng)小數(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的值轉(zhuǎn)換為貨幣類型值,小數(shù)部分最多保留4位且自動四舍五入。例如:
MyDouble=543.214588'MyDouble為Double型
MyCurr1=CCur(MyDouble) '轉(zhuǎn)換為Currency型
MyCurr2=CCur(MyDouble*2)'轉(zhuǎn)換為Currency型
PrintMyCurr1,MyCurr2
534.21461086.4292
CDbl(x)把x的值轉(zhuǎn)換為雙精度數(shù)。例如:
MyCurr=CCur(234.456784)'MyCurr為Currency型
MyDouble=CDbl(MyCurr*8.2*0.01)‘結(jié)果為Double型
PrintMyDouble
19.2254576
CLng(x)
把數(shù)值表達式x的值的小數(shù)部分四舍五入轉(zhuǎn)換為長整數(shù)。例如:
MyVal1=25427.45MyVal2=25427.55 'MyVal1,MyVal2均為Double型
MyLong1=CLng(MyVal1)'把MyVal1轉(zhuǎn)換為長整數(shù)
MyLong2=CLng(MyVal2)'把MyVal2轉(zhuǎn)換為長整數(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的值轉(zhuǎn)換為可變類型值。
例如:
MyInt=4534 'MyInt為Integer型
MyVar=CVar(MyInt&"000")PrintMyVar
4534000
(輸出結(jié)果為字符串)
Sin(x)
返回自變量x的正弦值
Cos(x)
返回自變量x的余弦值
Tan(x)
返回自變量x的正切值
Atn(x)
返回自變量x的反正切值其中參數(shù)x是數(shù)值表達式,Sin,Cos和Tan函數(shù)的自變量是為弧度,而Atn函數(shù)的自變量是正切值,返回值為弧度。若自變量以角度給出,則可以使用下面公式轉(zhuǎn)換為弧度:
1度=π/180
弧度1.三角函數(shù)2.5.3數(shù)學(xué)函數(shù)
Abs(x)
返回數(shù)值表達式x的值的絕對值。例如:
MyNumber1=Abs(50.3)MyNumber2=Abs(–50.3)PrintMyNumber1,MyNumber2
50.350.32.絕對值函數(shù)
Sgn(x)
返回數(shù)值表達式x的符號。當(dāng)x的值<0時,函數(shù)返回–1;當(dāng)x的值=0時,函數(shù)返回0;當(dāng)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)‘錯誤!負(fù)數(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="華南理工大學(xué)"
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)系上傳者。文件的所有權(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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025苗木購銷合同樣本
- 2025年度公司簽約帶貨主播短視頻內(nèi)容制作合同3篇
- 二零二五年度勞動合同集合與員工績效評估合同3篇
- 二零二五年度公益性崗位勞動合同(老年人日間照料)3篇
- 2025年度農(nóng)村個人房屋買賣合同附農(nóng)村集體資產(chǎn)收益權(quán)轉(zhuǎn)讓合同3篇
- 二零二五年度農(nóng)村房屋互換與環(huán)保節(jié)能協(xié)議2篇
- 2025年度農(nóng)業(yè)勞務(wù)用工合同模板(含農(nóng)業(yè)廢棄物資源化利用技術(shù))3篇
- 新能源汽車研發(fā)價格保密協(xié)議書(2025年度)3篇
- 二零二五年度新能源出租車運營合作協(xié)議3篇
- 2025年度智能家電產(chǎn)品供貨協(xié)議書3篇
- 遼寧省大連市甘井子區(qū)2023-2024學(xué)年五年級上學(xué)期期末英語試卷
- (完整版)年產(chǎn)30萬噸甲醇工藝設(shè)計畢業(yè)設(shè)計
- 外研版五年級上冊(三起)連詞成句專項訓(xùn)練
- 養(yǎng)老機構(gòu)風(fēng)險管控清單
- 辦公室消防管理制度
- 動火作業(yè)審批表
- 過敏性紫癜課件PPT
- 浙江省紹興市諸暨市2023-2024學(xué)年數(shù)學(xué)三上期末達標(biāo)檢測試題含答案
- 腳手架質(zhì)量驗收標(biāo)準(zhǔn)
- 小學(xué)思政課《愛國主義教育》
- 中藥材的性狀及真?zhèn)舞b別培訓(xùn)-課件
評論
0/150
提交評論