版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖形旋轉(zhuǎn) 課件
- 科學(xué)樹葉 課件
- 雙星輪胎 課件
- 人教版老王課件
- 幼兒園小班音樂《袋鼠媽媽》課件
- 西京學(xué)院《英漢口譯》2023-2024學(xué)年第一學(xué)期期末試卷
- 物理課件變阻器
- 不銹鋼拋光性能差的原因
- 西京學(xué)院《包裝設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《植物地理學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 《語言與文化》課件
- 物業(yè)房屋維修承包方案范本
- 孫燕姿所有歌曲歌詞大全(11張專輯)
- 初級(jí)職稱認(rèn)定表
- 期中質(zhì)量檢測(cè)1-3單元(試題)-五年級(jí)上冊(cè)數(shù)學(xué)北師大版
- 生命科學(xué)導(dǎo)論智慧樹知到課后章節(jié)答案2023年下浙江大學(xué)
- 小學(xué)道德與法治-公民的基本權(quán)利教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 江蘇省高考英語閱讀理解15篇
- 實(shí)驗(yàn)室安全事故案例分析
- 班級(jí)管理交流-班主任工作經(jīng)驗(yàn)交流課件(共28張ppt)
- 班級(jí)管理第2版(高等師范專業(yè))PPT完整全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論