學(xué)習(xí)程序設(shè)計(jì)的基本方法多練模仿_第1頁
學(xué)習(xí)程序設(shè)計(jì)的基本方法多練模仿_第2頁
學(xué)習(xí)程序設(shè)計(jì)的基本方法多練模仿_第3頁
學(xué)習(xí)程序設(shè)計(jì)的基本方法多練模仿_第4頁
學(xué)習(xí)程序設(shè)計(jì)的基本方法多練模仿_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

學(xué)習(xí)程序設(shè)計(jì)的基本方法多練模仿第一頁,共三十三頁,2022年,8月28日第2章

程序設(shè)計(jì)基礎(chǔ)

程序中的大部分實(shí)際工作是采用程序代碼來處理的任何一個(gè)程序設(shè)計(jì)語言都有一套嚴(yán)格的編程規(guī)定

本章主要內(nèi)容

數(shù)據(jù)類型常量與變量表達(dá)式常用內(nèi)部函數(shù)程序代碼編寫規(guī)則第二頁,共三十三頁,2022年,8月28日

2.1

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

數(shù)據(jù)是程序處理的對(duì)象。為了更好地處理各種各樣的數(shù)據(jù),VB定義了多種數(shù)據(jù)類型數(shù)值型

數(shù)據(jù)類型字符型邏輯型日期型對(duì)象型變體型整數(shù):整型/長(zhǎng)整型字節(jié)型浮點(diǎn)型:單/雙精度貨幣型第三頁,共三十三頁,2022年,8月28日

1.整型(Integer)和長(zhǎng)整型(Long)

不帶小數(shù)部分的數(shù),表示正整數(shù)、負(fù)整數(shù)和零

整型數(shù):-32768~32767

長(zhǎng)整型數(shù):-2147483648~2147483647

2.字節(jié)型(Byte)

字節(jié)型數(shù)可以表示無符號(hào)的整數(shù)

0~255

3.單精度型(Single)和雙精度型(Double)

浮點(diǎn)數(shù)。表示帶有小數(shù)部分的數(shù)

表示數(shù)的范圍大,但有誤差。

如超出某個(gè)表示范圍,則用科學(xué)記數(shù)法

例如:4.53E8(4.53×108),8.173E-14,3.14D23

4.貨幣型(Currency)

專門為處理貨幣而設(shè)計(jì)的數(shù)據(jù)類型

它可最多保留小數(shù)點(diǎn)右邊4位和小數(shù)點(diǎn)左邊15位

第四頁,共三十三頁,2022年,8月28日

5.字符型(String)

用雙引號(hào)括起來的一串字符。

例如,“Canton”、”1+2=?”、”Good└┘Morning”等

“″”稱為起止界限符。

字符串長(zhǎng)度。分變長(zhǎng)字符串(長(zhǎng)度不固定)和定長(zhǎng)字符串(長(zhǎng)度固定)

在VB中,把漢字作為一個(gè)字符來處理。

6.邏輯型(Boolean)

邏輯型又稱布爾型,其數(shù)據(jù)只有True(真)和False(假)兩個(gè)值

7.日期型(Date)

表示日期和時(shí)間

用兩個(gè)“#”符號(hào)把日期和時(shí)間的值括起來

如:#08/20/2001#、#2001-08-20#

第五頁,共三十三頁,2022年,8月28日

8.對(duì)象型(Object)

對(duì)象型數(shù)據(jù)可用來表示應(yīng)用程序中的對(duì)象

9.變體型(Variant)

變體型數(shù)據(jù)是一種可變的數(shù)據(jù)類型,可以存放任何類型的數(shù)據(jù)

當(dāng)指定變量為Variant變量時(shí),VB會(huì)自動(dòng)完成必要的轉(zhuǎn)換

在程序中不特別說明時(shí),VB會(huì)自動(dòng)將該變量默認(rèn)為Variant型變量。

例:Temp=“22”

’字符串

Temp=Temp-1’數(shù)值

Temp=#01/01/2002#’日期

第六頁,共三十三頁,2022年,8月28日說明:

(1)

不同類型的數(shù)據(jù),所占的存儲(chǔ)空間不一樣。

(2)數(shù)據(jù)的類型可在數(shù)據(jù)之后加上一個(gè)類型符來表示,例如,413&,86!,104.67#等。

第七頁,共三十三頁,2022年,8月28日2.2常量與變量2.2.1常量

在程序運(yùn)行期間其值始終保持不變的量?jī)煞N形式的常量:一般常量和符號(hào)常量

1.一般常量在程序代碼中直接給出的數(shù)據(jù)。例如:123,-263,“VisualBasic”,“12.57”等

2.符號(hào)常量符號(hào)常量是在程序中用符號(hào)表示的常量。格式:

[Public|Private]Const常量名[As數(shù)據(jù)類型]=表達(dá)式例如:

ConstPI=3.14159AsSingle第八頁,共三十三頁,2022年,8月28日

變量

變量是在程序運(yùn)行期間其值可以發(fā)生變化的量

1.變量的命名規(guī)則應(yīng)遵守一些規(guī)則:

(1)變量名必須以字母開頭;

(2)只能由字母、數(shù)字和下劃線組成。不能含有小數(shù)點(diǎn)、空格等字符;

(3)字符個(gè)數(shù)不得超過255個(gè);

(4)不能使用VB的關(guān)鍵字(如語句名、函數(shù)名等)。例如,Print、Sub、End等;

(5)不區(qū)分變量名中字母的大小寫第九頁,共三十三頁,2022年,8月28日

變量的聲明就是向程序說明要使用的變量

有以下2種方法(顯式聲明與隱式聲明)

(1)聲明變量(顯式聲明)

用Dim、Public、Private或Static語句來聲明變量例如:DimsumAsInteger′把sum定義為整型變量

(2)隱式聲明

不加說明就直接使用變量,此時(shí)默認(rèn)的變量類型為變體類型(Variant)

也允許使用類型符來聲明變量的類型,如Num%,Sum!

2.變量的聲明第十頁,共三十三頁,2022年,8月28日

五類表達(dá)式:算術(shù)表達(dá)式、字符串表達(dá)式、日期表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式

2.3.1算術(shù)表達(dá)式

算術(shù)表達(dá)式也稱數(shù)值表達(dá)式,是用算術(shù)運(yùn)算符把數(shù)值型常量、變量、函數(shù)連接起來的式子

表達(dá)式的運(yùn)算結(jié)果是一個(gè)數(shù)值

VB有8種算術(shù)運(yùn)算符(表2.2)

運(yùn)算符優(yōu)先級(jí)

^(乘方)→-(求負(fù))→*/→\→Mod→+-

同級(jí)左到右

2.3表達(dá)式第十一頁,共三十三頁,2022年,8月28日說明:

(1)/和\的區(qū)別:1/2=0.5,1\2=0

(2)Mod用來求整型數(shù)除法的余數(shù)。例如:9Mod7結(jié)果為2

(3)在表達(dá)式中乘號(hào)不能省略,如a*b不能寫成ab(或a·b)

(4)括號(hào)不分大、中、小,一律采用圓括號(hào)??梢郧短资褂美纾瑇[x(x+1)+1]

x*(x*(x+1)+1)第十二頁,共三十三頁,2022年,8月28日

字符串表達(dá)式是采用連接符將兩個(gè)字符串常量、字符串變量、字符串函數(shù)連接起來的式子。

連接符有兩個(gè):&和+

其作用都是將兩個(gè)字符串連接起來,運(yùn)算結(jié)果是一個(gè)字符串。

例如:

”計(jì)算機(jī)”

&”網(wǎng)絡(luò)”的結(jié)果是:”計(jì)算機(jī)網(wǎng)絡(luò)”

”123”+”45”

的結(jié)果是:”12345”

123&”ABC”

的結(jié)果是:”123ABC”

2.3.2字符串表達(dá)式第十三頁,共三十三頁,2022年,8月28日

日期表達(dá)式是用運(yùn)算符(+或-)將算術(shù)表達(dá)式、日期型常量、日期型變量和函數(shù)連接起來的式子。

有以下3種運(yùn)算方式:

(1)兩個(gè)日期型數(shù)據(jù)相減,其結(jié)果是一個(gè)數(shù)值型數(shù)據(jù)(相差的天數(shù))。例如:#8/8/2001#-#6/3/2001#的結(jié)果為:66

(2)日期型數(shù)據(jù)加上天數(shù),其結(jié)果為一個(gè)日期型數(shù)據(jù)。例如:#12/1/2000#+31的結(jié)果為:#01/01/2001#

(3)日期型數(shù)據(jù)減去天數(shù),其結(jié)果為一個(gè)日期型數(shù)據(jù)。例如:#12/1/2000#-32的結(jié)果為:#10/30/2000#2.3.3日期表達(dá)式第十四頁,共三十三頁,2022年,8月28日

內(nèi)部函數(shù)是由VB系統(tǒng)提供的,每個(gè)內(nèi)部函數(shù)完成某個(gè)特定的功能。在程序中使用函數(shù)稱為調(diào)用函數(shù)函數(shù)調(diào)用的一般格式為:

函數(shù)名(參數(shù)1,參數(shù)2,…)

參數(shù)(也稱自變量)放在圓括號(hào)內(nèi),若有多個(gè)參數(shù),以逗號(hào)分隔。

函數(shù)調(diào)用后,一般都有一個(gè)確定的函數(shù)值,即返回值。例如:y=Sqr(289)

Sqr是內(nèi)部函數(shù)名,289為參數(shù),運(yùn)行時(shí)該語句調(diào)用內(nèi)部函數(shù)Sqr來求289的平方根,其計(jì)算結(jié)果由系統(tǒng)返回給變量y

VB的內(nèi)部函數(shù)大體上分為四大類:數(shù)學(xué)函數(shù),字符串函數(shù),日期與時(shí)間函數(shù)和轉(zhuǎn)換函數(shù)。2.4常用內(nèi)部函數(shù)第十五頁,共三十三頁,2022年,8月28日

VB中備有各種計(jì)算算術(shù)函數(shù)的子程序,在程序中要使用某個(gè)函數(shù)時(shí),只要調(diào)用該函數(shù)就行了。

使用數(shù)學(xué)函數(shù)的幾點(diǎn)說明:

(1)

三角函數(shù)的自變量單位是弧度如Sin47°應(yīng)寫成Sin(47*3.14159/180)。

(2)

函數(shù)Int是求小于或等于x的最大整數(shù)。例如Int(2)=2,Int(-2.5)=-3

當(dāng)x≥0時(shí)就直接舍去小數(shù),若x<0則舍去小數(shù)位后再減1

利用Int函數(shù)可以對(duì)數(shù)據(jù)進(jìn)行四舍五入。例如,對(duì)一個(gè)正數(shù)x舍去小數(shù)位時(shí)進(jìn)行四舍五入,可采用如下式子:Int(x+0.5)

當(dāng)x=9.4時(shí),Int(9.4+0.5)=9

當(dāng)x=9.5時(shí),Int(9.5+0.5)=102.4.1數(shù)學(xué)函數(shù)第十六頁,共三十三頁,2022年,8月28日

(3)隨機(jī)函數(shù)可以模擬自然界中各種隨機(jī)現(xiàn)象,它所產(chǎn)生的隨機(jī)數(shù),可以提供給各種運(yùn)算或試驗(yàn)使用

Rnd通常與Int函數(shù)配合使用生成[a,b]區(qū)間范圍內(nèi)的隨機(jī)整數(shù),可以采用

Int((b-a+1)*Rnd+a)

例如Int(4*Rnd+1)可以產(chǎn)生1~4之間(含1和4)的隨機(jī)整數(shù)。可以是1,2,3或4,這由VB運(yùn)行時(shí)隨機(jī)給定使用Rnd函數(shù)之前,先用Randomize語句來初始化隨機(jī)數(shù)生成器第十七頁,共三十三頁,2022年,8月28日編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=Int(x/10)'求十位數(shù)

b=xMod10'求個(gè)位數(shù)

c=b*10+a'生成新的數(shù)

Print"處理后的數(shù):";cEndSub運(yùn)行程序后單擊窗體,輸出結(jié)果是:

處理后的數(shù):63例2.1

給定一個(gè)兩位正整數(shù)(如36),交換個(gè)位數(shù)和十位數(shù)的位置,把處理后的數(shù)顯示在窗體上第十八頁,共三十三頁,2022年,8月28日PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36

a=x\10

'求十位數(shù)

b=x–10*a

'求個(gè)位數(shù)

c=b*10+aPrint"處理后的數(shù):";cEndSub

把上述程序改為以下形式,效果是否一樣?想一想通常,解決某個(gè)問題的程序方法有多種,我們應(yīng)該從中選擇較優(yōu)的一種方法。第十九頁,共三十三頁,2022年,8月28日編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimaAsInteger,bAsInteger,cAsIntegerRandomize'初始化隨機(jī)數(shù)生成器

a=Int(90*Rnd+10)'產(chǎn)生[10,99]區(qū)間內(nèi)的隨機(jī)整數(shù)

b=Int(90*Rnd+10)c=a+b'求兩數(shù)之和

Print"產(chǎn)生的兩個(gè)隨機(jī)數(shù):";a,bPrint"和數(shù):";cEndSub運(yùn)行程序后單擊窗體,輸出結(jié)果是:

產(chǎn)生的兩個(gè)隨機(jī)數(shù):5671

和數(shù):127例2.2

通過隨機(jī)函數(shù)產(chǎn)生2個(gè)兩位正整數(shù),求這2個(gè)數(shù)之和并顯示出來

再次運(yùn)行程序,單擊窗體后輸出另一組結(jié)果是:產(chǎn)生的兩個(gè)隨機(jī)數(shù):1837

和數(shù):55第二十頁,共三十三頁,2022年,8月28日

字符串函數(shù)用于進(jìn)行字符串處理

使用字符串函數(shù)的幾點(diǎn)說明:

(1)函數(shù)Mid(“ABCDEG”,3,2)的結(jié)果為”CD”

若省略n,則得到的是從P開始的往后所有字符,如

Mid(“ABCDE”,2)

的結(jié)果為“BCDE”

(2)插入字符串語句Mid,該語句格式如下:

Mid(字符串,p[,n])=子字符串用“子字符串”替換“字符串”中從P開始的與“子字符串”等長(zhǎng)的一串字符。例如,假設(shè)S=“ABCDE“,執(zhí)行語句Mid(S,3)=“99“后,S的值為“AB99E“

字符串函數(shù)第二十一頁,共三十三頁,2022年,8月28日

(3)在函數(shù)Instr中,f和k均為可選參數(shù),f表示開始搜索的位置(默認(rèn)值為1),k表示比較方式,若k為0(默認(rèn)),表示區(qū)分大小寫;若k為1,則不分大小寫。格式:Instr(f,字符串1,字符串2,k)

例如Instr(3,”A12a34A56”,

”A”)

的結(jié)果為7

Instr(3,”A12a34A56”,”A”,1)的結(jié)果為4

Instr(”A12a34A56”,

”A”)

的結(jié)果為1

(4)在函數(shù)String中,字符也可以用ASCII代碼(附錄一)來表示

例如String(6,42)

與String(6,”*”)作用相同第二十二頁,共三十三頁,2022年,8月28日

先從字符串a(chǎn)中找出某個(gè)指定字符(本例為空格),再以此字符為界拆分成兩個(gè)字符串。編寫的窗體單擊過程代碼如下:

PrivateSubForm_Click()DimaAsString,bAsString,cAsString,nAsIntegera="Visual└┘FoxPro"

'└┘表示空格

n=InStr(a,"└┘")

'查找空格位置

b=Left(a,n-1)

'取左邊部分

c=Mid(a,n+1)

'取右邊部分

Printb

'顯示左邊部分

Printc

'顯示右邊部分

EndSub

程序運(yùn)行后單擊窗體,輸出結(jié)果是:

Visual

FoxPro例2.3

使用字符串函數(shù)示例第二十三頁,共三十三頁,2022年,8月28日

PrivateSubForm_Click()DimaAsString,bAsString,cAsString,nAsIntegera="Visual└┘FoxPro"

'└┘表示空格

n=InStr(a,"└┘")

'查找空格位置

b=Left(a,n-1)

'取左邊部分

c=Right(____,____)

'取右邊部分

Printb

'顯示左邊部分

Printc

'顯示右邊部分

EndSub

程序運(yùn)行后單擊窗體,輸出結(jié)果是:

Visual

FoxPro

若用Right函數(shù)來代替Mid函數(shù),應(yīng)如何改動(dòng)?想一想答案:a,Len(a)-n第二十四頁,共三十三頁,2022年,8月28日

日期/時(shí)間函數(shù)用于進(jìn)行日期和時(shí)間處理

說明:

函數(shù)Weekday返回值1~7,依次表示星期日到星期六。2.4.3日期與時(shí)間函數(shù)第二十五頁,共三十三頁,2022年,8月28日

PrivateSubForm_Click()

x=#1/1/2005#

a=x-Date

b=Weekday(x)

c=Year(Date)

d=Month(Date)

e=Hour(Time)

f=Minute(Time)

Print"現(xiàn)在距離2005年元旦還有:";a;"天"

Print"2005年元旦是:星期";b-1

Print"本月份是:";c;"年";d;"月"

Print"現(xiàn)在是:";e;"時(shí)";f;"分"

EndSub

運(yùn)行程序后單擊窗體,輸出結(jié)果如下:

現(xiàn)在距離2005年元旦還有:1184天

2005年元旦是:星期6

本月份是:2001年10月

現(xiàn)在是:16時(shí)27分例2.4

使用日期/時(shí)間函數(shù)示例(留給學(xué)生分析)第二十六頁,共三十三頁,2022年,8月28日

轉(zhuǎn)換函數(shù)用于數(shù)據(jù)類型的轉(zhuǎn)換

說明:Val函數(shù)將數(shù)字字符串轉(zhuǎn)換為數(shù)值型數(shù)字時(shí),會(huì)自動(dòng)將字符串中的空格去掉,并依據(jù)字符串中排列在前面的數(shù)值常量來定值,例如:

Val("A12")的值為0Val("12A12")的值為12Val("1.2e2")的值為120

例2.4使用轉(zhuǎn)換函數(shù)的示例(留給學(xué)生分析)

PrivateSubForm_Click()

x="123"y=123

a=Chr(Asc(x)+5)

b=Str(Val(x)+5)

c=Val(Str(y)+"5")

Printa,b,c

EndSub

運(yùn)行程序后單擊窗體,輸出結(jié)果如下:

61281235

類型轉(zhuǎn)換函數(shù)第二十七頁,共三十三頁,2022年,8月28日

2.5.1語句及語法

VB中的程序語句是執(zhí)行具體操作的指令。由VB關(guān)鍵字、屬性、表達(dá)式以及VB可識(shí)別符號(hào)的組合例如,下列兩個(gè)語句:

Printa–2*b

↑↑

關(guān)鍵字表達(dá)式

Text1.Text═“VB程序設(shè)計(jì)”

↑↑↑↑

對(duì)象名屬性名賦值號(hào)表達(dá)式

簡(jiǎn)單的語句只有一個(gè)關(guān)鍵字。示例:End

2.5

程序代碼編寫規(guī)則第二十八頁,共三十三頁,2022年,8月28日

建立程序語句時(shí)必須遵守的構(gòu)建規(guī)則稱為語法。

統(tǒng)一約定符號(hào)如下:

[]方括號(hào),可選項(xiàng)

{}多項(xiàng)中選一項(xiàng)

(豎線)用來分隔多個(gè)選擇項(xiàng)(選其中之一項(xiàng))

,…

表示同類項(xiàng)目的重復(fù)出現(xiàn)第二十九頁,共三十三頁,2022年,8月28日

在編寫程序代碼時(shí),要遵守一定的規(guī)則。不能超越其規(guī)定來自由發(fā)揮。

(1)一行寫多條語句。冒號(hào)分隔

Sum=Sum+x:Count=Count+1

(2)一條語句寫成多行使用續(xù)行符(一個(gè)空格后面跟隨一個(gè)下劃線“_”),將長(zhǎng)語句分成多行。例如:

PrintText1.Text&Text2.Text&Text4.Text&└┘_

&Left(Text3.Text,3)

(3)不區(qū)分大小寫字母

V

溫馨提示

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

評(píng)論

0/150

提交評(píng)論