VB程序設(shè)計(jì)-第4章VisualBasic語言程序結(jié)構(gòu).ppt
《VB程序設(shè)計(jì)-第4章VisualBasic語言程序結(jié)構(gòu).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《VB程序設(shè)計(jì)-第4章VisualBasic語言程序結(jié)構(gòu).ppt(49頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
VB程序設(shè)計(jì),第四章VisualBasic語言程序結(jié)構(gòu),第四章VisualBasic語言程序結(jié)構(gòu),本章知識(shí)點(diǎn):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),常用算法的應(yīng)用等。,第四章VisualBasic語言程序結(jié)構(gòu),4.1順序結(jié)構(gòu)程序設(shè)計(jì)4.2選擇結(jié)構(gòu)程序設(shè)計(jì)4.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.4常用算法舉例,第四章VisualBasic語言程序結(jié)構(gòu),4.1順序結(jié)構(gòu)程序設(shè)計(jì)4.1.1賦值語句賦值語句一般形式如下:變量名=表達(dá)式對(duì)象.屬性=表達(dá)式功能:完成表達(dá)式的計(jì)算,將計(jì)算結(jié)果賦值給等號(hào)左側(cè)的變量或?qū)ο蟮膶傩?。例如:x=1把1賦給變量xText1.text="hello!"‘把字符串"hello!"賦給文本框Text1的text屬性,第四章VisualBasic語言程序結(jié)構(gòu),4.1順序結(jié)構(gòu)程序設(shè)計(jì)4.1.2數(shù)據(jù)輸入用戶主要通過三種方式實(shí)現(xiàn)數(shù)據(jù)輸入:使用文本框控件,使用系統(tǒng)提供的InputBox函數(shù),使用磁盤數(shù)據(jù)文件。本節(jié)主要介紹InputBox函數(shù)。函數(shù)格式如下:變量名$=InputBox(提示信息,對(duì)話框標(biāo)題,缺省值)功能:彈出輸入對(duì)話框,供用戶輸入一個(gè)數(shù)據(jù)。其中:提示信息:是一個(gè)字符串表達(dá)式,最大長(zhǎng)度不超過1024個(gè)字符,要來提示用戶輸入相關(guān)內(nèi)容,可使用chr(13)+chr(10)實(shí)現(xiàn)換行。對(duì)話框標(biāo)題:是字符串表達(dá)式,可省略,默認(rèn)為應(yīng)用程序名。缺省值:是顯示在對(duì)話框輸入?yún)^(qū)的默認(rèn)值。,,例如,Dimx%x=Val(InputBox("請(qǐng)輸入一個(gè)數(shù)","輸入框","100"))在屏幕上顯示如圖4.2所示的對(duì)話框:,圖4.2InputBox對(duì)話框,第四章VisualBasic語言程序結(jié)構(gòu),4.1順序結(jié)構(gòu)程序設(shè)計(jì)4.1.3數(shù)據(jù)輸出1)Print方法Print方法的一般格式如下:[對(duì)象名.]Print[Spc(n)|Tab(n)][][{,|;}]例如:PrintFormat(1234.5,"00000.00")PrintFormat(3.14159,"###.###")PrintFormat(3.14159,"##%")PrintFormat(3.14159,"$(###.##)")PrintFormat(12345.6,"###.##E+")PrintFormat(0.123,"###.###e-")PrintFormat(date,"mm-dd-yy")PrintFormat(date,"yy年mm月dd"),圖43例4.2執(zhí)行結(jié)果,,2.MsgBox函數(shù)和MsgBox方法函數(shù)形式:變量[%]=MsgBox(提示信息[,對(duì)話框類型][,標(biāo)題])(1)“標(biāo)題”和“提示信息”與InputBox函數(shù)中對(duì)應(yīng)的參數(shù)相同;(2)對(duì)話框類型由“按鈕+圖標(biāo)+缺省按鈕+模式”4項(xiàng)組成,是整型表達(dá)式,決定信息框按鈕數(shù)目、出現(xiàn)在信息框上的圖標(biāo)類型及操作模式如表4.1所示。,表4.1,,例如:i=Msgbox(“注意:你輸入的數(shù)據(jù)不正確”,2+48+0+0,“錯(cuò)誤提示”),結(jié)果如圖4.4所示。,第四章VisualBasic語言程序結(jié)構(gòu),4.2選擇結(jié)構(gòu)程序設(shè)計(jì)4.2.1IF語句1)If…Then語句(單分支結(jié)構(gòu))IfThen語句塊EndIf或:IfThen,圖4.5選擇結(jié)構(gòu)流程圖,,例4.4設(shè)密碼。用IF語句來判定輸入密碼的正確性。PrivateSubCommand1_Click()DimaAsString,bAsStringa="111111"b=InputBox("請(qǐng)輸入密碼:","密碼對(duì)話框")Ifa=bThenMsgBox("密碼正確")EndIfEndSub,,2)If…Then…Else語句(雙分支結(jié)構(gòu))格式1:IfThenElseEndIf格式2:IfThenElse,,例4.5計(jì)算下列分段函數(shù)的值分析:對(duì)于此分段函數(shù),由于包含X>=0和X=0Theny=(1-x)^2Elsey=x^2-1EndIfPrint"y=";yEndSub,,3)If…Then…ElseIf語句(多分支結(jié)構(gòu))使用形式:IfThenElseIfThen…[Else語句塊n+1]EndIf,,例4.6輸入一學(xué)生成績(jī),評(píng)定其等級(jí)。方法是:90~100分為“優(yōu)秀”,80~89分為“良好”,70~79分為“中等”,60~69分為“及格”,60分以下以為“不合格”。PrivateSubForm_Click()DimxAsIntegerx=Val(InputBox("請(qǐng)輸入成績(jī):"))Ifx>=90ThenPrint"優(yōu)秀"ElseIfx>=80ThenPrint"良好"ElseIfx>=70ThenPrint"中等"ElseIfx>=60ThenPrint"及格"ElsePrint"不及格"EndIfEndSub,第四章VisualBasic語言程序結(jié)構(gòu),4.2選擇結(jié)構(gòu)程序設(shè)計(jì)4.2.2SelectCase語句SelectCase條件表達(dá)式Case表達(dá)式列表1語句塊1Case表達(dá)式列表2語句塊2…[CaseElse語句塊n+1]EndSelect說明:與是同類型的,為下面3種形式之一:(1)一組枚舉表達(dá)式(用逗號(hào)分隔):例如,2,4,6,8。(2)表達(dá)式1To表達(dá)式2:例如,60to100。(3)Is關(guān)系運(yùn)算符表達(dá)式:例如,Is=0,x,-x)‘y是x的絕對(duì)值。,第四章VisualBasic語言程序結(jié)構(gòu),4.2選擇結(jié)構(gòu)程序設(shè)計(jì)4.2.4條件函數(shù)2)Choose函數(shù)語法格式:Choose(,[,….,])功能:根據(jù)的值來確定返回值列表中某個(gè)值。的值為1,返回,如果的值為2,返回,以此類推。例如:x=Val(InputBox("請(qǐng)輸入1-6之間整數(shù)"))PrintChoose(x,"red","yellow","blue","green","black","white")‘用數(shù)字表示顏色。,第四章VisualBasic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.3.1Do……loop循環(huán)1)形式1:(當(dāng)型循環(huán))Do[{While|Until}]語句塊[ExitDo]語句塊Loop2)形式2:(直到循環(huán))Do語句塊[ExitDo]語句塊Loop[{While|Until}],,,例4.8用輾轉(zhuǎn)相除法求兩個(gè)自然數(shù)的最大公約數(shù)(gcd)和最小公倍數(shù)(lcm)。PrivateSubForm_Click()Dimn%,m%,nm%,r%m=Val(InputBox("m="))n=Val(InputBox("n="))nm=n*mIfm0)m=nn=rr=mModnLoopPrint"最大公約數(shù)=",nPrint"最小公倍數(shù)=",nm/nEndSub,,用DoUntil…Loop循環(huán)來實(shí)現(xiàn)例4.8,程序代碼如下:PrivateSubForm_Click()Dimn%,m%,nm%,r%m=Val(InputBox("m="))n=Val(InputBox("n="))nm=n*mIfm0時(shí),初值終值;步長(zhǎng)=0時(shí),死循環(huán),循環(huán)次數(shù)計(jì)算公式為:Exitfor:退出循環(huán),執(zhí)行next后的下一條語句,,,例4.9編程計(jì)算:S=1+2+3+…+100PrivateSubForm_Click()DimS%,I%S=0累加前變量S為0ForI=1To100S=S+INextIPrint"S=";Format(S,"0000")EndSub,第四章VisualBasic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.3.3While…Wend循環(huán)使用格式如下:WhileWend說明:該語句的功能與DoWhile…Loop實(shí)現(xiàn)的循環(huán)完全相同。,,例4.11從鍵盤輸入一些字符數(shù)據(jù),對(duì)輸入的字符數(shù)據(jù)進(jìn)行計(jì)數(shù)。當(dāng)輸入的字符為“#”,停止計(jì)數(shù)并輸出結(jié)果。分析:因?yàn)檩斎氪螖?shù)不定,故不使用for循環(huán)。代碼如下:PrivateSubForm_click()DimcAsString,nAsIntegern=0c=InputBox("輸入字符:")WhileNot(c="#")n=n+1c=InputBox("輸入字符:")WendPrint"字符數(shù)是:";n;"個(gè)"EndSub,第四章VisualBasic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.3.4ForEach…Next循環(huán)語法格式:ForEach成員In數(shù)組語句塊[ExitFor]Next成員具體使用將在“數(shù)組”章節(jié)講解,第四章VisualBasic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.3.5循環(huán)嵌套—多重循環(huán)結(jié)構(gòu)如果在一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。,,例4.12打印九九乘法表。程序代碼如下:PrivateSubForm_Click()Dimi%,j%,jj$Fori=1To9Forj=1To9jj=iNextjPicture1.PrintNextiEndSub,,例4.13使用循環(huán)語句在窗體上輸出有*組成的簡(jiǎn)單圖形PrivateSubForm_Click()DimnAsInteger,i%,j%Cls清屏n=Val(Text1.Text)輸入組成圖形的行數(shù)Fori=1TonPrintTab(20);Forj=1ToiPrint"*";NextjPrintNextiEndSub,圖4.14例4.13運(yùn)行結(jié)果,第四章VisualBasic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.3.6循環(huán)的退出語句格式:ExitFor‘強(qiáng)制退出For……Next循環(huán)ExitDo‘強(qiáng)制退出Do……Loop循環(huán)例4.15用For……Next循環(huán)結(jié)構(gòu)計(jì)算1~100之和,當(dāng)和大于等于2000時(shí)終止循環(huán),并輸出實(shí)際循環(huán)的次數(shù)。,,PrivateSubCommand1_Click()Dims%,i%s=0累加前變量S為0Fori=1To100s=s+iIfs>=2000ThenExitForNextiLabel2.Caption=sLabel4.Caption=iEndSub,圖4.16例4.15運(yùn)行結(jié)果,第四章VisualBasic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.3.7幾種循環(huán)語句比較,第四章VisualBasic語言程序結(jié)構(gòu),4.4常用算法舉例4.4.1找最大值、最小值例4.17隨機(jī)產(chǎn)生10個(gè)100-200之間整數(shù),求最大值。程序運(yùn)行結(jié)果如圖4.17所示。分析:先產(chǎn)生一個(gè)隨機(jī)數(shù)假設(shè)這一個(gè)數(shù)是最大數(shù)(變量取名max),然后再產(chǎn)生一個(gè)隨機(jī)數(shù),與max比較,大者存入max,反復(fù)(循環(huán))操作產(chǎn)生隨機(jī)數(shù)、比較,這樣比較完每個(gè)數(shù)后,max中就放的是最大數(shù)了。,,PrivateSubForm_Click()DimIAsInteger,xAsInteger,maxAsIntegerRandomize初始化隨機(jī)數(shù)的種子數(shù)x=Int(Rnd*100+100)max=xForI=2To10Printx;x=Int(Rnd*100+100)Ifx>maxThenmax=xNextIPrintPrint"max=";maxEndSub,第四章VisualBasic語言程序結(jié)構(gòu),4.4常用算法舉例4.4.2素?cái)?shù)問題例4.18求200以內(nèi)的素?cái)?shù)。分析:判定某個(gè)數(shù)是否素?cái)?shù),然后是對(duì)于找某范圍內(nèi)的數(shù)據(jù)的判定,用2重循環(huán)來實(shí)現(xiàn):內(nèi)循環(huán)是判定某數(shù)是否素?cái)?shù),外循環(huán)一次列舉該范圍內(nèi)的每個(gè)數(shù)。判定素?cái)?shù)方法是:利用素?cái)?shù)定義,從2到n-1之間整數(shù)一次去除n,如果都不能整除,n是素?cái)?shù),反之,有一個(gè)除盡,n就不是素?cái)?shù)。,,PrivateSubForm_Click()Dimi%,j%,n%Form1.Caption="求200以內(nèi)的素?cái)?shù)"Print2,2是特例輸出n=1記素?cái)?shù)的個(gè)數(shù)Fori=3To200Step2Forj=2Toi-1IfiModj=0ThenExitForEndIfNextjIfj=iThen這個(gè)條件表示i一次也沒被除盡,是素?cái)?shù)Printi,n=n+1IfnMod5=0ThenPrintEndIfNextiEndSub,第四章VisualBasic語言程序結(jié)構(gòu),4.4常用算法舉例4.4.3窮舉法窮舉方法的實(shí)現(xiàn)主要依賴于以下兩個(gè)基本要點(diǎn):①搜尋可能值的范圍如何確定。②被搜尋可能值的判定方法。,,例4.19“百雞百錢”問題。“雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一;百錢買百雞,問雞翁、雞母、雞雛各幾何?”編寫程序,給出結(jié)果。分析:設(shè)x、y、z分別表示雞翁、雞母、雞雛的數(shù)目,根據(jù)題意,100錢最多買雞翁20只、買雞母33只,雞雛數(shù)為100-雞翁數(shù)-雞母數(shù),搜尋值得判定式為:5*x+3*y+(z/3)=100。,,程序代碼如下:PrivateSubform_Click()Dimx,y,zAsIntegerForx=1To20Fory=1To33z=100-x-yIf5*x+3*y+(z/3)=100ThenPrint"公雞,母雞,小雞的數(shù)目分別為:"Printx,y,zEndIfNextyNextxEndSub,第四章VisualBasic語言程序結(jié)構(gòu),4.4常用算法舉例4.4.4迭代法一個(gè)不斷地由變量的舊值按照一定的規(guī)律推出變量的新值的過程,迭代亦稱為遞推。迭代一般與三個(gè)因素有關(guān),它們是:①初始值,②迭代公式,③迭代結(jié)束條件(迭代次數(shù))。例4.21求菲波拉契(Fibonacci)數(shù)列。已知一對(duì)小兔出生一個(gè)月后變成一對(duì)成兔,兩個(gè)月后這對(duì)成兔就會(huì)生出一對(duì)小兔,三個(gè)月后這對(duì)成兔將生出第二對(duì)小兔,而第一對(duì)小兔又長(zhǎng)大變成一對(duì)成兔,即一月成熟,二月生育,如此類推。請(qǐng)編程求解一對(duì)小兔經(jīng)n月后將繁衍成多少對(duì)兔子?,,分析:設(shè)f1、f2和f3表示相鄰的3個(gè)裴波那契數(shù)據(jù)項(xiàng),根據(jù)題意有f1、f2的初始值為1,即迭代的初始條件為:f1=f2=1;迭代的公式為:f3=f1+f2。程序代碼如下:PrivateSubForm_Click()Dimf1,f2,f3,i,nAsIntegerf1=1:f2=1n=Text1.TextFori=3Tonf3=f1+f2f1=f2f2=f3圖4.22例4.22運(yùn)行結(jié)果NextiPrintPrintTab(5);"經(jīng)過"f3aFormat(x,"##.###")EndSub,,本章結(jié)束,謝謝!!,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- VB 程序設(shè)計(jì) VisualBasic 語言 程序結(jié)構(gòu)
鏈接地址:http://www.hcyjhs8.com/p-11800072.html