




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
概述單擊窗體,要求在窗體上顯示6行星號分析:要求顯示的信息是每行是由16個星號所構(gòu)成的字符串,所以可以通過連續(xù)6次調(diào)用窗體的Print方法實現(xiàn)圖形的顯示PrivateSubForm_Click()Print"****************"Print"****************"Print"****************"Print"****************"Print"****************"Print"****************"EndSub若要求顯示10行或更多行這樣的信息若打印信息的行數(shù)要求是由用戶決定專門用于進行重復(fù)操作的語句結(jié)構(gòu)
概述所謂循環(huán)結(jié)構(gòu),表示在執(zhí)行語句時,需要對其中的某個或某部分語句重復(fù)執(zhí)行多次。對于此類情況可以利用各種循環(huán)結(jié)構(gòu)來實現(xiàn)。循環(huán)結(jié)構(gòu)可以分為For循環(huán)、Do循環(huán)和While循環(huán)語句結(jié)構(gòu)。
循環(huán)For循環(huán)Do循環(huán)While循環(huán)For…NextForEach…Next前測型循環(huán)后測型循環(huán)當(dāng)型循環(huán)直到型循環(huán)當(dāng)型循環(huán)直到型循環(huán)8.1Do循環(huán)Do循環(huán)可以分為前測型循環(huán)和后測型循環(huán)兩種結(jié)構(gòu)。前測型循環(huán)結(jié)構(gòu)語法格式:
True循環(huán)條件循環(huán)體False格式1(當(dāng)型)
DoWhile
循環(huán)條件循環(huán)體
LoopFalse循環(huán)條件循環(huán)體True
格式2(直到型)
DoUntil
循環(huán)條件循環(huán)體
Loop當(dāng)型循環(huán)是當(dāng)循環(huán)條件為TRUE時進入循環(huán);直到型則是為FALSE進入循環(huán)。8.1Do循環(huán)Do循環(huán)可以分為前測型循環(huán)和后測型循環(huán)兩種結(jié)構(gòu)。后測型循環(huán)結(jié)構(gòu)語法格式:
格式1(當(dāng)型)Do循環(huán)體LoopWhile
循環(huán)條件格式2(直到型)
Do循環(huán)體
LoopUntil
循環(huán)條件循環(huán)條件循環(huán)體TrueFalse循環(huán)條件循環(huán)體False
True前測型循環(huán)是先判斷循環(huán)條件,循環(huán)體執(zhí)行次數(shù)≥0;后測型循環(huán)是先執(zhí)行循環(huán)體,循環(huán)體執(zhí)行次數(shù)≥1
。8.1Do循環(huán)單擊窗體,要求在窗體上顯示6行星號前測型當(dāng)型循環(huán):將上面的代碼改為前測型直到型循環(huán)、后測型當(dāng)型循環(huán)和后測型直到型循環(huán)。DimiAsInteger'定義計數(shù)器變量i來記錄目前已輸出的行數(shù)
i=0
DoWhile
i<6
'當(dāng)輸出行數(shù)未達(dá)到6行,反復(fù)執(zhí)行下面語句
Print"****************"i=i+1
'每輸出一行信息,計數(shù)器i累加1
Loop
'返回到DoWhile行EndSub
DoUntil
i>5
Print"****************"i=i+1
Loop
Do
Print"****************"i=i+1
Loopwhile
i<6
Do
Print"****************"i=i+1
LoopUntili>5
Val(InputBox("請輸入行數(shù):"))注意:在循環(huán)體中,至少要有一條語句使得循環(huán)趨結(jié)束,使循環(huán)語句在有限的時間內(nèi)執(zhí)行完畢,否則將會出現(xiàn)“死循環(huán)”。例:求S=1+(1+2)+…+(1+2+3+…+100)的值。
編寫代碼:PrivateSubCommand1_Click()
DimsAsLong,nAsInteger,kAsIntegerLabel1.Caption="s=1+(1+2)+(1+2+3)+...(1+2+3+...100)=?"s=0:n=0:k=1
Don=n+k’求“小和”,即求s中的每一項的和。
s=s+n’求“大和”,即求s的累加和。
k=k+1’“大和”的項數(shù)(亦即“小和”中的末項值)。
LoopWhilek<=100Label2.Caption="s=1+(1+2)+(1+2+3)...+(1+2+3+...+100)="&sEndSub8.1
Do循環(huán)Untilk>1008.1Do循環(huán)設(shè)計采用歐幾里德算法求解兩個自然數(shù)的最大公約數(shù)的程序算法分析:“歐幾里德算法”①輸入兩個自然數(shù)m、n②求m除以n的余數(shù)r③m←n④n←r⑤若r≠0,則重復(fù)執(zhí)行②③④(循環(huán)),否則轉(zhuǎn)⑥⑥輸出m和n的最大公約數(shù)m輸入兩個自然數(shù)m,nr=mModnm=nn=rr<>0輸出最大公約數(shù)m開始結(jié)束FalseTrue8.1Do循環(huán)設(shè)計采用歐幾里德算法求解兩個自然數(shù)的最大公約數(shù)的程序界面設(shè)計:利用文本框來接收數(shù)據(jù)和顯示結(jié)果,利用命令按鈕的單擊事件完成最大公約數(shù)的計算。False輸入兩個自然數(shù)m,nr=mModnm=nn=rr<>0輸出最大公約數(shù)m開始結(jié)束TruePrivateSubCommand1_Click()
DimmAsInteger,nAsInteger,rAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)EndSubPrivateSubCommand2_Click()
Text1.Text=""Text2.Text=""Text3.Text=""EndSubPrivateSubCommand3_Click()
EndEndSubPrivateSubCommand1_Click()
DimmAsInteger,nAsInteger,rAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)Dor=mModnm=nn=rLoopWhiler<>0Text3.Text=mEndSubPrivateSubCommand2_Click()
Text1.Text=""Text2.Text=""Text3.Text=""EndSubPrivateSubCommand3_Click()EndEndSub8.1Do循環(huán)設(shè)計一個小程序,能夠?qū)崿F(xiàn)接收若干的專家的考評打分,輸入-1表示打分結(jié)束,最后計算出平均考評分界面設(shè)計:由于要接收的數(shù)據(jù)無法預(yù)知其個數(shù),所以不適合利用文本框來接收數(shù)據(jù),所以采用輸入函數(shù)InputBox,結(jié)合循環(huán)實現(xiàn)利用窗體的單擊事件完成最大公約數(shù)的計算,并在窗體上而顯示結(jié)果輸入一個專家打分Mark總分累加Total=Total+Mark輸出平均考評分Average開始結(jié)束FalseTrue總考評分清零Total=0Mark<>-1輸入下一個專家打分MarkAverage=Total/Num考評分個數(shù)清零Num=0考評分個數(shù)累加Num=Num+1PrivateSubForm_Click()
DimTotalAsSingle,markAsSingle,averageAsSingleDimNumAsIntegerTotal=0:Num=0
mark=Val(InputBox("請輸入第"&Num+1&"個專家評分(-1表示結(jié)束輸入):"))DoWhilemark<>-1Total=Total+markNum=Num+1
mark=Val(InputBox("請輸入第"&Num+1&"個專家評分(-1表示結(jié)束輸入):"))Loopaverage=Total/NumMsgBoxNum&"個專家的平均分為:"&averageEndSub習(xí)題1.依次在輸入5、4、3、2、1、-1,輸出結(jié)果是?
PrivateSubCommand_Click()
X=0DoUntilx=-1a=Val(InputBox(“請輸入A的值”))b=Val(InputBox(“請輸入B的值”))x=Val(InputBox(“請輸入X的值”))a=a+b+xprintaLoopEndSub輸出兩個結(jié)果,分別是12和2習(xí)題2.依次在輸入5、4、3、2、1、-1,輸出結(jié)果為_______PrivateSubCommand_Click()
X=0DoUntilx=-1a=Val(InputBox(“請輸入A的值”))b=Val(InputBox(“請輸入B的值”))x=Val(InputBox(“請輸入X的值”))a=a+b+xLoopprintaEndSub輸出結(jié)果只有一個,23.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是()
PrivateSubForm_Click()
s=0Dos=(s+1)*(s+2)Number=Number+1LoopUntils>=30PrintNumber;sEndSubA)01B)3030C)430D)3182習(xí)題4.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是()
PrivateSubForm_Click()
b=1a=2DoWhileb<10b=2*a+bLoopPrintbEndSubA)13B)17C)21D)33習(xí)題習(xí)題5.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是
PrivateSubForm_Click()
a=100Dos=s+aa=a+1LoopWhilea>111PrintaEndSub結(jié)果:a=1016.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是_____PrivateSubForm_Click()
s=0i=1DoWhilei<=100If(i\5)*5=iThens=s+1i=i+1EndIfLoopPrintsEndSub結(jié)果:死循環(huán)習(xí)題7.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是____PrivateSubForm_Click()
s=0i=1DoWhilei<=100If(i\5)*5=iThens=s+1EndIfi=i+1LoopPrintsEndSub結(jié)果:s=20習(xí)題8.2While循環(huán)語法格式:
While
循環(huán)條件
循環(huán)體
Wend這種結(jié)構(gòu)使用完全類似于Do-Loop的當(dāng)型循環(huán)(格式1),表示當(dāng)循環(huán)條件為True時,反復(fù)執(zhí)行循環(huán)體,直到循環(huán)條件為False為止。例如:求S=1+(1+2)+…(1+2+…+100)的值。程序代碼:PrivateSubCommand_Click()Dimsaslong,nasInteger,kasIntegers=0:n=0:k=1Whilek<=100n=n+k:s=s+n:k=k+1WendLabel2.Caption=“1+(1+2)+…(1+2+…+100)=”&s語法格式如下:
For循環(huán)變量=初值to終值[step步長]
執(zhí)行語句
Next循環(huán)變量8.3For…Next循環(huán)Truei<=終值循環(huán)體Falsei=i+步長控制變量i=初值注意:步長可以為正、負(fù),也可以是整數(shù)或小數(shù)。若省略,默認(rèn)值為1。當(dāng)步長為正數(shù)時,終值>初值;為負(fù)數(shù)時,終值<初值。Next表示循環(huán)控制變量取下一個值,即:i=i+步長For循環(huán)的循環(huán)次數(shù)由循環(huán)變量的初值、終值和步長決定:
Int((終值-初值)/步長)+1循環(huán)次數(shù)的一般計算公式:
Int((終值-初值)/步長)+1例如:ForI=2to18step3 c=c+1
NextI
上述For的循環(huán)次數(shù)
=Int((18-2)/3)+1=6第幾次循環(huán)I沒有進行循環(huán)時215283114145176208.3
For…Next語句循環(huán)次數(shù)的兩種特殊情況:初值、終值和步長表達(dá)式中所包含的變量在循環(huán)體內(nèi)被改變,也不會影響循環(huán)次數(shù)。8.3
For…Next語句例如:c=18
ForI=2tocstep3c=c+1
NextI第幾次循環(huán)cI未循環(huán)時2152831141451762018192021222324說明:代碼段中雖然變量c在循環(huán)體內(nèi)改變,但循環(huán)控制變量I的終值依舊為18,并未改變,因此循環(huán)次數(shù)=6當(dāng)循環(huán)變量在循環(huán)體內(nèi)被重新賦值,則會影響和改變循環(huán)次數(shù)。8.3
For…Next語句例如:c=18
ForI=2to18step3c=c+1I=I+2
NextI說明:循環(huán)體中循環(huán)控制變量I被改變,循環(huán)次數(shù)由原來的6次變?yōu)?次。第幾次循環(huán)cI未循環(huán)時21429314419181920212271217228.3For…Next循環(huán)For循環(huán)實現(xiàn):單擊窗體,要求在窗體上顯示6行星號分析:循環(huán)體:Print"****************",循環(huán)變量I表示輸出行,從1變化到6,即循環(huán)變量I的初值為1,終值為6,步長為1,循環(huán)次數(shù)為6PrivateSubForm_Click()DimIAsInteger'定義一個循環(huán)變量I來控制輸出的行數(shù)
'當(dāng)輸出行數(shù)沒有超過6行,就反復(fù)執(zhí)行下面的語句ForI=1To6'步長為1,可省略Step1Print"****************"NextI'完成I根據(jù)步長完成遞增,即I=I+1,并返回到For行EndSub習(xí)題1.PrivateSubForm_Click()ForI=7to90step5printINextIEndSub上述程序共執(zhí)行執(zhí)行循環(huán)體的次數(shù)是()
A)14B)15C)16D)172.在窗體上放置一個命令按鈕,然后編寫如下事件過程:
PrivateSubCommand1_Click()x=5Fori=1to20Step2x=x+i\5NextiPrintxEndSub程序運行后,單擊命令按鈕,輸出結(jié)果為()A)21B)22C)23D)24習(xí)題3.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是()
PrivateSubForm_Click()E=1:F=1Forj=1To3E=E+F:F=F+ENextj PrintE;FEndSubA)66B)58C)1321D)3455習(xí)題4.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是()
PrivateSubForm_Click()Forj=1To15a=a+jMod3NextjPrintaEndSubA)1B)15C)90D)120習(xí)題5.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是()
PrivateSubForm_Click()Forj=1To3PrintTab(3*j);(2*j-1)*(2*j-1)NextjPrintEndSubA)B)
C)D)
;?若print語句后有分號,將如何輸出有分號的輸出結(jié)果習(xí)題6.運行下列程序,單擊窗體,則執(zhí)行結(jié)果是()
PrivateSubForm_Click()Forj=1To10a=a+j\3+jMod3NextjPrintaEndSubA)20B)25C)30D)35習(xí)題8.4循環(huán)嵌套無論是Do循環(huán),還是For-Next循環(huán),都可以在大循環(huán)中套小循環(huán)以嵌套方式使用,而且允許不同類型的循環(huán)相互嵌套使用。嵌套的層數(shù)沒有具體限制,但必須注意:每一個循環(huán)必須有一個唯一的循環(huán)控制變量(不能同名);內(nèi)層的小循環(huán)一定要完整地被包含在外層的大循環(huán)之內(nèi),不得相互交叉。Fori=1To9
Forj=1To9
循環(huán)體
NextjNexti8.4循環(huán)嵌套用循環(huán)實現(xiàn)打印九九乘法表。PrivateSubform_Click()
Fori=1To9Forj=1ToiPrinti&"*"&j&"="&i*j&""NextjNextiEndSub8.4循環(huán)嵌套用循環(huán)實現(xiàn)打印九九乘法表。PrivateSubform_Click()
Fori=1To9Forj=1ToiPrinti&"*"&j&"="&i*j&"";NextjNextIEndSub8.4循環(huán)嵌套用循環(huán)實現(xiàn)打印九九乘法表。PrivateSubform_Click()
Fori=1To9Forj=1ToiPrinti&"*"&j&"="&i*j&"";NextjPrintNextIEndSub8.4循環(huán)嵌套用循環(huán)實現(xiàn)打印九九乘法表。PrivateSubform_Click()
Fori=1To9Forj=1ToiPrintTab((j-1)*7+2);i&"*"&j&"="&i*j&"";NextjPrintNextIEndSub常用算法介紹累加累乘迭代法素數(shù)問題窮舉法求最大值或最小值問題例題:求1+2+3…+n分析:求多項數(shù)據(jù)之和,首先得設(shè)置一個累加器sum,存放累加結(jié)果。根據(jù)一般人們求和的步驟,多個數(shù)據(jù)累加的過程如下:sum=0sum=sum+1sum=sum+2sum=sum+3……sum=sum+n累
加求多項數(shù)據(jù)之和,整個累加過程一直在重復(fù)執(zhí)行sum=sum+i,一共重復(fù)n次。例題:求1+2+3…+n程序代碼設(shè)計:累
加PrivateSubForm_Click()DimsumAsInteger,iAsIntegern=Val(InputBox("請輸入累加的終值n:"))sum=0'累加器清零
Fori=1Ton sum=sum+i'累加
NextiPrint"1+...+";n;"=";sumEndSub求1~n之間所有的偶數(shù)之和例題:求10!程序代碼設(shè)計:累
乘PrivateSubForm_Click()
DimxAsLongx=1Fori=1To10x=x*iNextiMsgBox"10!的值為:"&xEndSub求最大值或最小值問題求班級學(xué)生某一門課成績的最高分這就是一個求最大值的問題。先假設(shè)第一個成績就是班級最高分,然后從第二個成績開始依次與假設(shè)的最高分比較,若有高于它的,則更新最高分,否則繼續(xù)下一個成績的比較,直至最后一個成績
PrivateSubform_Click()
DimgradeAsSingleMax=0Fori=1To2'假設(shè)班級人數(shù)為20人grade=Val(InputBox("請輸入第"&i&"個學(xué)生的成績:"))Ifgrade>MaxThenMax=gradeNextiPrintPrint"最高分為";MaxEndSub迭代法求多項式的值,直到最后一項
的絕對值小于10-6
分析:方案2:迭代法——通過找出前后累加項之間的關(guān)聯(lián),在前一次累加項的基礎(chǔ)上遞推出后一個累加項,從而實現(xiàn)t的構(gòu)造迭代法求多項式的值,直到最后一項
的絕對值小于10-6PrivateSubForm_Click()
n=1:t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村土地流轉(zhuǎn)風(fēng)險評估與保障協(xié)議
- 無人駕駛技術(shù)投資協(xié)議
- 汽車租賃長租合同
- 公司股份改制方案設(shè)計報告
- 農(nóng)村綠化景觀改造施工協(xié)議
- 水務(wù)工程聯(lián)合運營合作協(xié)議
- 小英雄雨來成長征文
- 國際貿(mào)易市場走勢預(yù)測分析表
- 迪士尼動畫海洋奇緣觀后感
- 高考數(shù)學(xué)專題06四邊形的綜合問題測試題
- 高中主題班會 悟哪吒精神做英雄少年-下學(xué)期開學(xué)第一課主題班會課件-高中主題班會課件
- 2025電力物資檢儲配一體化建設(shè)技術(shù)導(dǎo)則
- 新學(xué)期 開學(xué)第一課 主題班會課件
- 2025年協(xié)議離婚夫妻模板
- 福建省龍巖市2024-2025學(xué)年九年級上學(xué)期期末語文試題(解析版)
- 2025-2030年中國高爾夫產(chǎn)業(yè)規(guī)模分析及投資前景規(guī)劃研究報告
- 民法典合同編講座
- DBJ51-T 198-2022 四川省既有民用建筑結(jié)構(gòu)安全隱患排查技術(shù)標(biāo)準(zhǔn)
- 《干細(xì)胞及其應(yīng)用》課件
- 課題申報書:生成式人工智能提升中小學(xué)教師數(shù)字素養(yǎng)的路徑探究
- 臨床婦產(chǎn)題庫+參考答案
評論
0/150
提交評論