版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
7.7程序示例例7.4例7-5:求三個(gè)正整數(shù)的最小公倍數(shù).方法:(1)編寫一個(gè)求兩個(gè)數(shù)的最小公倍數(shù)的函數(shù)lcm(2)首先調(diào)用lcm函數(shù),求出任意兩個(gè)數(shù)的最小公倍數(shù),然后再次調(diào)用lcm函數(shù),求出前兩個(gè)數(shù)的最小公倍數(shù)與第三個(gè)數(shù)的最小公倍數(shù).求兩個(gè)數(shù)的最小公倍數(shù)算法:tem=mdowhiletemmodn<>0tem=tem+mloopprintm;"和";n;"的最小公倍數(shù)是";tem由循環(huán)編寫出函數(shù)過(guò)程PrivateFunctionlcm(ByValmAsInteger,ByValnAsInteger)Dimtem%tem=mDoWhiletemModn<>0tem=tem+mLooplcm=temEndFunction求最小公倍數(shù)函數(shù)函數(shù)名=表達(dá)式,給函數(shù)賦值PrivateSubCommand1_Click()DimaAsInteger,bAsInteger,lAsLong,cAsIntegera=Text1b=Text2c=Text3l=lcm(lcm(a,b),c)Text4=lEndSub函數(shù)嵌套調(diào)用:求三個(gè)數(shù)的最小公倍數(shù)調(diào)用程序PrivateSubCommand1_Click()Dimnumber(10)AsInteger,iAsIntegerRandomizeFori=1To10number(i)=Int(Rnd*100)+1Text1=Text1&Str(number(i))NextiCallbubble_sort(number)
Fori=1To10Text2=Text2&Str(number(i))NextiEndSub調(diào)用過(guò)程生成數(shù)組輸出例7-8冒泡法排序。(要求程序中必須包含一個(gè)通用過(guò)程)PrivateSubBubble_Sort(Sort()AsInteger)DimIAsInteger,TemAsIntegerFori=1toubound(sort)-1forj=1toubound(sort)-iIfSort(j)>Sort(j+1)ThenTem=Sort(j)Sort(j)=Sort(j+1)Sort(j+1)=TemEndIfNextjNextiEndSub書上的寫法:PrivateSubBubble_Sort(Sort()AsInteger)DimIAsInteger,TemAsIntegerDimUbAsInteger,SwitchAsBooleanUb=UBound(Sort)
Switch=TrueDoWhileSwitchSwitch=FalseUb=Ub-1ForI=1ToUbIfSort(I)>Sort(I+1)ThenSwitch=TrueTem=Sort(I)Sort(I)=Sort(I+1)Sort(I+1)=TemEndIfNextILoopEndSub冒泡法排序DimnAsInteger,numAsLong
PrivateSubCommand1_Click()DimchAsString,iAsIntegerDimchar(15)AsStringDimbin()AsStringFori=0To9char(i)=Str(i)NextiFori=0To5char(10+i)=Chr$(Asc("A")+i)NextiPrintReDimbin(1)Calltrans(bin,char)Fori=UBound(bin)To1Step-1ch=ch+bin(i)NextiText3.Text=ch
EndSub定義窗體級(jí)變量在窗體的所有過(guò)程內(nèi)都有效把char數(shù)組定義為16個(gè)元素對(duì)應(yīng)余數(shù)0—9,A--E輸出轉(zhuǎn)換后的結(jié)果,倒取余[例7-9]把一個(gè)任意十進(jìn)制正整數(shù)轉(zhuǎn)換成N進(jìn)制數(shù)(N<=16)調(diào)用PrivateSubTrans(Vary()AsString,St()AsString)DimRAsInteger,KAsIntegerK=0DoUntilNum=0R=NumModNK=K+1ReDimPreserveVary(K)Vary(K)=St(R)Num=Num/NLoopEndSub進(jìn)制轉(zhuǎn)換的通用過(guò)程:除N倒取余,直到商為0[例7-11]編寫一個(gè)遞歸函數(shù),求兩個(gè)整數(shù)的最大公約數(shù)。采用循環(huán)來(lái)求兩數(shù)最大公約數(shù)PrivateSubCommand1_Click()Dimm,n,rAsLongm=Val(Text1.Text)n=Val(Text2.Text)Ifm<1Orn<1ThenText3.Text="數(shù)據(jù)錯(cuò)誤!"ElseDor=mModnm=nn=rLoopUntilr=0Text3.Text=CStr(m)EndIfEndSub用遞歸思想編寫求最大公約數(shù)函數(shù)PrivateFunctionGcd(ByValXAsLong,ByValYAsLong)DimRAsLongR=XModYIfR=0ThenGcd=YElseX=YY=RGcd=Gcd(X,Y)EndIfEndFunction遞歸邊界條件DimmAsLong,nAsLongPrivateSubCommand1_Click()DimgcdvalueAsLongIfm<>0Andn<>0Thengcdvalue=gcd(m,n)Text3.Text=Str(gcdvalue)EndIfEndSubm,n是模塊級(jí)變量函數(shù)調(diào)用語(yǔ)句PrivateSubText1_Change()m=Val(Text1.Text)EndSubPrivateSubText2_Change()n=Val(Text2.Text)EndSub在Text1_Change事件中給m,n賦值[例7-12]編寫程序,驗(yàn)證大于5的奇數(shù)可以表示成三個(gè)素?cái)?shù)的和。
1.判斷1個(gè)數(shù)是否是素?cái)?shù)的通用函數(shù)(掌握)PrivateFunctionprime(nAsInteger)AsBooleanDimiAsIntegerprime=FalseFori=2ToSqr(n)IfnModi=0ThenExitFunctionNextiprime=TrueEndFunction函數(shù)值結(jié)果為邏輯型在函數(shù)體內(nèi)用函數(shù)名=表達(dá)式(或值)給函數(shù)1個(gè)函數(shù)值提前結(jié)束函數(shù)過(guò)程3、求出N以內(nèi)的素?cái)?shù)的通用過(guò)程編寫PrivateSubprime(A()AsInteger,NAsInteger)DimiAsInteger,IdxAsIntegerDimJAsIntegerFori=2ToNForJ=2ToSqr(i)IfiModJ=0ThenExitForNextJIfJ>Sqr(i)ThenIdx=Idx+1ReDimPreserveA(Idx)A(Idx)=iEndIfNextIEndSub數(shù)組做形參對(duì)2-n以內(nèi)的數(shù)判斷,如果是素?cái)?shù),則把它放到數(shù)組a中
思路:先求出該奇數(shù)以內(nèi)的素?cái)?shù),然后用窮舉法判斷該奇數(shù)是否可以表達(dá)成3個(gè)素?cái)?shù)之和。(注:這3個(gè)素?cái)?shù)可以出現(xiàn)重復(fù)的,比如7=2+2+3)例7-12代碼OptionExplicitOptionBase1PrivateSubCommand1_Click()DimP()AsInteger,NAsInteger,LAsIntegerDimIAsInteger,JAsInteger,kAsInteger,FlgAsBooleanN=InputBox(“輸入一個(gè)大于5的奇數(shù)!")callprime(P,n)L=UBound(P)ForI=1ToLForJ=1ToLFork=1ToLIfP(I)+P(J)+P(k)=NThenPrintN;"=";P(I);"+";P(J);"+";P(k)Flg=TrueExitForEndIfNextkIfFlgThenExitForNextJIfFlgThenExitForNextIEndSub注意此兩句代碼順序不能顛倒百元買百雞問(wèn)題P是素?cái)?shù)數(shù)組,P(I)等都是數(shù)組元素。例7-13:親密對(duì)數(shù)PrivateSubCommand1_Click()DimiAsInteger,sum1AsInteger,sum2AsIntegerFori=1To5000Callsum_factors(i,sum1)Callsum_factors(sum1,sum2)Ifi=sum2Andi<>sum1ThenText1=Text1&i&","&sum1&vbCrLfEndIfnextiEndSubPrivateSubsum_factors(ByValnAsInteger,sumAsInteger)DimiAsIntegersum=0Fori=1Ton-1IfnModi=0Thensum=sum+iEndIfNextiEndSub親密對(duì)數(shù)的定義且排除了因子和等于本身的數(shù)據(jù)[例7-7]利用級(jí)數(shù)
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026福建廈門市第三幼兒園招聘1人考試備考試題及答案解析
- 2026廣東茂名市信宜市選聘市外教師21人考試參考題庫(kù)及答案解析
- 水下機(jī)器人:探索藍(lán)色疆域的智能裝備革命
- 2026年上海市寶山區(qū)新江灣實(shí)驗(yàn)學(xué)校編內(nèi)教師公開招聘筆試備考題庫(kù)及答案解析
- 2026江蘇蘇州東吳財(cái)產(chǎn)保險(xiǎn)股份有限公司重客業(yè)務(wù)部社會(huì)招聘考試備考題庫(kù)及答案解析
- 2026福建廈門市集美區(qū)海怡實(shí)驗(yàn)幼兒園招聘2人考試備考題庫(kù)及答案解析
- 2026福建廈門市集美區(qū)西濱小學(xué)非在編教師招聘1人考試備考試題及答案解析
- 2026湖南長(zhǎng)沙農(nóng)村商業(yè)銀行股份有限公司招聘員工2人筆試備考試題及答案解析
- 2026年舟山市志愿服務(wù)聯(lián)合會(huì)公開招聘工作人員的備考題庫(kù)參考答案詳解
- 2026年海南師范大學(xué)招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 糧油產(chǎn)品授權(quán)書
- 責(zé)任督學(xué)培訓(xùn)課件
- 關(guān)于安吉物流市場(chǎng)的調(diào)查報(bào)告
- 抑郁病診斷證明書
- 心電監(jiān)測(cè)技術(shù)操作考核評(píng)分標(biāo)準(zhǔn)
- 歷史時(shí)空觀念的教學(xué)與評(píng)價(jià)
- 維克多高中英語(yǔ)3500詞匯
- 《LED顯示屏基礎(chǔ)知識(shí)培訓(xùn)》
- 第五屆全國(guó)輔導(dǎo)員職業(yè)能力大賽案例分析與談心談話試題(附答案)
- LY/T 2501-2015野生動(dòng)物及其產(chǎn)品的物種鑒定規(guī)范
- GB/T 6529-2008紡織品調(diào)濕和試驗(yàn)用標(biāo)準(zhǔn)大氣
評(píng)論
0/150
提交評(píng)論