




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VisualBasic
程序設(shè)計(jì)教程
(第3版)
HIQHCREDUCATIONPRESS
向泠大孽封駕機(jī)多.基礎(chǔ)??乒?/p>
http://jsjjc.tongj
VB程序設(shè)計(jì)教程(第3版)果書目當(dāng)\
目錄
天、
1工
U
E早
VisualBasic程序設(shè)計(jì)概述
-
天2工、
U
E早
VB可視化編程基礎(chǔ)
-天、
3工
U
E早
VB語言基礎(chǔ)
-天、
4工
行早
章VB控制結(jié)構(gòu)
第5
章數(shù)組和自定義類型
第6
上、過程
7工
身早
上、用戶界面設(shè)計(jì)
8工
身早
分、數(shù)據(jù)文件
9工
身早
圖形操作
第10章數(shù)據(jù)庫應(yīng)用基礎(chǔ)
本書目塞卜
VB程序設(shè)計(jì)教程(第3版)
教學(xué)安排
早內(nèi)容學(xué)時(shí)實(shí)驗(yàn)與學(xué)時(shí)
第1章VisualBasic程序設(shè)計(jì)概述1實(shí)驗(yàn)11+1
第2章VB可視化編程基礎(chǔ)2實(shí)驗(yàn)22+2
第3章vb語言基礎(chǔ)3實(shí)驗(yàn)32+2
第4章VB控制結(jié)構(gòu)6實(shí)驗(yàn)42+2
第5章數(shù)組和自定義類型4實(shí)驗(yàn)52+2
第6章過程4實(shí)驗(yàn)61+1
第7章用戶界面設(shè)計(jì)4實(shí)驗(yàn)72+2
第8章數(shù)據(jù)文件4實(shí)驗(yàn)82+2
第9章圖形操作4實(shí)驗(yàn)92+2
合計(jì)16周48學(xué)時(shí)(32+16)+課外163216+16
*第10章數(shù)據(jù)庫應(yīng)用基礎(chǔ)8實(shí)驗(yàn)102+4
VB程序設(shè)計(jì)教程(第3版)忝書目用學(xué),、3
第4章VB控制結(jié)構(gòu)
4?1順序結(jié)構(gòu)
4?2選擇結(jié)構(gòu)
4?3循環(huán)結(jié)構(gòu)
4?4其它輔助控制語句
4?5綜合應(yīng)用
4?6程序調(diào)試
和目利收
VB程序設(shè)計(jì)教程(第3版)4
4.1順序結(jié)構(gòu)
VB具有結(jié)構(gòu)化程序設(shè)計(jì)的三種程序控制結(jié)構(gòu),
即順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),是程序設(shè)計(jì)
的基礎(chǔ)。
(1)順序結(jié)構(gòu)
各語句按出現(xiàn)的先后次序執(zhí)行
用傳統(tǒng)流程
圖表示為
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄5
(2)選擇結(jié)構(gòu)
根據(jù)條件決定執(zhí)行的語句
VB程序設(shè)計(jì)教程(第3版)本書目勢(shì)
(3)循環(huán)結(jié)構(gòu)
根據(jù)條件重復(fù)執(zhí)行語句(稱為循環(huán)體)
I、當(dāng)型循環(huán)結(jié)構(gòu)II、直到型循環(huán)結(jié)構(gòu)
VB程序設(shè)計(jì)教程(第3版)果書目錄
4.1順序結(jié)構(gòu)
?一般程序設(shè)計(jì)語言中順序結(jié)構(gòu)的語句主要:
賦值語句和輸入/輸出語句等。
?在VB中
賦值語句
輸入/輸出通過:
?文本框控件、標(biāo)簽控件、
?InputBox函數(shù)、MsgBox函數(shù)和過程
?Print方法等來實(shí)現(xiàn)。
VB程序設(shè)計(jì)教程(第3版)本書目勢(shì)
4.1.1賦值語句
形式:變量名=表達(dá)式
[對(duì)象名,]屬性名=表達(dá)式
功能:計(jì)算表達(dá)式的值,再將此值賦給變量或?qū)?/p>
象屬性。
給變量賦值和設(shè)定屬性是VB編程中常見的兩個(gè)
任務(wù)。例如:
n=n+11計(jì)數(shù)累加
Textl.Text='M,'清除文本框的內(nèi)容
Textl.Text="歡迎使用VB”
賦值語句注意點(diǎn)
⑥“二”符號(hào)有兩個(gè)意義
賦值號(hào)、關(guān)系運(yùn)算符等號(hào)
形式相同,系統(tǒng)會(huì)根據(jù)所處的位置判斷符號(hào)的意義
>賦值號(hào)左邊只能是變量,不能是常量、常數(shù)符號(hào)
表達(dá)式。下面均為錯(cuò)誤的賦值語句:
Now()=x+y'左邊是表達(dá)式(函數(shù))
5=sqr(s)+x+y,左邊是常量
VB程序設(shè)計(jì)教程(第3版)⑥本書目更Z章目、.\
4.1.2數(shù)據(jù)輸出和輸入
1.InputBox函數(shù)
打開一個(gè)對(duì)話框,等待用戶輸入,返回字符串
一類型的輸入值。
形式:InputBox(提示[,標(biāo)題兒默認(rèn)值][,x坐標(biāo)
位置兒丫坐標(biāo)位置])///
注意:提示項(xiàng)不能省略。\醯矗名/r^~i
若要多行提示,可在每行
行末加回車換行vbCrLfo/
例4.1利用InputBox輸入基本工資和營業(yè)額)按
營業(yè)額的5%提成,江基實(shí)發(fā)工資并顯示。
VB程序設(shè)計(jì)教程(第3版)
2.MsgBox函數(shù)和MsgBox過程
打開一個(gè)信息框,等待用戶選擇一個(gè)按按鈕。
MsgBox函數(shù)返回所選按鈕的值,
MsgBox過程不返回值
MsgBox函數(shù)形式:
變量[%]=MsgBox(提示[,按鈕兒標(biāo)題])
MsgBox過程形式:
MsgBox提示[,按鈕][,標(biāo)題]
按鈕項(xiàng)是一整型表達(dá)式,決定信息框按鈕的數(shù)
目和類型及出現(xiàn)在信息框上的圖標(biāo)形式。
VB程序設(shè)計(jì)教程(第3版)O本書目史八一章目'.
MsgBox按鈕設(shè)置
分組內(nèi)部常數(shù)值描述
VBOkOnly0確定按鈕
VBOkCancel1確定、取消按鈕
按鈕
VBAboutRetrylgnore2終止、重試、忽略按鈕
數(shù)目
VBYesNoCancel3是、否、取消按鈕
VBYesNo4是、否按鈕
VBRetryCancel5重試、取消按鈕
VBCritical16關(guān)鍵信息圖標(biāo)Q
圖標(biāo)VBQuestion32詢問信息圖標(biāo)卻
類型VBExclamation48警告信息圖標(biāo)Jy
VBInformation64信息圖標(biāo)專
默認(rèn)VBDefaultButtonl0第1個(gè)按鈕為默認(rèn)一
按鈕VBDefaultButton256第2個(gè)按鈕為默認(rèn)
VBDefaultButton3512第3個(gè)按鈕為默認(rèn)
VB程序設(shè)計(jì)教程(第3版)敘本書目史?7章目臬
MsgBox所選按鈕返回值
內(nèi)部常數(shù)返回值被單擊|噬登錄
的按鈕帳號(hào)123456
vbOk1確定密碼火火火火
vbCancel2取消
vbAbort3終止檢驗(yàn)密碼
vbRetry4重試
vblgnore5忽略
八密碼錯(cuò)誤
vbYes6是
vbNo7否匚割瑩□:取消
例列2編一賬號(hào)和密碼輸入的檢驗(yàn)程序,當(dāng)輸入不正
確,如賬號(hào)為非數(shù)字字符,密碼不正確等,顯示有關(guān)
信息,再輸入。
VB程序設(shè)計(jì)教程(第3版)忝書目錄章目錄
3.Print方法
作用:在對(duì)象上輸出信息。
對(duì)象.Print[Spc(77)|Tab(刀)][輸出列表][;
對(duì)象:窗體、圖形框或打印機(jī)。缺省為窗體。
Spc(n)函數(shù):從當(dāng)前位置起空刀個(gè)空格
Tab(n)函數(shù):從最左端開始計(jì)算的第n列
分號(hào):定位在上一個(gè)被顯示的字符之后
逗號(hào):定位在下一個(gè)打印區(qū)開始處(每區(qū)14列)
Print語句尾無分號(hào)或逗號(hào),輸出后換行
例4.3Print方法輸出圖形
利用String函數(shù)顯示重復(fù)字符
利田彳居環(huán)結(jié)物函數(shù)顯不
VB程序設(shè)計(jì)教程(第3版)本書目錄■午
4.Format格式輸出函數(shù)
形式:Format(表達(dá)式[,”格式字符串[)
常用數(shù)值格式化符及舉例
符號(hào)作用表達(dá)式格式字符串顯示結(jié)果
0用0填充不足的位置1234.567“00000.0000”01234.5670
#位置不足時(shí)不填充01234.567”#####.####"1234.567
千分位1234.567”##,##0.000”1,234.567
%數(shù)值乘以100,加百分號(hào)1234.567”####.##%”123456.7%
$在數(shù)字前強(qiáng)加$1234.567”$###.##"$1234.57
E+用指數(shù)表示1234.567n0.00E+00n1.23E-01
例4.4利用Format函數(shù)顯示數(shù)侑。
VB程序設(shè)計(jì)教程(第3版)忝書目用學(xué)16
4.2選擇結(jié)構(gòu)
?計(jì)算機(jī)要處理的問題往往是復(fù)雜多變的,
僅采用順序結(jié)構(gòu)是不夠的。
?必須利用選擇結(jié)構(gòu)等來解決實(shí)際應(yīng)用中的
各種問題。
?VB中主要通過If條件語句和Select情況語
句來實(shí)現(xiàn)。它們都是對(duì)條件進(jìn)行判斷,根據(jù)
判斷結(jié)果,選擇執(zhí)行不同的分支。
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄
4.2.1If條件語句
LIf…Then語句(單分支結(jié)構(gòu))
IfV表達(dá)式》Then
語句塊(可以是一句或多句語句
EndIf語句塊
或Ifv表達(dá)式)ThenV語句》
表達(dá)式:關(guān)系表達(dá)式、邏輯表達(dá)式,算術(shù)表達(dá)式。
表達(dá)式值按非零為True,零為FaIse進(jìn)行判斷。
該語句的作用是當(dāng)表達(dá)式的值為True,執(zhí)行Then后
面的語句塊,否則不做任何操作。
IF演示
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄18
單分支結(jié)構(gòu)
例:已知兩個(gè)數(shù)x和y,比較它們的大小,使得x
大于y。
Ifx<yThen
t=x
x=y
y=t
EndIf
或Ifx<yThent=x:x=y:y=t
簡單If形式無EndIf時(shí),只能是一句語句或語句間用
冒號(hào)分隔,而且必須在一行上書寫。
VB程序設(shè)計(jì)教程(第3版)19
雙分支結(jié)構(gòu)
2.If…Then…Else語句
If表達(dá)式Then―
語句塊1J—i一口
E]§e語句塊i語句塊2
語句塊2vv
EndIf
或If表達(dá)式Then語句1Else語句2
當(dāng)表達(dá)式的值為True時(shí),執(zhí)行Then后面的
語句塊1,否則執(zhí)行Else后面的語句塊2
VB程序設(shè)計(jì)教程(第3版)忝書目錄章目錄
雙分支結(jié)構(gòu)例
計(jì)算分段函數(shù)y」sinx+G7-0
Vcosx-x'+3xx=0
單分支y=cos(x)—x人3+3*x
結(jié)構(gòu)實(shí)現(xiàn)Ifx<>0Theny=sin(x)+sqrt(x^x+1)
Ifx<>0Then
雙分支y=sin(x)+sqr(x*x+1)
Else
結(jié)構(gòu)實(shí)現(xiàn)y=cos(x)—xA3+3*x
EndIf
VB程序設(shè)計(jì)教程(第3版)忝書目錄章目錄
多分支結(jié)構(gòu)
3?lf.??Then.??Elself語句
If表達(dá)式1Then
語句塊1
Elself
[Else
EndIf
作用:根據(jù)不同的表達(dá)式值確定執(zhí)行哪個(gè)語句塊
VB程序設(shè)計(jì)教程(第3版)忝書目錄章目錄
多分支結(jié)構(gòu)例
例4.7已知變量ch中存放了一個(gè)字符,判斷該字符是
字母字符、數(shù)字字符還是其他字符。
IfUCase(ch)>="A”AndUCase(ch)<=Then
MsgBox(ch+“是字母字符")’考慮大小寫字母
Elselfch>=110"Andch<="9"Then'數(shù)字字符
MsgBox(ch+”是數(shù)字字符”)
Else'除上述字符以外的字符
MsgBox(ch+”是其他字符”)
不管有幾個(gè)分支,依次判斷,當(dāng)某條件滿足,執(zhí)行相應(yīng)
的語句,其余分支不再執(zhí)行;若條件都不滿足,且有
Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。
Elself不能寫成日seIf
VB程序設(shè)計(jì)教程(第3版)殿》書目更Z章目臬
If語句的嵌套
If語句的嵌套是指If或日se后面的語句塊中又包含If語
If表達(dá)式1Then
If表達(dá)式2Then
■■■Ifx<yThent=x:x=y:y=t
EndIf
■■■Ify<zThen
EndIft=y:y=z:z=t
例已知x,y,z三個(gè)數(shù),Ifx<yThen
使得x>y>zt=x:x=y:y=t
用一個(gè)IF語句和一個(gè)嵌套EndIf
的IF語句實(shí)現(xiàn)EEnnddIIff
VB程序設(shè)計(jì)教程(第3版)
4-2-2SelectCas。語句
SelectCase變量或表達(dá)式
Case表達(dá)式列表1
語句塊1
Case表達(dá)式列表2
語句塊2表達(dá)式列表與變量或表達(dá)式的類型必
■■■須相同,是下面4種形式之一:
[CaseElse?表達(dá)式例:
語句塊n+1]?一組用逗號(hào)分隔的枚舉值2,4,6,8
EndSelect?表達(dá)式1To表達(dá)式260To100
?Is關(guān)系運(yùn)算符表達(dá)式Is<60
VB程序設(shè)計(jì)教程(第3版)本書目錄章目景
SelectCas。語句例
將例4.7改用SelectCase語句實(shí)現(xiàn):
SelectCasech
Case"a11To"z",To
MsgBox(ch+”是字母字符”)
Case"0"To"9"
MsgBox(ch+”是數(shù)字字符”)
CaseElse
MsgBox(ch+”是其他字符”)
EndSelect
多分支結(jié)構(gòu),用SelectCase語句比If…Then…Elself
語句直觀,程序可讀性強(qiáng)。但不是所有的多分支結(jié)構(gòu)
均可用SelectCase語句代替If…Then…Elself語句。
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄26
SelectCas。語句例
例4.9判斷坐標(biāo)點(diǎn)(x,y),落在哪個(gè)象限。
代碼一代碼二
Ifx>0Andy>0ThenSelectCasex,y
MsgBox("在第一象限”)Casex>0Axdy>0
Elselfx<0Andy>0ThenMsgBox("在第一象限”)
Casexv0Axdy>0
MsgBox("在第二象限“)
MsgBox("在第二象限”)
Elselfx<0Andy<0Then
Casex<0Andy<0
MucRcW〃在第二象陽Q
代碼二錯(cuò)誤:
1.SelectCase后不能出現(xiàn)多個(gè)變量
2.Case后不能出現(xiàn)變量及有關(guān)運(yùn)算符
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄
4.2.3條件函數(shù)
(1)Hf函數(shù)
Hf(表達(dá)式,表達(dá)式為真時(shí)的值,表達(dá)式為假時(shí)的值)
Hf函數(shù)是If...Then...Else結(jié)構(gòu)的簡潔表示
例如,將x,y中大的數(shù),放入Tmax變量中:
Tmax=llf(x>y,x,y)
該語句與如下語句等價(jià):
Ifx>yThenTmax=xElseTmax=y
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄28
4.2.3條件函數(shù)
(2)Choose函數(shù)DimnopAsInteger,opAsChar
Choose健Randomize()
根據(jù)表達(dá)式的任nop=lnt(Rnd()*4+1)
果整數(shù)表達(dá)式4°P=Choose(nop,"x,丁,.,,)
MsgBox("nop="&nop&"op="&op)
例才艮據(jù)Nop的值K
Op=Choose(Nop,5rL
例4.10根據(jù)當(dāng)前日期,顯示今日是星期幾。
t=Choose(Weekday(Now)「星期日”「星期一”「星期
二”「星期三”,“星期四”「星期五”「星期六”)
MsgBoxJ今天是:11&Now&t)
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄29
4.3循環(huán)結(jié)構(gòu)
?計(jì)算機(jī)最擅長的功能之一就是按規(guī)定的條件,
重復(fù)執(zhí)行某些操作。
?例如,按照人口某增長率,對(duì)人口增長統(tǒng)計(jì);
根據(jù)各課程的學(xué)分、績點(diǎn)和學(xué)生的成績,統(tǒng)計(jì)
每個(gè)學(xué)生的平均績點(diǎn)等。
?這類問題都可通過循環(huán)結(jié)構(gòu)來方便地實(shí)現(xiàn)。
VB中提供了主要兩類循環(huán)語句:
?For循環(huán)語句(一般已知循環(huán)次數(shù));
?Do條件型循環(huán)語句(一般未知循環(huán)次數(shù)).
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄
4.3.1For循環(huán)語品
Fori=1To100Step2
For循環(huán)語句用于控制循環(huán)2
For循環(huán)變量=初值ToZsum=sum+i
語句塊Nexti
[ExitFor]VMsgBox(sum)
語句塊
Next循環(huán)變量計(jì)算
循環(huán)變量必須為數(shù)值型。1?100的奇數(shù)和
循環(huán)次數(shù)=加(+憶+1)
「>0初值<終值=1時(shí),可省略
步長1<0初值,終值
j=0死循環(huán)
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄31
For循環(huán)語句
循環(huán)流程:
(1)循環(huán)變量被賦初值,它
僅被賦值一次。
(2)判斷循環(huán)變量是否在終
值內(nèi),如果是,執(zhí)行循環(huán)體;
如果否,結(jié)束循環(huán),執(zhí)行
Next的下一語句。
(3)循環(huán)變量加步長,轉(zhuǎn)Q),
繼續(xù)循環(huán)
例4.12將可打印的
ASCH碼制成表格輸出
VB程序設(shè)計(jì)教程(第3版)忝書目錄章目錄
4.3.2Do.“Loop循環(huán)語句
Do循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。
形式1:形式2:
Do{Wh"e|Unt"}v條件〉Do
語句塊語句塊
[ExitDo[ExitDo
語句塊]語句塊]
LoopLoop{While|Until}v條件,
形式1為先判斷后執(zhí)行,有可能一次也不執(zhí)行;
形式2為先執(zhí)行后判斷,至少執(zhí)行一次。
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄33
Do“.Loop流程
DoWhileLoop
VB程序設(shè)計(jì)教程(第3版)忝書目錄章目錄
循環(huán)例題
例4.13我國有13億人口,按人口年增長0.8%
計(jì)算,多少年后我國人口超過26億。
解此問題兩種方法,可根據(jù)公式:
26=13(1+0.008)n
log(2)
n二---------------------------------
log(1.008)
直接利用標(biāo)準(zhǔn)函數(shù)對(duì)數(shù)可求得,但求得的年數(shù)不
為整數(shù);也可利用循環(huán)求得。
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄
4.3,3循環(huán)的嵌套
在一個(gè)循環(huán)體內(nèi)又包含了一個(gè)完整的循環(huán)結(jié)構(gòu)
稱為循環(huán)的嵌套。循環(huán)嵌套對(duì)For循環(huán)語句和
Do…Loop語句均適用。
例4.14打印九九乘法表
國ForwlI-1同岡
九九乘法表
1X1=11X2=21X3=31X4=41X5=51X6=61X7=71X8=81X9=9
2X1=22X2=42X3=62X4=82X5=102X6=122X7=142X8=162X9=18
3X1=33X2=63X3=93X4=123X5=153X6=183X7=213X8=243X9=27
4X1=44X2=84X3=124X4=164X5=204X6二244X7=284X8=324X9=36
5X1=55X2=105X3=155X4=205X5=255X6=305X7=355X8=405X9=45
6X1=66X2=126X3=186X4=246X5=306X6=366X7=426X8=486X9=54
7X1=77X2=147X3=217X4=287X5=357X6=427X7=497X8=567X9=63
8X1=88X2=168X3=248X4=328X5=408X6=488X7=568X8=648X9=72
9X1=99X2=189X3=279X4=369X5=459X6=549X7=639X8=729X9=81
思考:打印上三角或下三角程序如何改動(dòng)?
VB程序設(shè)計(jì)教程(第3版)本書目錄章目景
4.4其他輔助控制語句
4.4.1GoTo語句
無條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語句。
GoTo{標(biāo)號(hào)|行號(hào)}
注意:標(biāo)號(hào)是字符序列,首字符必須為字母,標(biāo)號(hào)后
應(yīng)有冒號(hào);行號(hào)是一個(gè)數(shù)字序列;
例4.15判斷輸入的數(shù)是否為素?cái)?shù)
素?cái)?shù)就是除1和本身以外,不能被其他任何整數(shù)整除的
數(shù)。根據(jù)此定義,判別某數(shù)"是否為素?cái)?shù)最簡單的方法
就是依次用途2一療1去除,只要有一個(gè)數(shù)能整除勿,m就
不是素?cái)?shù);否則勿是素?cái)?shù)。
要求一定范圍內(nèi)的素?cái)?shù),只要將m作為外循環(huán)體變量。
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄
4.4.2退出和結(jié)束語句
1.Exit語句
VB中有多種形式的Exit語句,用于退出某種控
制結(jié)構(gòu)的執(zhí)行。Exit的形式如下:
ExitFor、ExitDo>
ExitSub>ExitFunction
2.End語句
獨(dú)立的End語句用于結(jié)束一個(gè)程序的運(yùn)行,它
可以放在任何事件過程中。
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄38
4.5綜合應(yīng)用
例416由計(jì)算機(jī)自動(dòng)產(chǎn)生四則運(yùn)算題,并能判
斷答案的正確性。
設(shè)計(jì)思路:
(1)通過隨機(jī)函數(shù)Rnd產(chǎn)生試題的操作數(shù)和運(yùn)算
符,運(yùn)算符+、?、義、?可對(duì)應(yīng)編號(hào)1~4。產(chǎn)
生表達(dá)式通過Form_Load事件過程。
(2)需要有一個(gè)全局無量保存四則運(yùn)算題的正確
答案,用戶答案可通過文本框輸入。
(3)本題主要將隨機(jī)函數(shù)、If語句、Select語句
綜合在一起使用。
VB程序設(shè)計(jì)教程(第3版)敘本書目史?7章目臬
綜合應(yīng)用■最大公約數(shù)
例4.17用輾轉(zhuǎn)相除法求兩自然數(shù)的最大公約數(shù)。
求最大公約數(shù)的算法思想:
輾轉(zhuǎn)相減法
(1)對(duì)于兩數(shù)陽,n,使得股>〃■m=m-nm>n
■n-n-mn>m
(2)陽除以〃得余數(shù)r■〃為公約數(shù)m-n
(3)若r=0,貝切為最大公約數(shù),DoWhilem<>nmn
Ifm>nThen146
結(jié)束;否則執(zhí)行(4)
m=m-n86
(4)/6小nJ,再重復(fù)執(zhí)行(2)Else26
n=n-m24
EndIf22
Loop
VB程序設(shè)計(jì)教程(第3版)卷書目錄彳章目.
綜合應(yīng)用■級(jí)數(shù)求和
例4.18求自然對(duì)數(shù)e的近似值,其誤差小于0.00001。
1111口1
近彳以公式6=1-1--+—+—+,,,+—+?,?=>一
1!2!3!?!仁!i
分析:本例涉及到程序設(shè)計(jì)中兩個(gè)重要運(yùn)算:
累加Z、連乘
累加:在原有和的基礎(chǔ)上再加一個(gè)數(shù);
連乘:在原有積的基礎(chǔ)上再乘以一個(gè)數(shù)。
該題先求",再將"/進(jìn)行累加,循環(huán)次數(shù)未知,
可先設(shè)置一個(gè)次數(shù)很大的值,然后在循環(huán)體內(nèi)判
斷是否到達(dá)精度,也可用DoWhile來實(shí)現(xiàn)。
VB程序設(shè)計(jì)教程(第3版)出本書目史?7章目臬
綜合應(yīng)用■試湊法
例4?19百元買百雞。假定小雞每只5角,公雞每只2元,
母雞每只3元,編程求解購雞方案。
分析:
(1)設(shè)母雞、公雞、小雞各為x、y>z,列出方程為:
jr+y+z=100
3JT+2J/+0.5N=100
三個(gè)未知數(shù),兩個(gè)方程,此題求若干個(gè)整數(shù)解。
(2)計(jì)算機(jī)求解此類問題,采用試湊法(也稱窮舉法)來
實(shí)現(xiàn),即將可能出現(xiàn)的各種情況一一羅列測(cè)試,判斷
是否滿足條件,采用循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄42
綜合應(yīng)用■遞推法
遞推(迭代)法基本思想是把一個(gè)復(fù)雜的計(jì)算過程轉(zhuǎn)化為
簡單過程的多次重復(fù)。每次都從舊值的基礎(chǔ)上遞推出新
值,并由新值代替舊值。
例4.20小猴有桃若干,第一天吃掉一半多一個(gè);第二
天吃剩下桃子的一半多一個(gè);以后每天都吃尚存桃子的
一半多一個(gè),到第7天只剩一個(gè),問小猴原有桃多少?
分析:用后一天的數(shù)推出前一天的桃子數(shù)。設(shè)第〃天的
桃子為二,是前一天的桃子的二分之一減去1。
1
X
即:Xn=—-1也就是:n-\-+1)義2
2,
迭代法類似的應(yīng)用求高次方程的近似根。
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄43
4.6程序調(diào)試
?隨著程序的復(fù)雜性提高,程序中的錯(cuò)誤也
伴隨而來。
?對(duì)初學(xué)者,看到出現(xiàn)錯(cuò)誤不要害怕,關(guān)鍵
是如何改正錯(cuò)誤,失敗是成功之母。
?上機(jī)的目的,不光是為了驗(yàn)證你編寫的程
序的正確性,還要通過上機(jī)調(diào)試,學(xué)會(huì)查找
和糾正錯(cuò)誤的方法和能力。
?VB為調(diào)試程序提供了一組交互的、有效的
調(diào)試工具。
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄44
4.6-1錯(cuò)誤類型
語法錯(cuò)誤、運(yùn)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤三類。
1、語法錯(cuò)誤
錯(cuò)誤的代碼顯示為紅色,
窗口上顯示出錯(cuò)的原因。
VB程序設(shè)計(jì)教程(第3版)忝書目用不、『章目錄
2、運(yùn)行錯(cuò)誤
指令代碼執(zhí)行了一非法操作引起的。例如,類
型不匹配、試圖打開一個(gè)不存在的文件等。程
序會(huì)自動(dòng)中斷,并給出有關(guān)的錯(cuò)誤信息。
序工程1-Foral(Code)匚~『口|底
Fora▼|[Load
OptionExplicit、-T
PrivateSubForm_Load()
Dima%,b%,c%,flagAsBoolean
Textl.FontSize:"四號(hào)"
EndSul
ZPJLU
VB程序設(shè)計(jì)教程(第3版)46
3、邏輯錯(cuò)誤
程序運(yùn)行后,得不到所期望的結(jié)果,這說明程
序存在邏輯錯(cuò)誤。
例如,運(yùn)算符使用不正確、語句的次序不對(duì)、
循環(huán)語句的起始、終值不正確等。
通常,邏輯錯(cuò)誤不會(huì)產(chǎn)生錯(cuò)誤提示信息,故錯(cuò)
誤較難排除,需要程序員仔細(xì)地閱讀分析程序,
并具有調(diào)試程序的經(jīng)驗(yàn)。
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄47
4.6.2調(diào)試和排錯(cuò)
VB的三種模式
1、設(shè)計(jì)模式(設(shè)計(jì))
可以進(jìn)行程序的界面設(shè)計(jì)、屬性設(shè)置、代碼編
寫等。
2、運(yùn)行模式(運(yùn)行)
執(zhí)行啟動(dòng)命令進(jìn)入運(yùn)行模式。在此階段,可以
查看程序代碼,但不能修改。
3、中斷模式(Break)
執(zhí)行中斷命令,進(jìn)入中斷模式。在中斷模式下
可以查看代碼、修改代碼、檢查數(shù)據(jù)。
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄48
調(diào)試和排錯(cuò)■插入斷點(diǎn)
VB程序設(shè)計(jì)教程(第3版)本書目晏,、^章目暴、.
本章小節(jié)
■結(jié)構(gòu)化程序設(shè)計(jì)三種結(jié)構(gòu)
順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
If■■■Then語句、SelectCase語句、For與
D。循環(huán)語句
■賦值語句與復(fù)合賦值語句
B數(shù)據(jù)輸出和輸入
lnputBox>MsgBox
■常用算法
素?cái)?shù)判定、級(jí)數(shù)求和、試湊法、迭代法解方程
VB程序設(shè)計(jì)教程(第3版)本書目
思考題
1.結(jié)構(gòu)化程序設(shè)計(jì)有哪三種基本結(jié)構(gòu)?
2.MseBox與InputBox有何區(qū)別?
3.多分支If語句與SelectCase語句有何區(qū)別?
4.如果事先不知道循環(huán)次數(shù),如何用
For…Next結(jié)構(gòu)實(shí)現(xiàn)循環(huán)?
5.語法錯(cuò)誤、運(yùn)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤之間有何
區(qū)別?
VB程序設(shè)計(jì)教程(第3版)忝書目錄章目錄
第5章數(shù)組和自定義類型
5?1數(shù)組的概念
5?2數(shù)組的基本操作和排序
5?3列表框和組合框控件
5?4自定義類型及其數(shù)組
5?5綜合應(yīng)用
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄
.ng5,1數(shù)組的概念
1.引例
例5.1求100個(gè)學(xué)生的平均成績,并統(tǒng)計(jì)高于平均分的
人數(shù)。用簡單變量和循環(huán),求平均成績程序段如下:
aver=0
Fori=1To100
mark=lnputBox("輸入學(xué)生成績")
aver=aver+mark
Nexti
aver=aver/100
問題
(1)mark只能放一個(gè)堂生的成績,無法統(tǒng)計(jì)高于平均
分的人數(shù)。|mark
(2)若用簡單變量保存100個(gè)學(xué)生的成績,則需定義
100個(gè)變量和仲用100句輸入語句。由此引入了數(shù)組。
VB程序設(shè)計(jì)教程(第3版)O本書目數(shù)
用數(shù)組解決問題的程序如下:
Dimmark(99)AsIntegerv聲明數(shù)組mark
Dimaver!,overn%,i%
aver=0
Fori=0To99'輸入成績,求分?jǐn)?shù)和
mark(i)=lnputBox("輸入學(xué)生的成績”)
aver=aver+mark(i)
Nexti
aver=aver/100'求100人的平均分
overn=0
Fori=0To99'統(tǒng)計(jì)高于平均分的人數(shù)
Ifmark(i)>averThenovern=overn+1
Nexti
MsgBox(”平均分:"&aver&”高于平均分人數(shù):”&
overn)
mark(0)mark(1)mark(2)...mark(98)mark(99)
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄54
數(shù)組:不是一種數(shù)據(jù)類型,而是一組相同類
型的變量的集合。
作用:用一個(gè)數(shù)組名代表邏輯上相關(guān)的一
批數(shù)據(jù),用下標(biāo)表示該數(shù)組中的各個(gè)元素,
和循環(huán)語句結(jié)合使用,使得程序書寫簡潔。
使用:必須先聲明后使用
VB程序設(shè)計(jì)教程(第3版)本書目錄今、章目錄
56.2數(shù)組聲明
一維數(shù)組
Dim數(shù)組名([下標(biāo)下界To]上界)[As類型]
說明:下標(biāo)下界缺省為0,下標(biāo)上界為常數(shù)。
數(shù)組大小為:下標(biāo)上界?下標(biāo)下界+1。
作用:聲明了數(shù)組名、類型、維數(shù)、數(shù)組大小
在內(nèi)存分配一塊連續(xù)的區(qū)域。
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄56
例:Dimmark(99)AsInteger
聲明了一維定長整型數(shù)組mark,
共有100個(gè)元素,下標(biāo)范圍為0To99;
mark數(shù)組的各元素是mark(0),mark(1)
mark(99);
markji)親示由下標(biāo)i的值決定是哪一個(gè)元素。
mark藪組內(nèi)存分配如下:
mark(0)mark(1)mark(2)???mark(98)mark(99)
每個(gè)數(shù)組元素有一個(gè)唯一的順序號(hào),下標(biāo)不能超
出數(shù)組聲明時(shí)的上、
下界范圍,否則會(huì)產(chǎn)生“下標(biāo)越界”錯(cuò)誤。數(shù)組
元素的使用規(guī)則與同類型的簡單變量相同
VB程序設(shè)計(jì)教程(第3版)O本書目史八一章目'.
多維數(shù)組聲明
Dim數(shù)組名(([下標(biāo)1下界To]上界1,([下標(biāo)下界2To]
上界2…)[As類型]
下標(biāo)數(shù)決定了數(shù)組的維數(shù),數(shù)組的大小為每一維大小
的乘積。
例Dimx(2,4)AsLong
聲明了一個(gè)長整型的二維數(shù)組x;共占據(jù)3X5個(gè)長整
型變量的空間..
x(0,0)x(0,1)x(0,2)x(0,3)x(0,4)
x(1,0)x(1,1)x(1,2)x(1,3)x(1,4)
x(2,0)x(2,1)x(Z2)x(2,3)x(2,4)
VB程序設(shè)計(jì)教程(第3版)本書目受章目
5.1.3動(dòng)態(tài)數(shù)組及聲明
建立動(dòng)態(tài)數(shù)組要分兩步:
用Dim語句聲明數(shù)組,但不能指定數(shù)組大小
Dim數(shù)組名()As數(shù)據(jù)類型
用ReDim語句動(dòng)態(tài)地分配元素個(gè)數(shù)
ReDim數(shù)組名(下標(biāo)[,下標(biāo)2…])
例:Dims()AsSingle
SubForm_Load()
???
ReDims(4,8)
EndSub
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄59
定義動(dòng)態(tài)數(shù)組大小注意:
Dim是說明語句,可出現(xiàn)在程序的任何地
方,而ReDim是執(zhí)行語句,只能在過程中
在過程中可多次使用ReDim語句來改變數(shù)
組的大小,但不能改變維數(shù)和類型
?可在ReDim后加Preserve參數(shù)用來保留
數(shù)組中的數(shù)據(jù),若使用Preserve參數(shù)后,只
能改變最后一維的大小。
例5.2編一個(gè)程序,顯示有n個(gè)數(shù)的非波那契數(shù)
序列
VB程序設(shè)計(jì)教程(第3版)出本書目史?7章目臬
5.2數(shù)組的基本操作
1、數(shù)組的輸入
通過TextBox控件或InputBox函數(shù)輸入
Dims(3,4)ASInteger
Fori=0To3
Forj=0To4
s(IJ)=InputBox("輸入,,&i&“「&j&11元素”)
Nextj
Nexti
VB程序設(shè)計(jì)教程(第3版)本書目錄補(bǔ)一章目錄
2、數(shù)組的輸出
例5.3形成5x5的方陣,分別輸出方陣中各元素、上
三角和下三角元素
BFOXMI0回區(qū))
1產(chǎn)0生方陣數(shù)據(jù)34|顯示o上三1角數(shù)2組3元釘4|顯0示下三角數(shù)組元素
5678967895ir
l*
101112A13A14A12XI31410A1*1
116112
5171819Xe8195*1
20212223242420011718
^A222324
方陣規(guī)律:第一行的元素為04,以后每一行是前一
行對(duì)應(yīng)元素增加5
上三角規(guī)律:每一行的起始列與行號(hào)相同,只要控制
內(nèi)循環(huán)的初值
用Tab函數(shù)或Space定位控制輸出的空格,
VB程序設(shè)計(jì)教程(第3版)
3、求數(shù)組和、最值、位置
例5.4求一維數(shù)組中各元素之和、最小數(shù)組元素,
并將最小值數(shù)組元素與數(shù)組中第一個(gè)元素交換
?:?求元素
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房 改造 豪宅合同范本
- 合同范本 付款方式
- 農(nóng)家花椒出售合同范本
- 中外貿(mào)易買方信貸合同范本
- 單位變更合同范例
- 主播獨(dú)家簽約合同范本
- 區(qū)塊鏈技術(shù)合同范本
- 合伙買汽車合同范本
- 2025年人造板類家具合作協(xié)議書
- 廠房用電合同范本
- (完整)消化性潰瘍PPT課件ppt
- 《教育學(xué)原理》馬工程教材第二章教育與社會(huì)發(fā)展
- 《常見疾病康復(fù)》期中考試試卷含答案
- 公司的JMP軟件培訓(xùn)教程
- 地球使用者地樸門設(shè)計(jì)手冊(cè)
- 筑基功法精選
- 歐洲電力市場(chǎng)深度報(bào)告:歐洲電力市場(chǎng)供需格局和電價(jià)分析
- 2023年考研考博-考博英語-煤炭科學(xué)研究總院考試歷年高頻考點(diǎn)真題薈萃帶答案
- 塔式起重機(jī)操作使用安全專項(xiàng)方案
- 統(tǒng)計(jì)用產(chǎn)品分類目錄
- 冀教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)小數(shù)的初步認(rèn)識(shí)
評(píng)論
0/150
提交評(píng)論