版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
專題二十VB自定義函數(shù)及遞歸算法PART01過程和函數(shù)過程函數(shù)過程與函數(shù)的關(guān)系過程函數(shù)PART02函數(shù)的調(diào)用PART03遞歸算法定義即:在定義一個(gè)過程或函數(shù)時(shí)又出現(xiàn)了調(diào)用本過程或者函數(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ù)的使用,下列說法不正確的是()A.可用語句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)過一個(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)過村莊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ì)算過程如下三步所示: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.通過模得到對(duì)應(yīng)的校驗(yàn)碼6模(y):012345678910校驗(yàn)碼(jym):10X98765432小明編寫了一個(gè)驗(yàn)證18位身份證校驗(yàn)碼的VB程序,實(shí)現(xiàn)功能如下:?jiǎn)螕簟靶r?yàn)”按鈕Command1,程序從數(shù)據(jù)庫讀取相關(guān)數(shù)據(jù)進(jìn)行處理,在列表框List1中顯示身份證號(hào)碼及判斷檢驗(yàn)碼是否正確的結(jié)果。VB程序運(yùn)行界面如圖所示。實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)回答下列問題:1)解決此問題所用的算法是
(選填:解析算法/枚舉算法)。2)請(qǐng)?jiān)趧澗€處填入合適的代碼。Dimsfz(1To100)AsString ′存放身份證號(hào)碼Dimjq(1To100)AsInteger ′存放加權(quán)因子DimjiegAsString′存放判斷結(jié)果PrivateSubForm_Load() ′本過程從數(shù)據(jù)庫中讀取身份證號(hào)碼、加權(quán)因子分別存儲(chǔ)到數(shù)組 ′sfz、jq中 ′代碼略EndSubPrivateSubCommand1_Click() Fori=1Ton ′變量n指的是從數(shù)據(jù)庫讀取的身份證號(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)塊木塊。問堆積n層需要多少木塊?設(shè)計(jì)解決問題的程序,界面如圖(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í)行分支語句MsgBox("n不能小于1"),彈出消息框顯示"n不能小于1"。第14課第(5)題P88(8)(2016嘉興模擬,3分)約瑟夫問題。編號(hào)為1,2,3,…,n的n個(gè)人按順時(shí)針方向圍坐一圈,每人手持一個(gè)密碼(正整數(shù))。開始任意選一個(gè)正整數(shù)m作為報(bào)數(shù)的上限值,從第一個(gè)人開始順時(shí)針自1開始順序報(bào)數(shù),報(bào)到m時(shí)停止,同時(shí)報(bào)m的人出列,并將他的密碼作為新的上限值m,從他順時(shí)針下一個(gè)人開始重新自1開始報(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句和代碼,把程序補(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版城市更新改造項(xiàng)目融資合同范本4篇
- 2025年度個(gè)人抵押貸款擔(dān)保合同4篇
- 《建設(shè)工程施工合同糾紛事實(shí)查明的思路與方法》理解與適用
- 2025年銑刨料運(yùn)輸、破碎及再生利用綜合服務(wù)合同3篇
- 2024年員工培訓(xùn)制度 (一)
- 阿里新媒體運(yùn)營(yíng)課程設(shè)計(jì)
- 滑動(dòng)套課程設(shè)計(jì)
- 民政局2025版二零二五年度離婚協(xié)議書范本使用說明4篇
- 2024年心理咨詢師之心理咨詢師基礎(chǔ)知識(shí)題庫(歷年真題)
- 二零二五版國(guó)際博覽會(huì)現(xiàn)場(chǎng)搭建及設(shè)備租賃合同3篇
- 2024版塑料購(gòu)銷合同范本買賣
- 【高一上】【期末話收獲 家校話未來】期末家長(zhǎng)會(huì)
- JJF 2184-2025電子計(jì)價(jià)秤型式評(píng)價(jià)大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 有毒有害氣體崗位操作規(guī)程(3篇)
- 兒童常見呼吸系統(tǒng)疾病免疫調(diào)節(jié)劑合理使用專家共識(shí)2024(全文)
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 《華潤(rùn)集團(tuán)全面預(yù)算管理案例研究》
- 2024-2025高考英語全國(guó)卷分類匯編之完型填空(含答案及解析)
- 二年級(jí)下冊(cè)加減混合豎式練習(xí)360題附答案
- 蘇教版五年級(jí)數(shù)學(xué)下冊(cè)解方程五種類型50題
評(píng)論
0/150
提交評(píng)論