VisualBasic的數(shù)據(jù)類型及運算課件_第1頁
VisualBasic的數(shù)據(jù)類型及運算課件_第2頁
VisualBasic的數(shù)據(jù)類型及運算課件_第3頁
VisualBasic的數(shù)據(jù)類型及運算課件_第4頁
VisualBasic的數(shù)據(jù)類型及運算課件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VisualBasic的數(shù)據(jù)類型及運算第3章本章要點數(shù)據(jù)類型常量和變量常用內(nèi)部函數(shù)表達式描述客觀事物的數(shù)字、字符以及所有能輸入到計算機中并被計算機程序加工處理的符號的集合稱為數(shù)據(jù)。數(shù)據(jù)有多種類型,每種類型都有一定的數(shù)據(jù)結(jié)構(gòu)特點。在VisualBasic中,提供了許多基本數(shù)據(jù)類型,同時用戶也可以自定義數(shù)據(jù)類型。

3.1數(shù)據(jù)類型3.1.1數(shù)據(jù)基本類型數(shù)據(jù)類型類型名稱類型聲明符所占內(nèi)存范圍示例字節(jié)型Btye無1字節(jié)(8位)0到255255整型Integer%2-32768到32768256長整型Long&4-2,147483648到214748364732769單精度浮點型Single!4+/-1E-45到4E381.75雙精度浮點型Double#8+/-5E-324到1.8E308-0.1587894貨幣型Currency@8+/-9E14(小數(shù)點后四位)3.1569變長字符串型String$字符串長度0到20個億字符左右"abcdef"定長字符串型String*size$size1到65535個字符"12323"布爾型(邏輯型)Boolean無2True或FalseTrue日期型Date無81/1/100到12/31/9999#8/25/2005#對象型Object無4任何對象的引用

可變數(shù)值類型Variant無16任何數(shù)值,最大同雙精度型

可變字符類型Variant無字符串長度與可變字符串長度相同

3.1.1基本數(shù)據(jù)類型

3.1數(shù)據(jù)類型

3.1.2用戶自定義類型

VisualBasic中除了可以使用以上的標(biāo)準(zhǔn)數(shù)據(jù)類型外,還可以由用戶自定義數(shù)據(jù)類型。自定義數(shù)據(jù)類型是由已存在的數(shù)據(jù)類型組合而成的。語句格式如下:

[Public/Private]Type自定義數(shù)據(jù)類型

數(shù)據(jù)元素1As已有的數(shù)據(jù)類型

數(shù)據(jù)元素2As已有的數(shù)據(jù)類型

數(shù)據(jù)元素3As已有的數(shù)據(jù)類型

EndType

3.1數(shù)據(jù)類型

注意,在聲明自定義數(shù)據(jù)類型時,如果是放在窗體模塊中定義,應(yīng)給類型定義的Type前加上Private,若在標(biāo)準(zhǔn)模塊中定義,則不加Private。默認值為Public。用戶自定義數(shù)據(jù)類型中的元素若是字符型,必須是定長字符型。

例3-1

為了表示學(xué)生的自然情況,如學(xué)號、姓名、所在院系等數(shù)據(jù),可在模塊的聲明段聲明一個名為Student的模塊級自定義數(shù)據(jù)類型,以便對相關(guān)數(shù)據(jù)進行處理。

3.1數(shù)據(jù)類型3.1.2用戶自定義類型程序演示3.2.2變量用來在程序中臨時存儲數(shù)據(jù),在程序運行過程中可以發(fā)生改變的量,稱為變量。每個變量都有唯一的變量名、相應(yīng)的數(shù)據(jù)類型和使用范圍。在程序中,通過聲明來定義變量,通過賦值語句賦給變量一個具體的值,通過變量名字來引用該變量的值。

1.變量的命名:變量的命名規(guī)則與VB一般標(biāo)識符命名規(guī)則一致

2.變量聲明:即把要存放的數(shù)據(jù)類型告訴VB系統(tǒng),以便系統(tǒng)為其分配存儲單元。(1)顯式聲明(2)隱式聲明

3.2常量和變量

3.3常用內(nèi)部函數(shù)

VB提供了大量的內(nèi)部函數(shù)(也稱VB庫函數(shù)),內(nèi)部函數(shù)是VB中預(yù)先設(shè)置好的完成某一特定功能的函數(shù),通常帶有一個或幾個參數(shù),并返回一個返回值。通過使用內(nèi)部函數(shù),可以方便地完成各種復(fù)雜運算。VisualBasic既為用戶預(yù)定義了內(nèi)部函數(shù),供用戶隨時調(diào)用,同時也可以允許用戶自定義函數(shù)過程。函數(shù)的一般調(diào)用格式為:<函數(shù)名>([<參數(shù)表>])

VisualBasic提供的內(nèi)部函數(shù)大致可分為如下幾類:數(shù)學(xué)函數(shù)、字符串函數(shù)、轉(zhuǎn)換函數(shù)、日期和時間函數(shù)及其它函數(shù)。3.3.1數(shù)學(xué)函數(shù)

3.3常用內(nèi)部函數(shù)函數(shù)名功能示例結(jié)果Sqr(x)求平方根Sqr(9)3Log(x)求自然對數(shù),x>0Log(10)2.3Exp(x)求以e為底的冪值,即求exExp(3)20.086Abs(x)求x的絕對值A(chǔ)bs(-2.5)2.5Hex[$](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)1Rnd(x)產(chǎn)生一個在(0,1)區(qū)間均勻分布的隨機數(shù),每次的值都不同;若x=0,則給出的是上一次本函數(shù)產(chǎn)生的隨機數(shù)Rnd(x)0-1之間的數(shù)Sin(x)求x的正弦值,x的單位是弧度Sin(0)0Cos(x)求x的余弦值,x的單位是弧度Cos(1)0.54Tan(x)求x的正切值,x的單位是弧度Tan(1)1.56Atn(x)求x的反正切值,x的單位是弧度,函數(shù)返回的是弧度值A(chǔ)tn(1)0.793.3.1數(shù)學(xué)函數(shù)例3-3在文本框中輸入含大小寫字母的字符串(原字符串),單擊命令按鈕“轉(zhuǎn)大寫”,原字符串全部轉(zhuǎn)為大寫并在文本框中顯示出來;單擊命令按鈕“轉(zhuǎn)小寫”,原字符串全部轉(zhuǎn)為小寫并在文本框中顯示出來;單擊命令按鈕“復(fù)原”,在文本框中顯示原字符串。

3.3常用內(nèi)部函數(shù)3.3.2字符函數(shù)程序演示轉(zhuǎn)換函數(shù)用于數(shù)據(jù)類型或形式的轉(zhuǎn)換,包括整型、實型、字符串型之間以及ASCII碼字符之間的轉(zhuǎn)換。常用類型轉(zhuǎn)換函數(shù)如下表所示。3.3.3類型轉(zhuǎn)換函數(shù)

3.3常用內(nèi)部函數(shù)

例如:

CStr(13)+CStr(23)

'數(shù)值轉(zhuǎn)換成字符串后用+連接,結(jié)果1323

CInt("12")+12

'字符串轉(zhuǎn)換成整型后與12相加,結(jié)果24

P=CInt(True)

'

輸出結(jié)果為-1

CBool(-0.001)

'

輸出結(jié)果為True

Int(-54.6)'結(jié)果為-55,取<=-54.6的最大整數(shù)Fix(54.6)'結(jié)果為54,取整數(shù)并直接去掉小數(shù)

3.3

常用內(nèi)部函數(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)-43Fix(x)將數(shù)值型數(shù)據(jù)x的小數(shù)部分舍去Fix(-3.5)

-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.6Round(x,N)在保留N位小數(shù)的情況下四舍五入取整Round(2.86,1)2.9CStr(x)將x轉(zhuǎn)換成字符串型CStr(12)

"12"CVar(x)將數(shù)值型數(shù)據(jù)x轉(zhuǎn)換成變體型CVar("23")+"A"

"23A"CSng(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成單精度型CSng(23.5125468)23.51255CDbl(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成雙精度型CDbl(23.5125468)23.51254683.3.3類型轉(zhuǎn)換函數(shù)3.3.4日期和時間函數(shù)

3.3常用內(nèi)部函數(shù)

VisualBasic提供了處理日期和時間的函數(shù),日期和時間函數(shù)可以顯示系統(tǒng)的日期和時間,提供某個事件何時發(fā)生及持續(xù)時間長短等信息。

例3-6設(shè)計一窗體,顯示距離2009年元旦的相關(guān)信息。程序演示3.3.5其它函數(shù)

3.3常用內(nèi)部函數(shù)除上面常用的四類函數(shù),VB中還有格式輸出函數(shù)、測試函數(shù)、顏色函數(shù)等其它函數(shù)。

1.格式輸出函數(shù)格式輸出函數(shù)Format函數(shù)是用來將要輸出的數(shù)據(jù),按照指定的格式輸出,使輸出的數(shù)據(jù)更符合程序設(shè)計者的要求。Format函數(shù)語法格式為:Format(〈表達式〉,〈格式字符串〉)例3-7

利用Format函數(shù)顯示有關(guān)的日期和時間。

3.3常用內(nèi)部函數(shù)3.3.5其它函數(shù)函數(shù)名含義示例及結(jié)果IsArray(變量

)測試變量是否是一個數(shù)組例子:

IsArray(3)結(jié)果:

False說明:不是一個數(shù)組IsDate(日期或字符串的表達式

)測試表達式值是否可以轉(zhuǎn)換成日期。日期從

January1,100到

December31,9999例子:IsDate("")結(jié)果:

True說明:可以轉(zhuǎn)換成日期IsEmpty(變量

)測試變量是否已經(jīng)被初始化例子:IsEmpty(a)結(jié)果:

True說明:未被初始化IsNull(變量

)測試變量是否為有效的數(shù)據(jù)例子:IsNull("")結(jié)果:

False說明:是有效的數(shù)據(jù)2.測試函數(shù)測試函數(shù)的結(jié)果為布爾型數(shù)據(jù)。常用的測試函數(shù)

4.Shell函數(shù)格式:Shell(命令字符串[,窗口類型])功能:可調(diào)用各種應(yīng)用程序。其中:命令字符串是必需參數(shù)。類型為String,指要執(zhí)行的應(yīng)用程序名,以及任何需要的參數(shù)或命令行變量,也可以包括路徑名。它必須是可執(zhí)行文件(擴展名為.com、.exe、.bat)。

例3-9

設(shè)計一個窗體,通過窗體的命令按鈕運行計算器程序。

程序演示

3.3常用內(nèi)部函數(shù)3.3.5其它函數(shù)表達式由常量、變量、運算符、函數(shù)和圓括號按一定的規(guī)則組成,通過運算后有一個結(jié)果,運算結(jié)果的類型由數(shù)據(jù)和運算符共同決定。本節(jié)主要介紹算術(shù)表達式、字符串表達式、關(guān)系表達式、邏輯表達式。

3.4.1算術(shù)表達式

3.4表達式本節(jié)主要介紹算術(shù)表達式、字符串表達式、關(guān)系表達式、邏輯表達式。用運算符將運算對象(或稱操作數(shù))連接起來即構(gòu)成表達式。算術(shù)運算符用于對數(shù)值型數(shù)據(jù)執(zhí)行各種算術(shù)運算。

3.4表達式3.4.1算術(shù)表達式類型優(yōu)先級運算符說明示例結(jié)果算術(shù)運算符1^求乘冪3^292-取負-3-33*求積50*2.11053/求商,結(jié)果為浮點型5/32.54\整除,返回商的整數(shù)部分20\635Mod求模,返回余數(shù)20Mod626+求和50+50.1100.16-求差或表示負數(shù)50-50.1-0.1

3.4表達式

例3-10

用文本框輸入攝氏溫度C,用MsgBox輸出華氏溫度F。程序演示3.4.1算術(shù)表達式字符串運算符有兩個:“&”、“+”,它們的作用都是將兩個字符串連接起來,合并成一個字符串。常見的字符串運算符如下表所示。

3.4表達式3.4.2

字符串表達式類型運算符說明示例結(jié)果字符串運算符&連接兩個字符串(&具有自動轉(zhuǎn)換成字符運算的功能)"stu"&"dent","1"&2student,12+"1"+"2"12

例如:

"ABCD"+"EFGHI"'結(jié)果為:ABCDEFGHI"VB"&"程序設(shè)計教程"

'結(jié)果為:VB程序設(shè)計教程

3.4.4邏輯表達式

3.4表達式

邏輯運算符也稱布爾運算。用邏輯運算符連接兩個或多個關(guān)系式,組成一個布爾表達式。VB的邏輯運算符有以下6種,參見下表。邏輯非運算符Not為單目運算符(要求一個操作數(shù)),其它為雙目運算符。類型運算符說明示例結(jié)果邏輯運算符Not“非”運算(對右邊的表達式進行邏輯否定運算)Not39>10Not10>39FalseTrueAnd“與”運算(And運算符兩邊的條件表達式同時成立,則返回True,否則False)39>10And8>10FalseOr“或”運算(Or運算符兩邊的條件表達式同時不成立,則返回False,否則True)39>10Or8>10True

3.4表達式3.4.4邏輯表達式

說明:

(1)邏輯運算符的優(yōu)先級不相同,Not(邏輯非)最高,但它低于關(guān)系運算,Imp(邏輯蘊含)最低。(2)VB中常用的邏輯運算符是Not、And和Or。它們用于對多個關(guān)系表達式進行邏輯判斷。例如,數(shù)學(xué)上表示某個數(shù)在某個區(qū)域時用表達式10≤X<20,在VB程序中應(yīng)寫成:

X>=10AndX<20(3)參與邏輯運算的量一般都應(yīng)是邏輯型數(shù)據(jù),如果參與邏輯運算的兩操作數(shù)是數(shù)值量,則以數(shù)值的二進制值逐位進行邏輯運算(0當(dāng)False,1當(dāng)True)。

3.4表達式3.4.4邏輯表達式

例3-11

設(shè)計一個窗體,輸入一個三位整數(shù),將它反向輸出。程序演示

關(guān)系表達式與邏輯表達式常常用在條件語句與循環(huán)語句中,作為條件控制程序的流程走向。例如,用人單位招聘秘書,要求年齡小于40歲,女性,學(xué)歷??苹虮究?。寫成VB的表達式是:年齡<=39and性別=“女”and(學(xué)歷=“??啤眔r學(xué)歷=“本科”)混合運算順序:算術(shù)運算字符串運算關(guān)系運算邏輯運算3.4.5表達式求值和運算符的優(yōu)先級

3.4表達式幾點說明:

(1)當(dāng)一個表達式中出現(xiàn)多種運算符時,首先進行算術(shù)運算符,接著處理字符串連接運算符,然后處理比較運算符,最后處理邏輯運算符。

(2)可以用括號改變優(yōu)先順序,強令表達式的某些部分優(yōu)先運行。括號內(nèi)的運算總是優(yōu)先于括號外的運算。對于多重括號,總是由內(nèi)到外。

3.4表達式3.4.5表達式求值和運算符的優(yōu)先級

(3)表達式的書寫中需注意的問題

①運算符不能相鄰。例a+*b是錯誤的。

②乘號不能省略。例x乘以y應(yīng)寫成:x*y

③括號必須成對出現(xià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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論