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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基本數據類型與表達式第1頁,共134頁,2023年,2月20日,星期四

一個語句是由單詞和表達式構成,而單詞和表達式是由一個一個字符組成。

字符、詞匯、表達式、語句、過程、函數等統(tǒng)稱為“語法單位”。語法單位的形成是按一定規(guī)則的,語法單位的形成規(guī)則稱為“語法規(guī)則”。2.1基本字符集與詞匯表第2頁,共134頁,2023年,2月20日,星期四

字符是構成程序設計語言的最小語法單位。每一種程序設計語言都有自己的字符集。程序設計語言中的合法句子都是由字符集中的字符構成。

數字:0123456789

英文字母:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

特殊符號:Space!"#$%&'()*+,–./:;<=>?@[\]^_{|}~

2.1.1字符集第3頁,共134頁,2023年,2月20日,星期四對于VB.NET漢化版,漢字也作為一種字符,它們既可以有語法意義,也可以作為字符顯示或打印出來。在程序代碼窗口中輸入程序時,漢字在中文方式下輸入,其它字符必須在英文方式下輸入。例如,輸入語句

WriteLine(″圓面積={0:f}″,PI*r*r)′計算輸出圓面積第4頁,共134頁,2023年,2月20日,星期四

“單詞”是程序設計語言中具有獨立意義的最基本結構。

一條語句由多個單詞組成。

例如,有以下語句:DimrAsDoubleDimareaAsDoubler=12.6area=3.14*r*r其中,Dim、As、Double、r、area、=、*、3.14等都是構成代碼的單詞。

程序設計語言中,單詞一般包括:運算符、界符、關鍵字、標識符、各類型常數等。2.1.2詞匯第5頁,共134頁,2023年,2月20日,星期四關鍵字又稱為保留字,它們在語法上有著固定的含義,往往在語句中表示系統(tǒng)提供的語義符、標準類型、標準函數名、運算符等。1.關鍵字在VB.NET中,約定關鍵字的首寫字母為大寫字母;

當用戶在代碼編輯窗口輸入關鍵字時,不論大小寫字母,系統(tǒng)同樣能夠識別,并且自動轉換成系統(tǒng)標準形式。

常用的關鍵字:AndAsBooleanByRefByteByValCallCaseCharClassConstContinue…第6頁,共134頁,2023年,2月20日,星期四

2.特殊字符

VB.NET的關鍵字中有一些特殊字符,它們不是字母或數字,不指定要執(zhí)行的操作,但各有用途。(1)括號

括號可以用于改變復雜表示式中運算符的默認優(yōu)先順序。

例如:Dima,b,c,d,eAsDoublea=3.2b=7.6c=2d=b+c/ae=(b+c)/a '改變運算優(yōu)先順序在定義過程(如Sub或Function)時,必須將所有過程參數列表放入括號內。第7頁,共134頁,2023年,2月20日,星期四

(2)分隔符空格符是常用的單詞分隔符。

例如,語句:DimrAsDouble包含4個單詞,其中空格符是這些單詞的分隔符。

表達式:0.125*23

包含3個單詞:0.125,*和23,它們中間沒有空格,因為運算符和數據是性質不同的單詞,所以運算符“*”分隔了兩個常數。冒號”:”是語句分隔符。

當程序將多條語句放在同一行時,可以使用冒號分隔,這樣可以節(jié)省空間,并增強代碼的可讀性。下面的代碼中用冒號隔開了3個語句。

a=3.2:b=7.6:c=2第8頁,共134頁,2023年,2月20日,星期四(3)其他符號“&”是字符串連接符,“.”是成員訪問符第9頁,共134頁,2023年,2月20日,星期四3.標識符標識符用于標記用戶自定義的常量、類型、變量、控件、過程、函數等名稱。

在VB.NET中,標識符的命名必須遵循如下規(guī)則:必須以字母開頭,由字母、數字和下劃線組成。

不能與關鍵字同名。另外,漢化的VB.NET版本允許使用漢字作為用戶自定義標識符。

例如:合法變量名:ax1n0_1a2cnamemyform姓名

班級不合法變量名:

2ax+ya,bWrite標識符命名除了符合上述原則外,應該盡可能做到“見名知義”,提高程序的可讀性。

例如:年齡用“age”、名字用“name”、總和用“sum”命名等。第10頁,共134頁,2023年,2月20日,星期四2.2基本數據類型“數據”是程序的處理對象。數據有不同的類型,不同類型的數據有不同的取值范圍和不同的操作方式。從數據構造上來分類,數據類型分為系統(tǒng)定義的基本數據類型和構造類型。

構造類型是用戶根據需要定義,由相同或不同的基本數據元素組合而成的數據類型。從數據的存儲方式上來分類,數據類型又分為值類型和引用類型。值類型包括數值(如Integer、Double)、Boolean、Char、Date、結構、枚舉等類型,引用類型包括字符串、數組、類、接口等。值類型數據變量存放數據值,程序對存儲單元操作就是直接操作數據;而引用類型數據變量存放對象的地址,程序通過地址訪問數據。在VB.NET中,引用類型通常稱為類。第11頁,共134頁,2023年,2月20日,星期四類型關鍵字存儲字節(jié)取值范圍有符號整型Integer4-2147483648~2147483647有符號長整型Long8-9223372036854775808~9223372036854775807單精度浮點型Single4負數:-3.4028235E+38~-1.401298E-45正數:1.401298E-45~3.4028235E+38雙精度浮點型Double8負數:-1.79769313486231570E+308~-4.94065645841246544E-324正數:4.94065645841246544E-324~1.79769313486231570E+308小數型Decimal16有效數字28位無小數點:+/-79228162514264337593543950335有小數點:+/-7.9228162514264337593543950335最小非零數:+/-0.0000000000000000000000000001單字符Char20~65535變長字符串String取決于平臺0~約20億個Unicode字符邏輯型Booleam2True或False日期型Date80001年1月1日0:00:00~9999年12月31日23:59:59對象型Object4保存引用對象的地址第12頁,共134頁,2023年,2月20日,星期四

整型數是不帶小數點和指數符號的數據。十進制整型數由0~9的數字序列組成,可以帶正號或負號。

例如:147588565200-314532700整型數按示數范圍的不同分為有符號整型、長整型、短整型和無符號整型。

2.2.1數值型1.整型第13頁,共134頁,2023年,2月20日,星期四

(1)“有符號”整型有符號整型包括:SByte(8位)、Short(16位)、Integer(32位)及Long(64位)。

這些類型的數據可以表示正整數或負整數。不同類型的數據其存儲長度不同,故其示數范圍也不同。

第14頁,共134頁,2023年,2月20日,星期四

(2)長整型如果需要存儲的整數比Integer的示數范圍更大,可以用長整型(Long)來表示數據。

其示數范圍從–9223372036854775808~9223372036854775807。

如果需要表示更大范圍內的數值,可以使用Decimal數據類型。

如果不使用小數位數,可以表示的數據范圍是-79228162514264337593543950335~79228162514264337593543950335第15頁,共134頁,2023年,2月20日,星期四(3)短整型如果使用的整型數據示數范圍比較小,則可以使用Short數據類型,它包含-32768~32767內的整數。

而SByte數據類型包含-128~127的最小整數范圍。

第16頁,共134頁,2023年,2月20日,星期四(4)無符號整型無符號整型表示正整數,包括Byte、UShort、UInteger和ULong。

這些數據類型所能存儲的正整數是相應的有符號類型(SByte、Short、Integer和Long)的兩倍。

第17頁,共134頁,2023年,2月20日,星期四

整數一般用十進制形式表示,還可以用八進制和十六進制方式表示。八進制整數由八進制數字0~7的序列組成,前面冠以&O。

例如:

&O347 3×82+4×81×7×80=231&O1277 1×83+2×82+2×81×7×80=703-&O264 -(2×82+6×81×4×80)

=-180十六進制整數冠以&H,由十六進制數字0~9、A~F(或a~f)序列組成。

例如:&H76 7×161+6×160=118&H32f 3×162+2×161+15×160=815-&ha4e-(10×162+4×161+14×160)

=-2638十六進制數一般用來表示或設置屏幕和控件的顏色。第18頁,共134頁,2023年,2月20日,星期四實型數是帶有小數部分的數,分為浮點數和定點數兩類。

定點數是實數的常用表示方式,由整數、小數點和小數3部分組成。

浮點數由符號、指數及尾數三部分組成。指數符號用字母“E”(或“e”)表示。

例如:123.45E3123.45是尾數部分,E3是指數部分,等于123.45×103-0.674523E5 等于-0.674523×105345.123456789E-6等于345.123456789×10-6VB.NET的實數類型有Single(32位浮點)、Double(64位浮點)和Decimal(128位定點)。它們都是有符號數據類型。2.實型第19頁,共134頁,2023年,2月20日,星期四

(1)單精度浮點型Single類型,可以表示-3.4028235E+38~3.4028235E+38的浮點數。

最小負值為-1.401

298E-45

最小正值為1.401298E-45

單精度浮點數適用于表示小浮點數。第20頁,共134頁,2023年,2月20日,星期四(2)雙精度浮點數Double是實數類型中效率最高的,因為目前各平臺的處理器都是以雙精度來進行浮點運算。Double類型負數取值范圍是-1.797693134862316E+308~-4.94065645841247E-324

正數的取值范圍為4.94065645841247E-324~1.797693134862316E+308第21頁,共134頁,2023年,2月20日,星期四(3)定點實型Decimal類型可以表示有效數字為28位的整數或實數,它的優(yōu)點是能夠表示高精度的數據。

若表示實數,可以精確到小數點后28位。

Decimal的示數范圍:

最大正值為7.9228162514264337593543950335E+28

最小非零數為+/-.0000000000000000000000000001第22頁,共134頁,2023年,2月20日,星期四2.2.2字符類型

字符數據類型用于處理可打印和可顯示的用Unicode碼編碼字符。VB.NET的字符數據類型包括Char類型和String類型。1.Char型

Char類型數據存儲單個雙字節(jié)(16位)Unicode字符。

例如:DimchrOneCharAsChar=″A″

′單個字符2.String類型

String類型可以存儲含有任意數量的字符的字符串,它是零個或多個Unicode字符的序列。

一個字符串可包含從0到將近20億(231)個字符。長度為0(即不含任何字符的字符串)稱為空字符串。

第23頁,共134頁,2023年,2月20日,星期四例如:

"Hello""Wearestudents.""中華人民共和國""2+3=?""2000""#####""¥25,000.00"""(空字符串)又如:DimstrMyNameAsString=“陳志華″'字符串第24頁,共134頁,2023年,2月20日,星期四2.2.3其他數據類型數據類型還包括邏輯型(Boolean)、日期型(Date)和對象型(Object)3種數據類型。1.邏輯型邏輯型數據用于判斷計算結果是否成立。邏輯型數據只有兩個可能值:True(邏輯真)或者False(邏輯假),以2

B(16

b)存儲。

當邏輯值參與算術運算時,False轉換為0,True轉換為-1。

2.日期型日期型數據存儲為8

B(64

b)浮點數值形式,可以表示的日期范圍從100年1月1日到9999年12月31日,時間可從0:00:00到23:59:59。第25頁,共134頁,2023年,2月20日,星期四日期型數據的表示形式主要有如下3種。(1)日期數據形式#月/日/年#例如:#10/1/2012# '表示2012年10月1日(2)時間數據形式#時:分:秒AM∣PM#其中AM表示上午,PM表示下午。

例如:#10:08:20AM# '表示上午10點8分20秒(3)日期/時間數據形式#月/日/年時:分:秒AM∣PM#例如:#10/1/201210:08:20AM#‘表示2012年10月1日上午10點8分20秒第26頁,共134頁,2023年,2月20日,星期四

例2-1輸出日期數據。輸出:2012-10-112:14:00ImportsSystem.ConsoleModuleModule1SubMain()DimdateAndTimeAsDate=#10/1/201212:14:00PM#WriteLine(dateAndTime)EndSubEndModule第27頁,共134頁,2023年,2月20日,星期四

不同類型的數據既可以表示為常量形式,也可以表示為變量形式。常量的值在程序執(zhí)行期間是不會發(fā)生變化的。變量代表內存中指定的存儲單元。變量的存儲單元在程序中可以根據需要賦予不同的值,即變量的值是可以變化的。

2.3常量與變量第28頁,共134頁,2023年,2月20日,星期四2.3.1常量VB.NET的常量分兩種,一種是直接常量(簡稱常量或常數),另一種是符號常量。常量的類型和值由它本身的書寫形式決定。例如:

″Thisisastring″

'表示一個字符串常量,長度為1612598 '表示一個十進制整數VB.NET常量的數據類型,有時存在多義性。

例如,數值3.01可能是單精度類型,也可能是雙精度類型或貨幣類型。

在默認的情況下,VB.NET將選擇需要內存容量最小的表示方法進行處理。

因此,數值3.01被處理為單精度數。1.直接常量第29頁,共134頁,2023年,2月20日,星期四為了顯式地指明常數的類型,可在常數后面加上類型說明符。這些說明符是:% 表示整型& 表示長整型! 表示單精度浮點型# 表示雙精度浮點型$ 表示字符串型

例如:10005% '是一個整型常數3.01# '是一個雙精度浮點型常數類型說明符也可以用在標識常量和變量說明語句中。第30頁,共134頁,2023年,2月20日,星期四

在程序中的一些多次出現或難于記憶的常數值,可以用標識符來定義,即用標識符給常量取名。這樣定義的常量名稱為符號常量。用標識符定義常量后,凡是在程序中出現該常量的地方都可以使用相應的標識符代替。2.符號常量第31頁,共134頁,2023年,2月20日,星期四常量說明的一般格式:Const<標識符>[As<類型>]=<表達式>其中,<標識符>是標識常量的名稱,用戶定義標識符。As<類型>用以說明常量的數據類型。

當缺省As子句時,被說明標識符類型根據<表達式>的值確定最合適的數據類型。<表達式>是必需的,可以為常量,或包含除Is之外由任意算術操作符和邏輯操作符所構成的表達式。注意:

語句格式中用到的符號約定<>必選項,表示必須提供特定內容,以滿足尖括號內的項的要求;[]表示方括號內的項是可選項,可以設定,也可以省略;

表示前后內容為或選項。第32頁,共134頁,2023年,2月20日,星期四經過說明的符號常量看作是常數值的名字,不能在程序代碼中修改它的值。在一行代碼中說明多個常量時使用逗號分隔。例如,可以有以下常量說明:ConstMax=1000ConstInquire="Hello,"+"Myfriend!"ConstMyStr="HELP",PiAsDouble=3.14159說明符號常量時,可在常量名后加上類型說明符。

例如:

Constone&=1Consttwo#=2前者說明one&為長整型常數,需占用8

B;后者說明two#為雙精度浮點型常數,需占用8

B。第33頁,共134頁,2023年,2月20日,星期四在程序中引用符號常量時,通常省略類型說明符。

例如:在上述說明后,可以使用one、two代替符號常量one&和two#。類型說明符并不是符號常量的組成部分。

例如:若有如下常量定義:Constnum=56則num!、num#、num%、num&、num@就不能再做符號常量或變量名了。第34頁,共134頁,2023年,2月20日,星期四

變量是用來存儲數據的,系統(tǒng)對程序中的每一個變量都分配有相應存儲單元。

存儲單元中存放的數據就是變量的值,它的類型就是變量的類型。在程序中,若要引用變量的值必須使用變量名。變量的名字用標識符表示。

2.3.2變量第35頁,共134頁,2023年,2月20日,星期四

一個變量必定屬于某種數據類型,包括基本數據類型和用戶自定義類型。

在程序中使用變量之前,必須使用變量說明語句對該變量進行說明。變量說明語句的一般形式:Dim<變量名>[As<類型>]其中,Dim是VB.NET用于說明變量的關鍵字。

<變量名>是用戶定義的標識符,應當遵循標識符命名規(guī)則。<類型>表示VB.NET提供的各種標準類型名稱或用戶自定義類型標識符。作用:通知VB.NET編譯器分配存儲單元給該變量存儲。1.變量的說明第36頁,共134頁,2023年,2月20日,星期四

例如:Dimvar1AsIntege '把var1定義為整型變量

DimtotalAsDouble '把total定義為雙精度變量變量說明也可以用類型說明符。

例如:上述的說明語句可以寫成:Dimvar1%Dimtotal# 一個Dim語句可以定義多個變量。

例如:Dimvar1AsString,var2AsDouble說明變量的同時可以賦初值。

例如:Dimvar1=215Dimtotal=123.456

第37頁,共134頁,2023年,2月20日,星期四2.變量的訪問變量的訪問分為“讀”和“寫”操作?!皩憽辈僮骺梢允褂觅x值語句,賦值語句的一般形式:

<變量名>=<表達式>其中,關鍵字“=”稱為賦值號。

賦值號左邊的<變量名>表示一個存儲單元,它是數據存放的目的地。

功能:首先計算<表達式>的值,然后把這個值寫入<變量名>代表的存儲單元中。第38頁,共134頁,2023年,2月20日,星期四例如,有語句:DimaAsInteger,bAsIntegera=10b=20a=a+b 第39頁,共134頁,2023年,2月20日,星期四

例2-2以下程序的作用是交換變量a、b的值。ImportsSystem.ConsoleModuleModule1SubMain()DimaAsInteger,bAsInteger,tempAsIntegerWriteLine("輸入:")Write("a=")a=Val(ReadLine())Write("b=")b=Val(ReadLine())temp=a '讀出a的值,寫入temp中a=b '讀出b的值,寫入a中b=temp '讀出temp的值,寫入a中WriteLine("輸出:")WriteLine("a={0:d}",a) WriteLine("b={0:d}",b) EndSubEndModule第40頁,共134頁,2023年,2月20日,星期四3.Object變量數據存放在內存中,必然有一個存放地址。數據對象不管存儲空間大小,都以它所占有的內存第一個字節(jié)的地址作為對象的地址。

對象的地址稱為指針。VB.NET中的Object類型變量不是保存數據值本身,而只保存數據對象的地址。數據對象通過Object變量訪問。當一個Object變量存放了某個數據對象的地址后,稱為引用了某個數據對象。Object類型變量可以引用任何值類型(數值、Boolean、Char、Date、結構或枚舉)的數據,也可以引用引用類型(字符串、數組、類或接口)的數據。

當程序中需要訪問未確定數據類型的對象時,可以使用Object變量。第41頁,共134頁,2023年,2月20日,星期四Object變量的默認值為Nothing(空引用)。

雖然Object變量存放的不是數據值,但是,當程序中Object變量引用值類型的數據時,VB.NET將此變量視為一個值類型變量。第42頁,共134頁,2023年,2月20日,星期四

例2-3Object類型變量的應用。ImportsSystem.ConsoleModuleModule1SubMain()DimobjAsObjectobj=256WriteLine(obj)obj=3.14159WriteLine(obj)obj=#10/1/201212:14:00PM#WriteLine(obj)EndSubEndModule第43頁,共134頁,2023年,2月20日,星期四

在程序中通常要對數據進行加工(運算)。對數據進行什么運算要由運算符來確定。參與運算的數據稱為運算量或操作數。運算量包括常量、變量、函數等。由運算量、運算符和圓括號構成的式子稱為表達式。表達式有多種類型:算術表達式、字符串表達式、關系表達式、邏輯表達式等。2.4表達式第44頁,共134頁,2023年,2月20日,星期四

由數值型數據、算術運算符和圓括號構成的表達式稱為算術表達式。

其運算結果為數值型數據。例如:a*b^2+b/(58+r/sin(x-y))

特殊情況:單個數值型常量或變量或函數也是算術表達式。例如:0.5,Pi,a,sin(x)算術運算符是用來對數值型數據進行運算的一種符號。2.4.1算術表達式第45頁,共134頁,2023年,2月20日,星期四運

符運

算例子^指數x^y*乘法x*y/浮點除法x/y\整數除法x\yMod取模xMody+加法x+y-取負,減法-x,x-y第46頁,共134頁,2023年,2月20日,星期四若左操作數a為負實數,則右操作數b必須是整數。求冪運算用來計算乘方和方根,其運算符為“^”。指數運算的一般形式為:

a^b

若左操作數a為正實數,則右操作數b可為任意數值。當b不是整數時,設b=n/m,其中m,n均為整數,則VB按下式計算:1.求冪運算第47頁,共134頁,2023年,2月20日,星期四

例如:

10^2

計算10的平方,結果為100

10^–2

計算10的平方的倒數,即1/100,結果為0.01

25^0.5

計算25的平方根,結果為5

8^(1/3)

計算8的立方根,結果為2

8^(–1/3)

計算8的立方根的倒數,結果為0.5

(–8)^(1/3)

錯誤!注意:

當指數是一個表達式時,必須加括號。

例如,要表示a的x+y次方:a^(x+y) '正確a^x+y '錯誤第48頁,共134頁,2023年,2月20日,星期四

浮點數除法的運算符是“/”。左右操作數可以為整數或者浮點數,運算結果的類型由其值決定。例如:3/2

結果為1.5,浮點型

3.6/1.8

結果為2,整型整數除法的運算符是“\”。左右操作數一般為整型數。當操作數帶有小數點時,VB首先對其四舍五入為整數,然后進行整除運算。

運算結果截取其整數部分,小數部分不作舍入處理。例如:10\4

結果為2

20\2.6

結果為6

25.63\6.78

結果為32.浮點數除法與整數除法第49頁,共134頁,2023年,2月20日,星期四

取模運算的運算符為Mod,專門用于求兩個數相除的余數。如果左右操作數為實數,則先對其進行四舍五入取整,然后求兩個整數相除的余數。運算結果的符號取決于左操作數的符號。即左操作數為正數,運算結果為正數;左操作數為負數時,運算結果為負數。例如:10Mod4

結果等于2

20Mod2.6

結果等于2

25.63Mod6.78

結果等于5

–5Mod2

結果等于–1

–5Mod–2

結果等于–1

5Mod–2

結果等于1

7Mod0

除數為0,運行錯誤3.取模運算第50頁,共134頁,2023年,2月20日,星期四算術運算符的優(yōu)先級如下:

^→

–(求負)→*、/→

\→

Mod→+、–

當一個算術表達式中含有多種算術運算符時,必須按照以上順序求值。同級運算符從左到右運算。如果表達式中含有括號,則先進行括號內運算。括號內有括號時,從內到外逐層運算。

4.算術運算符的優(yōu)先級第51頁,共134頁,2023年,2月20日,星期四表

式計算結果說

明3+2*717乘法優(yōu)先級高(3+2)*735先計算括號內的表達式10*-5-50單目負優(yōu)先11Mod4/21除法優(yōu)先級高(11Mod4)/21.5先計算括號內的表達式1+((2+3)*2)*221先計算內層括號的表達式14/5*25.6優(yōu)先級相同,從左到右計算15\5*21乘法優(yōu)先級高,整除截取整數部分27^1/39指數優(yōu)先級高27^(1/3)3先計算括號內的表達式第52頁,共134頁,2023年,2月20日,星期四注意:

(1)表達式中的字符要在同一行書寫。例如:a*b^2+b/(58+r/sin(x-y))

(2)乘號“×”用“*”,不能省略,也不能用“.”代替。

例如:x×y應寫為x*y不應寫為xyx·y

(3)分子分毋有運算時要加圓括號。例如:

應寫為(a-b)/(c+d)

(4)表達式中的方括號和花括號用圓括號代替。

不應寫為a-b/c+d第53頁,共134頁,2023年,2月20日,星期四

字符串連接運算符:+或&。左右操作數都為字符串。運算結果是把兩個字符串連接起來。例如:“Visual”+“Basic”=“VisualBasic”

由字符串常量、字符串變量、連接運算符和圓括號構成的式子稱為字符串表達式。例如:A$+“Basic”&“VisualBasic”

字符串表達式的運算結果為字符串。

特殊情況:單個字符串型常量或變量或函數也是字符串表達式。例如:“Basic”、A$、Right(“VisualBasic”,5)

2.4.2字符串表達式第54頁,共134頁,2023年,2月20日,星期四

也稱為關系運算符,用來比較兩個操作數的大小。關系運算符:=、<>或><、>、<、>=、<=

用關系運算符把兩個操作數連接起來的式子稱為關系表達式。例如:

5>3

a=b

x>=y+1

2.4.3邏輯表達式1.比較運算符第55頁,共134頁,2023年,2月20日,星期四

關系表達式的運算結果為邏輯值。

若關系運算符兩邊滿足關系運算符的含義,則運算結果為Ture(參與算術運算時為-1);

否則,運算結果為False(參與算術運算時為0)。例如:5>3

值為Ture

WriteLine((5>3)+1)

輸出0第56頁,共134頁,2023年,2月20日,星期四

說明:

①在VB.NET中,“=”是一個多義符號,在賦值語句中,它是賦值運算符,表示把賦值號右邊表達式的值寫入賦值號左邊的變量中。例如:a=b+c表示把b+c的結果寫入變量a中。

如果用在條件判斷中,

”=”號的意義是關系運算。例如:ifa=b+cThenWriteLine("a={0:g}",a)條件語句中的a=b+c是一個邏輯表達式,該語句判斷變量a的值是否等于b+c的值,如果相等,則以g格式(常規(guī)格式)輸出a的值。因此,應該根據程序的上下文判斷“=”號的意義。第57頁,共134頁,2023年,2月20日,星期四②字符串數據比較是按ASCII碼和以字典順序對各字符逐一進行比較。

例如:

“china”>“canada”“china”=“china”“you”<“your”“廣東”<“廣西”③比較運算符的左右操作數一般要求類型相同。當類型不同時,VB.NET會按形式值進行轉換后再比較。

例如:156="156"'結果為True327="abc"'出現運行錯誤,類型不匹配第58頁,共134頁,2023年,2月20日,星期四④對單精度數或雙精度數進行比較時,因為機器的運算誤差,可能無法得到預期的結果。因此,應當避免直接判斷兩個浮點數是否相等而改成對誤差的判斷。

例如:判別num1是否等于num2用Abs(num1-num2)<1E-6只要num1與num2的差小于一個很小的數(這里是10-6),就認為是相等了。⑤數學上判斷x是否在區(qū)間[a,b]時,習慣上寫成a≤x≤b,但在VB.NET中不能寫成:A<=x<=b

應寫成:a<=xAndx<=b其中And是邏輯與運算符。第59頁,共134頁,2023年,2月20日,星期四

邏輯運算符:Not(邏輯非)And(邏輯與)Or(邏輯或)Xor(異或)

2.邏輯運算符邏輯運算符的左、右兩個操作數要求為邏輯值。

第60頁,共134頁,2023年,2月20日,星期四(2)And(邏輯與)邏輯與運算需要兩個操作數,當左右操作數的值同時為True時,運算結果才為True;否則,為False。例如:5>3And8>5

結果為True

5>3And8<5

結果為False

a<>bAndFalse結果為False(1)Not(邏輯非)

邏輯非只有一個右操作數。它是一種取反運算。當右操作數為True時,運算結果為False。當右操作數為False時,運算結果為True。例如:Not5<3

結果為True

Not5>3

結果為False第61頁,共134頁,2023年,2月20日,星期四(4)Xor(異或)異或運算也需要兩個操作數,當左右操作數一樣時,運算結果為False;否則,為True。例如:5>3Xor8>5

結果為False

5>3Xor8<5

結果為True(3)Or(邏輯或)

邏輯或也需要兩個操作數,當左右兩個操作數中有一個或同時為True時,運算結果為True,只有左右兩個操作數同時為False時才為False。例如:5>3Or8<5

結果為True

5<3Or8<5

結果為False

TrueOra=b結果為True第62頁,共134頁,2023年,2月20日,星期四XYNotXXAndYXOrYXXorYTrueTrueFalseTrueTrueFalseTrueFalseFalseFalseTrueTrueFalseTrueTrueFalseTrueTrueFalseFalseTrueFalseFalseFalse第63頁,共134頁,2023年,2月20日,星期四Not→And→Or→

Xor

由邏輯運算量、關系表達式、邏輯運算符和圓括號構成的式子稱為邏輯表達式。例如:(x<0)Or(Not(i<>0)Andb)第64頁,共134頁,2023年,2月20日,星期四()→算術運算→關系運算→邏輯運算2.4.4表達式的運算順序a/Sin(5*x)^3*b-4

例2-4第65頁,共134頁,2023年,2月20日,星期四a/Sin(5*x)^3*b-4第66頁,共134頁,2023年,2月20日,星期四a/Sin(5*x)^3*b-4①第67頁,共134頁,2023年,2月20日,星期四a/Sin(

5*x

)^3*b-4①②第68頁,共134頁,2023年,2月20日,星期四a/Sin(

5*x

)^3*b-4①②③第69頁,共134頁,2023年,2月20日,星期四a/

Sin(

5*x

)^3*b-4①②③④第70頁,共134頁,2023年,2月20日,星期四a/

Sin(

5*x

)^3*b

-4①②③④⑤⑥第71頁,共134頁,2023年,2月20日,星期四

設i=1,j=0,x=2,y=2,寫出下列布爾(邏輯)表達式的運算順序和運算結果。

x=2OrNoty>0And(x–y)/i<>0

例2-5第72頁,共134頁,2023年,2月20日,星期四x=2OrNoty>0And(x–y)/i<>0第73頁,共134頁,2023年,2月20日,星期四x=2OrNoty>0And(x–y)/I<>0①0第74頁,共134頁,2023年,2月20日,星期四x=2OrNoty>0And(x–y)

/I<>0①0②0第75頁,共134頁,2023年,2月20日,星期四x=2OrNoty>0And(x–y)

/I<>0①0②0③True第76頁,共134頁,2023年,2月20日,星期四x=2OrNoty>0And(x–y)

/I<>0①0②0③True④True第77頁,共134頁,2023年,2月20日,星期四x=2OrNoty>0And(x–y)

/I

<>0①0②0③True④True⑤False第78頁,共134頁,2023年,2月20日,星期四x=2OrNot

y>0And(x–y)

/I

<>0①0②0③True④True⑤False⑥False第79頁,共134頁,2023年,2月20日,星期四x=2OrNot

y>0

And

(x–y)

/I

<>0①0②0③True④True⑤False⑥False⑦False第80頁,共134頁,2023年,2月20日,星期四x=2OrNot

y>0

And

(x–y)

/I

<>0①0②0③True④True⑤False⑥False⑦False⑧True第81頁,共134頁,2023年,2月20日,星期四

VB.NET的內部函數是.NETFramework的System.Math類中定義的函數(方法)。這些函數通常帶有一個或幾個自變量,在程序設計語言中稱為“參數”。

使用函數就要調用函數。調用函數的一般格式:

<函數名>([<參數表>])其中參數表中的參數可以是一個參數,也可以是多個參數,多個參數時要用逗號分隔。這些參數可以為常量、變量、函數、更一般為表達式。調用函數時,首先向參數傳遞具體數值,然后執(zhí)行函數內部的代碼,返回一個函數值。2.5常用內部函數第82頁,共134頁,2023年,2月20日,星期四2.5.1數學函數數學函數包括三角函數、求平方根、絕對值、對數及指數函數等常用函數。數學函數在System.Math類中定義,調用這些函數需要在程序模塊開頭加上聲明語句使用System.Math類:

ImportsSystem.Math或者

調用時加上類名前綴,例如:

Math.Sqrt(x) 第83頁,共134頁,2023年,2月20日,星期四Sin(x)

返回自變量x的正弦值

Cos(x)

返回自變量x的余弦值

Tan(x)

返回自變量x的正切值

Atn(x)

返回自變量x的反正切值其中參數x是數值表達式,Sin,Cos和Tan函數的自變量是為弧度,而Atn函數的自變量是正切值,返回值為弧度。若自變量以角度給出,則可以使用下面公式轉換為弧度:d角度=d*/180弧度=d*3.14159/180弧度

由于的值在Math類中定義為Math.PI,因此上述轉換公式可以寫為:

d角度=d*Math.PI/180弧度1.三角函數第84頁,共134頁,2023年,2月20日,星期四

例2-6三角函數運算。方法一:引入System.Math類。ImportsSystem.Console '聲明語句ImportsSystem.Math ModuleModule1SubMain()DimxAsDoubleDimyAsDoubleWrite("請輸入一個弧度值:")x=Val(ReadLine())y=Sin(x)'調用內部函數WriteLine("Sin({0})={1}",x,y)Write("請輸入一個角度值:")x=Val(ReadLine())y=Cos(x*PI/180) '角度換算,調用內部函數WriteLine("Cos({0}°)={1}“,x,y)'格式化輸出EndSubEndModule第85頁,共134頁,2023年,2月20日,星期四

例2-6三角函數運算。方法二:加類名前綴調用函數。ImportsSystem.ConsoleModuleModule1SubMain()DimxAsDoubleDimyAsDoubleWrite("請輸入一個弧度值:")x=Val(ReadLine())y=Math.Sin(x) ‘調用指定類的函數

WriteLine("Sin({0})={1}",x,y)Write("請輸入一個角度值:")x=Val(ReadLine())y=Math.Cos(x*Math.PI/180)‘調用指定類的函數

WriteLine("Cos({0}°)={1}",x,y) '格式化輸出

EndSubEndModule第86頁,共134頁,2023年,2月20日,星期四2.常規(guī)計算函數

Exp(x):返回

e

的x次冪。

Log(x):返回x以

e為底的對數。

Log10(x):返回x以10為底的對數。

Pow(x,y):返回x的y次冪。

Sqrt(x):返回x的平方根。3.求符號函數

Sign(x):返回表示x的符號。

x<0返回-1;x=0返回0;x>0返回1。4.求絕對值函數

Abs(x):返回x的絕對值。第87頁,共134頁,2023年,2月20日,星期四

5.取整函數Floor(x):返回小于或等于x的最大整數。Ceiling(x):返回大于或等于x的最小整數。Truncate(x):截取x的整數部分。Round(x[,y]):

將x值舍入到最接近的整數,或指定保留y位小數,對第y+1位小數四舍五入。第88頁,共134頁,2023年,2月20日,星期四

例2-7取整函數演示。ImportsSystem.ConsoleImportsSystem.MathModuleModule1SubMain()DimxAsDoubleDimyAsIntegerx=5.87256y=3WriteLine("Floor({0})={1}",x,Floor(x))WriteLine("Ceiling({0})={1}",x,Ceiling(x))WriteLine("Truncate({0})={1}",x,Truncate(x))WriteLine("Round({0},{1})={2}",x,y,Round(x,y))EndSubEndModule第89頁,共134頁,2023年,2月20日,星期四VB.NET還有兩個取整函數,它們是.NET運行時定義的成員函數,不需要使用Math類。

Int(x):返回不大于n的最大整數。

Fix(x):去掉n的小數部分,返回其整數部分。第90頁,共134頁,2023年,2月20日,星期四

6.取較大較小值

Max(x,y):返回x、y中的較大的一個值。

Min(x,y):返回x、y中的較小的一個值。第91頁,共134頁,2023年,2月20日,星期四2.5.2隨機函數

在編寫一些測試、模擬及游戲程序時,經常要使用一系列隨機產生的數據,這些數據通常稱為隨機數。

VB.NET中要產生隨機數需使用隨機函數和隨機數生成器初始化語句。第92頁,共134頁,2023年,2月20日,星期四

Rnd[(x)]產生一個大于或等于0小于1的單精度隨機數,其中可選項x為數值表達式。例如:WriteLine("r={0:g}",Rnd)可能輸出:

r=0.5795186

x<0

同一個負數每次產生的隨機數相同。例如:WriteLine(“{0}{1}{2}",Rnd(-2),Rnd(-2),Rnd(-2))

.7133257.7133257.7133257x>0每次產生與上一次不同的隨機數。例如:WriteLine(“{0}{1}{2}",Rnd(2),Rnd(2),Rnd(2)).6624333.7354596.1928332

x缺省時默認為>0。1.隨機函數第93頁,共134頁,2023年,2月20日,星期四

x=0本次產生的隨機數與上一次相同。例:WriteLine(“{0}{1}“,Rnd(-5),Rnd(0))

.8383257.8383257

WriteLine(“{0}{1}“,Rnd(5),Rnd(0))

.2874333.2874333

用法:

(1)產生0~n-1之間的隨機整數

一般形式:

Int(Rnd*n)

例如:Int(Rnd*101)產生0—100的隨機整數第94頁,共134頁,2023年,2月20日,星期四(2)產生隨機英文大小寫字母

一般形式:

Chr(Int(Rnd*26)+65)產生隨機英文大寫字母

Chr(Int(Rnd*26)+97)產生隨機英文小寫字母(3)產生某個范圍內的隨機整數

一般形式:

Int((upper–lower+1)*Rnd+lower)其中upper是隨機數范圍的上限,而lower則是隨機數范圍的下限。

例如:產生十位數(10--99)

Int(((99-10+1)*Rnd)+10)第95頁,共134頁,2023年,2月20日,星期四

一般格式:

Randomize[<n>]其中參數n為可選項,它一般為數值表達式,通常稱為種子數。

功能:若選擇n,產生由種子數n對應的一個特定隨機數序列;

若省略n,則以系統(tǒng)計時器當前時間值作為種子數產生不同的隨機數序列。(2)隨機數生成器初始化語句第96頁,共134頁,2023年,2月20日,星期四LTrim(s):刪除掉字符串s的前導空格。RTrim(s):刪除字符串s的尾隨空格。Trim(s):刪除字符串s前導空格和尾隨空格。2.5.3字符串函數1.刪除空格字符函數第97頁,共134頁,2023年,2月20日,星期四

例2-8刪除字符串空格測試。ImportsSystem.ConsoleModuleModule1SubMain()DimMyString="<-Trim->

"'設置字符串初值DimLTString=LTrim(MyString)DimRTString=RTrim(MyString)DimTString1=LTrim(RTrim(MyString))'刪除兩頭空格DimTString2=Trim(MyString) '只用Trim函數同樣刪除兩頭空格WriteLine("MyString={0:g}",MyString)WriteLine("LTString={0:g}",LTString)WriteLine("RTString={0:g}",RTString)WriteLine("TString1={0:g}",TString1)WriteLine("TString2={0:g}",TString2)EndSubEndModule第98頁,共134頁,2023年,2月20日,星期四2.字符串截取函數Left(s,n):截取字符串s最左邊的n個字符。Mid(s,p,n):

在字符串s中,從第p個字符開始,向后截取n個字符。Right(s,n):截取字符串s最右邊的n個字符。第99頁,共134頁,2023年,2月20日,星期四

例2-9截取字符串測試。ImportsSystem.ConsoleModuleModule1SubMain()DimAnyString="HelloComputerWorld"DimFirstStr=Left(AnyString,5)DimMidStr=Mid(AnyString,7,8)DimLastStr=Right(AnyString,5)WriteLine("AnyString={0:g}",AnyString)WriteLine("FirstStr={0:g}",FirstStr)WriteLine("MidStr={0:g}",MidStr)WriteLine("LastStr={0:g}",LastStr)EndSubEndModule第100頁,共134頁,2023年,2月20日,星期四3.字符串長度測試函數Len(s):返回字符串s的長度,即所含的字符個數。

例2-10

字符串長度測試。ImportsSystem.ConsoleModuleModule1SubMain()DimMyString1="HelloWorld"WriteLine("MyString1={0:g}",MyString1)WriteLine("Len(MyString1)={0:g}",Len(MyString1))DimMyString2="華南理工大學"WriteLine("MyString2={0:g}",MyString2)WriteLine("Len(MyString2)={0:g}",Len(MyString2))EndSubEndModule第101頁,共134頁,2023年,2月20日,星期四

4.StrDup和Space函數

StrDup(n,ch):生成n個同一字符組成的字符串,這個字符由ch指定。

Space(n):生成由n個空格組成的字符串。第102頁,共134頁,2023年,2月20日,星期四

例2-11生成重復字符串。ImportsSystem.ConsoleModuleModule1SubMain()DimMyS1=StrDup(5,"*")WriteL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論