




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
專題二十VB自定義函數(shù)及遞歸算法PART01過(guò)程和函數(shù)過(guò)程函數(shù)過(guò)程與函數(shù)的關(guān)系過(guò)程函數(shù)PART02函數(shù)的調(diào)用PART03遞歸算法定義即:在定義一個(gè)過(guò)程或函數(shù)時(shí)又出現(xiàn)了調(diào)用本過(guò)程或者函數(shù)的成分,即調(diào)用了它自己本身,這稱為遞歸。PART04典例分析(2018改編,2分)有如下VB程序段:PrivateSubCommand1_Click() DimxAsInteger,yAsInteger x=9:y=13 Printfun(x,y);x;yEndSubPrivateFunctionfun(ByValaAsInteger,bAsInteger)AsInteger a=aMod5 b=b\5 fun=a+bEndFunction1程序運(yùn)行時(shí),單擊命令按鈕Command1,則窗體上的輸出結(jié)果是()A.6913B.22913C.642D.692D(2017臺(tái)州高二聯(lián)考,2分)某VB自定義函數(shù)如下:Functionf(mAsInteger,nAsLong)AsLong Ifm<=1Then f=1 Else f=(m+1)*n EndIfEndFunction關(guān)于此函數(shù)的使用,下列說(shuō)法不正確的是()A.可用語(yǔ)句f(2*(-3),3)調(diào)用該函數(shù)B.f(f(2*(-3),3),4)調(diào)用的結(jié)果是1C.該函數(shù)采用的主要算法是遞歸D.f(2,2+3)調(diào)用的結(jié)果是15C2(2018改編,2分)有如下VB自定義函數(shù):PublicFunctionlcm(xAsInteger,yAsInteger)AsInteger DimmAsInteger DimflagAsBoolean flag=False m=0 DoWhileflag=False m=m+x IfmMody=0Then flag=True EndIf Loop lcm=mEndFunction3在程序中調(diào)用函數(shù)lcm(12,18)得到的返回值是()A.6B.24C.30D.36D2018改編,2分)下列VB程序中,f是一個(gè)遞歸函數(shù):PrivateSubCommand1_Click() DimyAsLong Text1.Text="" y=f(3) Label1.Caption=Str(y)EndSubFunctionf(nAsInteger)AsLong′遞歸函數(shù) Text1.Text=Text1.Text+Str(n) Ifn<=1Then f=1 Else f=f(n-1)+2 EndIfEndFunction4程序運(yùn)行時(shí),單擊命令按鈕Command1后,文本框Text1中顯示的內(nèi)容是()A.3B.321C.123D.1B(2018改編,4分)一個(gè)人趕著鴨子去8個(gè)村莊賣,每經(jīng)過(guò)一個(gè)村子,賣去所趕鴨子的一半又一只。他在第5個(gè)村賣了200只鴨子,其中部分代碼如下,請(qǐng)?jiān)趧澗€處填入正確的代碼。PrivateSubCommand1_Click()DimaAsIntegera=Val(Text1.Text) ′a為村莊號(hào)Label1.Caption=Str(f(a)) ′賣出的鴨子數(shù)Label2.Caption=① ′經(jīng)過(guò)村莊a時(shí)總鴨子數(shù)EndSubStr(f(a)*2-2)5Functionf(nAsInteger)AsInteger ′賣出鴨子數(shù)n為村莊號(hào) Ifn=5Then f=200 ElseIfn>5Then f=
②
Else f=f(n+1)*2 EndIfEndFunctionf(n-1)/2小積累(2017溫州新力量聯(lián)盟,5分)公民身份號(hào)碼是特征組合碼,由十七位數(shù)字本體碼和一位校驗(yàn)碼組成。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。數(shù)字校驗(yàn)碼的計(jì)算過(guò)程如下三步所示:a.對(duì)身份證號(hào)碼的前17位數(shù)字的權(quán)求和s=Sum(sfz(i)*jq(i)),i=1,...,17其中,sfz(i):表示第i位置上的身份證號(hào)碼數(shù)字值 jq(i):表示第i位置上的加權(quán)因子 jq(1)至jq(17)依次為:7910584216379105842b.求模yy=sMod11c.通過(guò)模得到對(duì)應(yīng)的校驗(yàn)碼6模(y):012345678910校驗(yàn)碼(jym):10X98765432小明編寫(xiě)了一個(gè)驗(yàn)證18位身份證校驗(yàn)碼的VB程序,實(shí)現(xiàn)功能如下:?jiǎn)螕簟靶r?yàn)”按鈕Command1,程序從數(shù)據(jù)庫(kù)讀取相關(guān)數(shù)據(jù)進(jìn)行處理,在列表框List1中顯示身份證號(hào)碼及判斷檢驗(yàn)碼是否正確的結(jié)果。VB程序運(yùn)行界面如圖所示。實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)回答下列問(wèn)題:1)解決此問(wèn)題所用的算法是
(選填:解析算法/枚舉算法)。2)請(qǐng)?jiān)趧澗€處填入合適的代碼。Dimsfz(1To100)AsString ′存放身份證號(hào)碼Dimjq(1To100)AsInteger ′存放加權(quán)因子DimjiegAsString′存放判斷結(jié)果PrivateSubForm_Load() ′本過(guò)程從數(shù)據(jù)庫(kù)中讀取身份證號(hào)碼、加權(quán)因子分別存儲(chǔ)到數(shù)組 ′sfz、jq中 ′代碼略EndSubPrivateSubCommand1_Click() Fori=1Ton ′變量n指的是從數(shù)據(jù)庫(kù)讀取的身份證號(hào)碼個(gè)數(shù) jieg=①
List1.AddItemsfz(i)+""+jieg NextiEndSub解析算法jy(sfz(i))Functionjy(sfz1AsString)AsString ′對(duì)身份證的校驗(yàn)碼進(jìn)行校驗(yàn) DimsAsInteger,yAsInteger,rAsInteger DimdjymAsString jym="10X98765432" Fori=1To17 r=Val(Mid(sfz1,i,1))*
②
s=s+r Nexti y=sMod11 djym=
③
Ifdjym=Mid(sfz1,18,1)Then jy="正確!" Else jy="錯(cuò)誤!" EndIfEndFunctionjq(i)Mid(jym,y+1,1)(2018改編,4分)利用1×1×1立方厘米正方體木塊,堆積一個(gè)底座是正方形的類似金字塔的造型,如圖(a)所示。如第1層1塊木塊,第2層3×3塊木塊,第3層5×5塊木塊,……第n層(2n-1)×(2n-1)塊木塊。問(wèn)堆積n層需要多少木塊?設(shè)計(jì)解決問(wèn)題的程序,界面如圖(b)所示。該程序的使用方法與功能:在文本框Text1內(nèi)輸入堆積的層數(shù),單擊“計(jì)算”按鈕Command1,在Text2中顯示木塊總數(shù)。圖(a)圖(b)7PrivateSubCommand1_Click() DimmkAsLong DimnAsLong n=Val(Text1.Text) Ifn<1Then MsgBox("n不能小于1") ′MsgBox函數(shù)功能是彈出一個(gè)對(duì)話框,等待
′用戶單擊按鈕,并返回一個(gè)Integer值表示用戶單擊了哪一個(gè)按鈕 Else mk=zs(n) Text2.Text=Str(mk) EndIfEndSubFunctionzs(nAsInteger)AsLong Ifn=1Then zs=1 Else zs=
EndIfEndFunctionPrivateSubText1_Click() Text1.Text="" Text2.Text=""EndSub①為了程序正確運(yùn)行,劃線處的代碼為
。②如果在Text1中輸入0,程序結(jié)果是
。zs(n-1)+(2*n-1)^2n不能小于1解析:①第n層需要的木塊數(shù)是(2*n-1)^2,則堆積到第n層所需要的木塊數(shù)是第n層+堆積到第n-1層所需要的木塊數(shù),堆積到第n-1層所需要的木塊數(shù)是第n-1層+堆積到第n-2層所需要的木塊數(shù),……,故可形成遞推式第n層總的積木數(shù)zs=zs(n-1)+(2*n-1)^2。②在Text1中輸入0,即n=0時(shí),執(zhí)行分支語(yǔ)句MsgBox("n不能小于1"),彈出消息框顯示"n不能小于1"。第14課第(5)題P88(8)(2016嘉興模擬,3分)約瑟夫問(wèn)題。編號(hào)為1,2,3,…,n的n個(gè)人按順時(shí)針?lè)较驀蝗Γ咳耸殖忠粋€(gè)密碼(正整數(shù))。開(kāi)始任意選一個(gè)正整數(shù)m作為報(bào)數(shù)的上限值,從第一個(gè)人開(kāi)始順時(shí)針自1開(kāi)始順序報(bào)數(shù),報(bào)到m時(shí)停止,同時(shí)報(bào)m的人出列,并將他的密碼作為新的上限值m,從他順時(shí)針下一個(gè)人開(kāi)始重新自1開(kāi)始報(bào)數(shù),如此下去直到所有人全部出列為止。要求:1)由用戶輸入隊(duì)列人數(shù)n和正整數(shù)m,以及游戲的密碼上限x。2)隊(duì)列中每人所持的密碼隨機(jī)產(chǎn)生,大小必須在[1,x]區(qū)間。3)在程序界面中按出列順序顯示每個(gè)人的編號(hào)和出列時(shí)他所持的密碼。運(yùn)行效果如圖所示。8實(shí)現(xiàn)上述功能的VB程序如下。請(qǐng)?jiān)趧澗€處填入適當(dāng)?shù)恼Z(yǔ)句和代碼,把程序補(bǔ)充完整。PrivateSubCommand1_Click()Dima()AsInteger,b()AsInteger,mAsInteger,nAsIntegerDimiAsInteger,kAsInteger,cAsInteger,xAsIntegern=Val(Text1.Text):m=Val(Text2.Text):x=Val(Text3.Text)ReDima(1Ton)AsInteger ′重新定義數(shù)組a,存儲(chǔ)下標(biāo)對(duì)應(yīng)編號(hào)人的隊(duì)列狀態(tài)ReDimb(1Ton)AsInteger ′重新定義數(shù)組b,存儲(chǔ)下標(biāo)對(duì)應(yīng)編號(hào)人的密碼 Randomize ′隨機(jī)數(shù)生成器初始化 Fori=1Ton a(i)=1′在列
① ′產(chǎn)生每個(gè)人的隨機(jī)密碼 Nexti c=0 k=0 List1.Clearb(i)=Int(x*Rnd)+1或b(i)=Int(x*Rnd+1)
DoWhilec<n Fori=1Ton k=k+a(i)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025教師教學(xué)成果提升計(jì)劃他
- 服裝行業(yè)PMC關(guān)鍵職責(zé)
- 一年級(jí)上冊(cè)語(yǔ)文培優(yōu)輔差提升計(jì)劃
- 金融機(jī)構(gòu)采購(gòu)制度及流程
- 市政工程信息化管理難點(diǎn)及解決措施
- 供應(yīng)室物資配送路徑流程他
- 口腔醫(yī)院多渠道營(yíng)銷推廣計(jì)劃
- 高端餐飲膳食委員會(huì)設(shè)計(jì)計(jì)劃
- 新人教版小學(xué)二年級(jí)上冊(cè)語(yǔ)文課外輔導(dǎo)計(jì)劃
- 酒店銷售總監(jiān)客戶開(kāi)發(fā)職責(zé)
- 2025山東兗礦集團(tuán)招聘60人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 衡水一中高一試卷及答案
- 2025-2030中國(guó)MEMS設(shè)計(jì)服務(wù)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 房屋租賃法律培訓(xùn)
- 2022水庫(kù)生態(tài)養(yǎng)魚(yú)技術(shù)規(guī)范
- 社會(huì)醫(yī)學(xué)與衛(wèi)生事業(yè)管理測(cè)試題(附答案)
- 湖南省2024年普通高校招生本科提前批(藝術(shù)類平行組)第一次投檔分?jǐn)?shù)線
- 基于AR技術(shù)的寵物產(chǎn)品設(shè)計(jì)創(chuàng)新
- 食品安全管理制度示范文本
- 在線處方管理制度
- 中學(xué)食堂內(nèi)控制度
評(píng)論
0/150
提交評(píng)論