VB程序設(shè)計(jì)-循環(huán)結(jié)構(gòu)_第1頁(yè)
VB程序設(shè)計(jì)-循環(huán)結(jié)構(gòu)_第2頁(yè)
VB程序設(shè)計(jì)-循環(huán)結(jié)構(gòu)_第3頁(yè)
VB程序設(shè)計(jì)-循環(huán)結(jié)構(gòu)_第4頁(yè)
VB程序設(shè)計(jì)-循環(huán)結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

VisualBasic程序設(shè)計(jì)目錄前言第1講第2講第3講第4講第5講第6講第7講第8講第9講第10講第11講第12講第13講第14講第15講第16講回顧上一講學(xué)習(xí)的內(nèi)容多分支選擇結(jié)構(gòu)及使用注意事項(xiàng)If……Elseif……Else……EndifSelectcase……case……EndselectFor循環(huán)結(jié)構(gòu)練習(xí)題執(zhí)行下面程序后,問(wèn)循環(huán)次數(shù)和s的值。S=5Fori=2.6to4.9step0.6S=s+1Nexti第五章基本的控制結(jié)構(gòu)

(5學(xué)時(shí))5.1

順序結(jié)構(gòu)5.2

選擇結(jié)構(gòu)5.3

循環(huán)結(jié)構(gòu)5.4

其它輔助控制語(yǔ)句5.5常見(jiàn)錯(cuò)誤(順序、條件、循環(huán))判斷條件進(jìn)行循環(huán)While循環(huán) While<條件>

<循環(huán)體> wendDo循環(huán)例:設(shè)s=1×2×3×……×n,求s不大于4000時(shí)的最大的n。Do循環(huán)控制結(jié)構(gòu)Do……loop循環(huán):對(duì)于事先不知道循環(huán)次數(shù)的操作,使用Do循環(huán)方便有效。語(yǔ)法格式有四種:⑴Dowhile……loop語(yǔ)句dowhile<條件表達(dá)式><循環(huán)體>[exitdo]<循環(huán)體>loop條件循環(huán)體TFExitDo循環(huán)體⑵Dountil……loop語(yǔ)句

dountil<條件表達(dá)式><循環(huán)體>[exitdo]<循環(huán)體>loop當(dāng)條件為假時(shí),執(zhí)行循環(huán)體,為真,退出循環(huán)體。循環(huán)體最少執(zhí)行0次Do循環(huán)控制結(jié)構(gòu)條件循環(huán)體FTExitDo循環(huán)體⑶Do……loopwhile語(yǔ)句

do <循環(huán)體> [exitdo] <循環(huán)體>loopwhile<條件表達(dá)式>當(dāng)條件為真時(shí),繼續(xù)執(zhí)行循環(huán)體,為假,退出循環(huán)體。循環(huán)體至少執(zhí)行一次循環(huán)體條件TFExitDo循環(huán)體Do循環(huán)控制結(jié)構(gòu)⑷Do……loopuntil語(yǔ)句

do<循環(huán)體>[exitdo]<循環(huán)體>loopuntil<條件表達(dá)式>當(dāng)條件為假時(shí),繼續(xù)執(zhí)行循環(huán)體,為真,退出循環(huán)體。循環(huán)體至少執(zhí)行一次循環(huán)體條件FTExitDo循環(huán)體Do循環(huán)控制結(jié)構(gòu)例題:輸出1~20之間能被3整除的

所有整數(shù)及它們的和用For……Next循環(huán)實(shí)現(xiàn)用DoWhile……Loop循環(huán)實(shí)現(xiàn)用Do……LoopWhile循環(huán)實(shí)現(xiàn)用DoUntil……Loop循環(huán)實(shí)現(xiàn)多重循環(huán)把循環(huán)體內(nèi)不含有循環(huán)語(yǔ)句的循環(huán)叫單層循環(huán),把循環(huán)體內(nèi)又含有循環(huán)語(yǔ)句的循環(huán)叫多重循環(huán)(多層循環(huán)或嵌套循環(huán))在使用多重循環(huán)時(shí),要注意循環(huán)的完整性,一個(gè)循環(huán)必須完全包含在另一個(gè)循環(huán)的內(nèi)部,不能出現(xiàn)交叉現(xiàn)象。ExitforDoUntil<條件>LoopDowhile<條件>LoopNextForExitDoDowhile<條件>LoopDowhile<條件>LoopLoopDowhile<條件>例:求m=14,n=6

的最大公約數(shù)Ifm<nThent=mm=nn=tendifr=mmodnDoWhile(r<>0)

m=nn=rr=mmodnLoopPrint"最大公約數(shù)=",n

例7:用輾轉(zhuǎn)相除法求兩自然數(shù)m,n的最大公約數(shù)和最小公倍數(shù)求最大公約數(shù)的算法:⑴對(duì)于已知兩數(shù)m、n,使得m>n;⑵m除以n得余數(shù)r;⑶若r=0,則n為最大公約數(shù);否則執(zhí)行⑷;⑷m←n,n←r,再重復(fù)執(zhí)行⑵mnr1462

620m=m-nm>nn=n-mn>mm、n為公約數(shù)m=nDoWhilem<>nIfm>nThenm=m-nElsen=n-mEndIfLoopmn146

8626

2422輾轉(zhuǎn)相減法求最大公約數(shù)的算法:對(duì)于已知兩數(shù)m、n:⑴如果m>n則(m-n)→m,如果n>m則(n-m)→n;⑵m≠n,重復(fù)執(zhí)行⑴;若m=n,則m、n為最大公約數(shù)輾轉(zhuǎn)相減

Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti思考:打印左下三角或右上三角,程序如何改動(dòng)?例8打印九九乘法表Forj=1ToiForj=iTo91.在選擇結(jié)構(gòu)中缺少配對(duì)的結(jié)束語(yǔ)句對(duì)多行式的If塊語(yǔ)句,應(yīng)有相應(yīng)的EndIf語(yǔ)句結(jié)束。2.多項(xiàng)選擇ElseIf關(guān)鍵字的書(shū)寫(xiě)和多個(gè)條件表達(dá)式的次序問(wèn)題,見(jiàn)例

ElseIf

不要寫(xiě)成ElseIf

3.SelectCase語(yǔ)句的使用

SelectCase后不能出現(xiàn)多個(gè)變量;Case子句后不能出現(xiàn)變量和邏輯表達(dá)式。見(jiàn)例選擇結(jié)構(gòu)應(yīng)用中的常見(jiàn)錯(cuò)誤1.不循環(huán)或死循環(huán)的問(wèn)題

主要是循環(huán)條件、循環(huán)初值、循環(huán)終值、循環(huán)步長(zhǎng)的設(shè)置有問(wèn)題。2.循環(huán)結(jié)構(gòu)中缺少配對(duì)的結(jié)束語(yǔ)句

For缺少配對(duì)的Next3.循環(huán)嵌套時(shí),內(nèi)外循環(huán)交叉4.累加、連乘時(shí),存放累加、連乘結(jié)果的變量賦初值問(wèn)題

⑴在一重循環(huán)中,存放累加、連乘結(jié)果的變量賦初值應(yīng)在循環(huán)語(yǔ)句前。⑵多重循環(huán)這要視具體問(wèn)題分別對(duì)待。循環(huán)應(yīng)用中的常見(jiàn)錯(cuò)誤四.其他輔助控制語(yǔ)句1.GoTo語(yǔ)句形式:GoTo{標(biāo)號(hào)|行號(hào)}作用:無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語(yǔ)句。

標(biāo)號(hào)是一個(gè)字符序列,行號(hào)是一個(gè)數(shù)字序列。2.Exit語(yǔ)句ExitFor、ExitDo、ExitSub、ExitFunction等。作用:退出某種控制結(jié)構(gòu)的執(zhí)行。3.End語(yǔ)句多種形式:End、EndIf、EndSelect、EndWith、EndType、EndFunction、EndSub

等。作用:End結(jié)束一個(gè)程序的運(yùn)行;其余表示某個(gè)結(jié)構(gòu)的結(jié)束,與對(duì)應(yīng)的結(jié)構(gòu)語(yǔ)句配對(duì)出現(xiàn)。語(yǔ)句形式如下:

With

對(duì)象

語(yǔ)句塊

EndWith作用:對(duì)某個(gè)對(duì)象執(zhí)行一系列的操作,而不用重復(fù)指出對(duì)象的名稱。Label1.Height=2000Label1.Width=2000Label1.FontSize=22Label1.Caption="ThisisMyLabel"等價(jià)4.With語(yǔ)句WithLabel1.Height=2000.Width=2000.FontSize=22.Caption="ThisisMyLabel"EndWith屬性前的圓點(diǎn)不能省略五、常用算法(一)算法:是對(duì)某個(gè)問(wèn)題求解過(guò)程的描述。1.累加、連乘例:1~100的5或7的倍數(shù)的和

Sum=0Fori=1To100IfiMod5=0OriMod7=0Then

Sum=Sum+iEndIfNextiPrintSum例:3~10的乘積

t=1Fori=3To10

t=t*iNextiPrintt思考:若把循環(huán)體前面置各變量初值的語(yǔ)句放在循環(huán)體內(nèi),程序運(yùn)行時(shí)會(huì)產(chǎn)生什么情況?該例題涉及兩個(gè)問(wèn)題:⑴用循環(huán)結(jié)構(gòu)求級(jí)數(shù)和的問(wèn)題。本例根據(jù)某項(xiàng)值的精度來(lái)控制循環(huán)的結(jié)束與否。⑵累加:e=e+t循環(huán)體外對(duì)累加和的變量清零e=0

連乘:n=n*i循環(huán)體外對(duì)連乘積變量置1n=1例4.14

求自然對(duì)數(shù)e的近似值要求:誤差小于0.00001,近似公式為:PrivateSubForm_Click()Dimi%,n&,t!,e!e=0:n=1‘

e存放累加和、n存放階乘

i=0:t=1‘i計(jì)數(shù)器、t第i項(xiàng)的值

DoWhilet>0.00001e=e+t:i=i+1

累加、連乘

n=n*i:t=1/nLoopPrint"計(jì)算了";i;"項(xiàng)的和是";eEndSub例4.14

程序代碼要求:誤差小于0.00001判別某數(shù)m是否為素?cái)?shù)最簡(jiǎn)單的方法是:

對(duì)于m

從i=2,3,…,m-1判別m能否被i整除,只要有一個(gè)能整除,m不是素?cái)?shù),否則m是素?cái)?shù)。求100以內(nèi)的素?cái)?shù)

Form=2To100

Fori=2Tom-1

If(mModi)=0ThenGoTo

NotNextMNextiPrintm

NotNextM:Nextmm是否為素?cái)?shù)求100以內(nèi)的素?cái)?shù)思考:此例用GoTo語(yǔ)句對(duì)非素?cái)?shù)不再判斷,若不用GoTo語(yǔ)句,如何修改程序?見(jiàn)例4.152.求素?cái)?shù)3.窮舉法“窮舉法”也稱為“枚舉法”或“試湊法”。即將可能出現(xiàn)的各種情況一一測(cè)試,判斷是否滿足條件,一般采用循環(huán)來(lái)實(shí)現(xiàn)。

例4.16:百元買(mǎi)百雞問(wèn)題。假定小雞每只5角,公雞每只2元,母雞每只3元?,F(xiàn)在有100元錢(qián)要求買(mǎi)100只雞,編程列出所有可能的購(gòu)雞方案。設(shè)母雞、公雞、小雞各為x、y、z只,根據(jù)題目要求,列出方程為:

x+y+z=100

3x+2y+0.5z=100三個(gè)未知數(shù),兩個(gè)方程,此題有若干個(gè)解。采用“窮舉法”,把每一種情況都考慮到。方法一:最簡(jiǎn)單三個(gè)未知數(shù)利用三重循環(huán)來(lái)實(shí)現(xiàn)。方法二:從三個(gè)未知數(shù)的關(guān)系,利用兩重循環(huán)來(lái)實(shí)現(xiàn)。4.遞推法“遞推法”又稱為“迭代法”,其基本思想是把一個(gè)復(fù)雜的計(jì)算過(guò)程轉(zhuǎn)化為簡(jiǎn)單過(guò)程的多次重復(fù)。每次重復(fù)都從舊值的基礎(chǔ)上遞推出新值,并由新值代替舊值。例4.17

猴子吃桃子。小猴在一天摘了若干個(gè)桃子,當(dāng)天吃掉一半多一個(gè);第二天接著吃了剩下的桃子的一半多一個(gè);以后每天都吃尚存桃子的一半零一個(gè),到第7天早上要吃時(shí)只剩下一個(gè)了,問(wèn)小猴那天共摘下了多少個(gè)桃子?例4.17

分析這是一個(gè)“遞推”問(wèn)題,先從最后一天推出倒數(shù)第二天的桃子,再?gòu)牡箶?shù)第二天的桃子推出倒數(shù)第三天的桃子……。設(shè)第n天的桃子為Xn,那么它是前一天的桃子數(shù)。例:隨機(jī)產(chǎn)生10個(gè)100~200之間的數(shù),求最大值。PrivateSubCommand1_Click()

Max=100Fori=1To10x=Int(Rnd*101+100)Printx;

Ifx>MaxThenMax=xNextiPrintPrint"最大值=";MaxEndSub5.最小、最大值在若干個(gè)數(shù)中求最大值,一般先假設(shè)一個(gè)較小的數(shù)為最大值的初值,若無(wú)法估計(jì)較小的值,則取第一個(gè)數(shù)為最大值的初值;然后將每一個(gè)數(shù)與最大值比較,若該數(shù)大于最大值,將該數(shù)替換為最大值;依次逐一比較。例4.18實(shí)際應(yīng)用,求最短殘料。有一根長(zhǎng)度為321米的鋼材料,要將它截取成兩種規(guī)格a、b的長(zhǎng)度分別為17米和27米的短料,每種至少1段,問(wèn)分隔成a,b各多少段后,剩余的殘料r最少?分析,該題利用“試

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論