(二)程序調(diào)試(參考)概要_第1頁(yè)
(二)程序調(diào)試(參考)概要_第2頁(yè)
(二)程序調(diào)試(參考)概要_第3頁(yè)
(二)程序調(diào)試(參考)概要_第4頁(yè)
(二)程序調(diào)試(參考)概要_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、(二)程序調(diào)試(參照答案)程序調(diào)試題的操作步驟是:(1)成立一標(biāo)準(zhǔn)EXE工程,將這一模塊程序增添到工程中。如果你是經(jīng)過(guò)雙擊標(biāo)準(zhǔn)模塊程序Model1.BAS進(jìn)入VisualBasic系統(tǒng)的,則首先需要增添一個(gè)窗體模塊。(2)將該標(biāo)準(zhǔn)模塊程序Model1.BAS中代碼的指定的錯(cuò)誤修更正確或在指定的空位填上適合的語(yǔ)句,并在窗體模塊中編寫(xiě)代碼(經(jīng)常寫(xiě)在窗體的Click()事件中)調(diào)用標(biāo)準(zhǔn)模塊中的Sub過(guò)程或用戶(hù)自定義函數(shù)(如果在標(biāo)準(zhǔn)模塊程序Model1.BAS有多個(gè)過(guò)程或函數(shù),要注意調(diào)用的先后次序,否則得不到正確結(jié)果),調(diào)試運(yùn)行程序,使其能輸出正確結(jié)果。(3)按試題要求保留工程。如果你的計(jì)算機(jī)中沒(méi)有模

2、塊程序Model1.BAS,你必需先自己新建一工程,再增添一個(gè)默認(rèn)標(biāo)準(zhǔn)模塊,將題目所附的參照程序輸入(可復(fù)制粘貼),將其中用-n-(n為1,2,3,4,5)部分刪除后改為合適的內(nèi)容或?qū)⒂?錯(cuò)誤n*標(biāo)示的下一語(yǔ)句中的錯(cuò)誤更正,然后調(diào)試運(yùn)行程序使其達(dá)到該題目的要求。1已有一模塊文件Modify.Bas。該模塊中的Summary過(guò)程是用于計(jì)算1!+2!+.+20!,并打印出計(jì)算結(jié)果,但不完整,請(qǐng)?jiān)跈M線(xiàn)上填入必要的內(nèi)容,使其完整。Modify.Bas模塊中的nFactor函數(shù)過(guò)程用于計(jì)算n!。程序如下:PublicFunctionnFactor(ByValnAsInteger)AsDoubleDimi

3、AsIntegerDimtempAsDoubletemp=1Fori=1Tontemp=temp*iNextinFactor=tempEndFunctionPublicSubsummary()DimsumAsDoubleDimiAsIntegerDimnAsIntegern=20Fori=1Tonsum=sum+nFactor(i)NextiForm1.Printsum=&sumEndSub2已有一模塊文件Modify.Bas。該模塊中的Calculate過(guò)程是產(chǎn)生100個(gè)0,99范圍內(nèi)的隨機(jī)整數(shù),統(tǒng)計(jì)個(gè)位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0的數(shù)的個(gè)數(shù)并打印出來(lái)。程序如下:Pu

4、blicSubcalculate()Dima(1To100)AsIntegerDimx(1To10)AsIntegerDimiAsInteger,pAsInteger產(chǎn)生100個(gè)0,99范圍內(nèi)的隨機(jī)整數(shù)每行10個(gè)打印出來(lái)Fori=1To100*錯(cuò)誤1*a(i)=int(Rnd*100)Ifa(i)10ThenForm1.PrintSpace(2);a(i);ElseForm1.PrintSpace(1);a(i);EndIfIfiMod10=0ThenForm1.PrintNexti統(tǒng)計(jì)個(gè)位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0的數(shù)的個(gè)數(shù)并將統(tǒng)計(jì)結(jié)果保留在數(shù)組x(1),x(2),

5、.,x(10)中,將統(tǒng)計(jì)結(jié)果打印出來(lái)Fori=1To100*錯(cuò)誤2*p=Int(a(i)mod10)求個(gè)位上的數(shù)字Ifp=0Thenp=10*錯(cuò)誤3*x(p)=x(p)+1NextiForm1.Print統(tǒng)計(jì)結(jié)果Fori=1To10p=iIfi=10Thenp=0*錯(cuò)誤4*Form1.Print個(gè)位數(shù)為+Str(p)+共+Str(x(i)+個(gè)NextiEndSub個(gè)位數(shù)為0統(tǒng)計(jì)結(jié)果保留在x(10)中3.已有一模塊文件Modify.Bas。該模塊中的Findat過(guò)程是用于在一個(gè)字符串變量中查找at,并用消息框給出查找結(jié)果的報(bào)告:沒(méi)有找到或找到的個(gè)數(shù),但不完整,請(qǐng)?jiān)跈M線(xiàn)上填入必要的內(nèi)容,使其完整。

6、程序如下:PublicSubFindat()在字符串str1中查找atDimstr1AsStringDimlengthAsInteger字符串長(zhǎng)度DimsumAsInteger查到的個(gè)數(shù)DimiAsIntegerstr1=InputBox(請(qǐng)輸入一個(gè)字符串)length=len(str1)i=1sum=0DoWhileiRX)Form1.Print太大了,持續(xù)猜!CaseElseForm1.PrintEndSelecttimes=times+1*錯(cuò)誤3*LoopWhiletimes5ThenForm1.Print猜數(shù)失敗太小了,持續(xù)猜,游戲結(jié)束!*錯(cuò)誤Form1.PrintEndIfEndSu

7、b4*正確答案為&Str(R)5.已有一模塊文件Modify.Bas。該模塊中的ArmstrongNumber過(guò)程是用于求出1-999之間所有的Armstrong數(shù),并打印出來(lái),但不完整,請(qǐng)?jiān)跈M線(xiàn)上填入必要的內(nèi)容,使其完整。所謂數(shù)字的立方和。比如:371=33+73+13,那么371就是一個(gè)Armstrong程序如下:Armstrong數(shù)。數(shù)是指一個(gè)數(shù)等于它每位上PublicSubArmstrongNumber()DimarmstrongAsIntegerDimiAsIntegerDimhundredAsInteger百位上的數(shù)字DimtenAsInteger十位上的數(shù)字DimoneAsInt

8、eger個(gè)位上的數(shù)字Fori=1To999hundred=i100ten=(i-hundred*100)10one=imod10Ifi=hundred3+ten3+one3ThenForm1.Printi;isarmstrongnumberEndIfNextiEndSub6.已有一模塊文件Modify.Bas。該模塊中的CountTo60過(guò)程是用于從一堆一分、二分、五分的硬幣中取出20枚,使其總值為程序如下:60分,要求輸出取法的數(shù)量及每一種取法的一分、二分、五分的個(gè)數(shù)。PublicSubCountTo60()從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分輸出取法的數(shù)量及每一種取法

9、的一分、二分、五分的個(gè)數(shù)DimoneAsInteger一分硬幣個(gè)數(shù)DimtwoAsInteger二分硬幣個(gè)數(shù)DimfiveAsInteger五分硬幣個(gè)數(shù)Constn=20總數(shù)20枚DimkAsInteger取法數(shù)量k=0Forone=1Ton*錯(cuò)誤1*Fortwo=1Ton-onefive=n-one-two*錯(cuò)誤2*Ifone+two*2+five*5=60Thenk=k+1Form1.Printone=;one;two=;two;five=;fiveEndIf*錯(cuò)誤3*Nexttwo*錯(cuò)誤4*NextoneForm1.Printk=;kEndSub7.已有一模塊文件Modify.Bas。該

10、模塊中的TJ過(guò)程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來(lái),但不完整,請(qǐng)?jiān)跈M線(xiàn)上填入必要的內(nèi)容,使其完整。Modify.Bas模塊中的SCSJ過(guò)程是產(chǎn)生數(shù)據(jù),數(shù)據(jù)的取值范圍為-1010之間的隨機(jī)數(shù)。程序如下:PrivateConstn=10Privatea(1Ton)AsIntegerTJ過(guò)程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來(lái)數(shù)據(jù)由SCSJ過(guò)程產(chǎn)生,數(shù)據(jù)的取值范圍為-1010之間的隨機(jī)整數(shù)PublicSubTJ()DimiAsIntegerDimtAsSinglet=1Fori=1To10Ifa(i)0Thent=t*a(i)EndIfNextiForm1.PrintT=;tEndSu

11、bPublicSubSCSJ()RandomizeForm1.Print原始數(shù)據(jù)DimiAsIntegerDimjAsIntegerFori=1Ton隨機(jī)產(chǎn)生0或1,為0時(shí)取負(fù),為1時(shí)取正j=Int(Rnd*2)Ifj=0Thenj=-1a(i)=j*Int(Rnd*(n+1)Form1.Printa(i);NextiForm1.PrintEndSub8.已有一模塊文件Modify.Bas。該模塊中的Money過(guò)程是用于統(tǒng)計(jì)一個(gè)有7個(gè)工作人員的餐廳發(fā)薪資所需的100元、50元、10元、5元和1元的票面數(shù),但不完整,請(qǐng)?jiān)跈M線(xiàn)上填入必要的內(nèi)容,使其完整。Modify.Bas模塊中的SalaryDa

12、ta過(guò)程是給出7個(gè)職工的薪資。(薪資單位是元)程序如下:Dimsalary(7)AsIntegerPublicSubMoney()DimhundredAsInteger,totalhundredAsInteger100元票面數(shù)量、總數(shù)量DimfiftyAsInteger,totalfiftyAsInteger50DimtenAsInteger,totaltenAsInteger10DimfiveAsInteger,totalfiveAsInteger5DimoneAsInteger,totaloneAsInteger1DimtotalsalaryAsInteger薪資總計(jì)DimiAsInteg

13、er,tempAsIntegertotalhundred=0totalfifty=0totalten=0totalfive=0totalone=0totalsalary=0Fori=1To7temp=salary(i)hundred=Int(temp/100)temp=temphundred*100fifty=Int(temp/50)temp=temp-fifty*50元票面數(shù)量、總數(shù)量元票面數(shù)量、總數(shù)量元票面數(shù)量、總數(shù)量元票面數(shù)量、總數(shù)量ten=Int(temp/10)temp=temp-ten*10five=Int(temp/5)temp=temp-five*5one=temptotalh

14、undred=totalhundred+hundredtotalfifty=totalfifty+fiftytotalten=totalten+tentotalfive=totalfive+fivetotalone=totalone+onetotalsalary=totalsalary+salary(i)NextiForm1.Print共需100元&Str(totalhundred)&Form1.Print共需50元&Str(totalfifty)&張F(tuán)orm1.Print共需10元&Str(totalten)&張F(tuán)orm1.Print共需5元&Str(totalfive)&張F(tuán)orm1.Pr

15、int共需1元&Str(totalone)&張F(tuán)orm1.Print共計(jì)&Str(totalsalary)&元EndSub張PublicSubSalaryData()salary(1)=1398salary(2)=1765salary(3)=689salary(4)=1500salary(5)=832salary(6)=590salary(7)=1200EndSub9.已有一模塊文件Modify.Bas。該模塊中的MaxLine過(guò)程用于查找一個(gè)5行4列的二維數(shù)組中行平均值最大的行,并將該行所有數(shù)據(jù)調(diào)整到第一行的地點(diǎn)。Modify.Bas模塊中的DataProduce過(guò)程用于產(chǎn)生原始數(shù)據(jù);Ave

16、rage過(guò)程用于計(jì)算各行的平均值;PrintArray過(guò)程用于打印二維數(shù)組和行平均值。程序如下:Dima(1To5,1To4)AsIntegerDimave(1To5)AsIntegerPublicSubMaxLine()DimiAsIntegerDimjAsIntegerDimtempAsIntegerDimLine_noAsInteger最大平均值的行號(hào)找出最大平均值所在行Line_no=1Fori=2To5*錯(cuò)誤1*Ifave(Line_no)ave(i)Then*錯(cuò)誤2*Line_no=iEndIfNexti互換第一行與最大平均值所在行Forj=1To4temp=a(1,j)*錯(cuò)誤3*

17、a(1,j)=a(Line_no,j)a(Line_no,j)=tempNextj互換對(duì)應(yīng)行的平均值temp=ave(1)ave(1)=ave(Line_no)ave(Line_no)=temp打印互換后的數(shù)據(jù)Form1.Print互換后的數(shù)據(jù)和平均值PrintArrayEndSubPublicSubDataProduce()DimiAsIntegerDimjAsInteger產(chǎn)生5*4數(shù)組Fori=1To5Forj=1To4a(i,j)=Int(100*Rnd)NextjNextiEndSubPublicSubAverage()DimiAsIntegerDimjAsIntegerDimsum

18、AsInteger計(jì)算各行平均值Fori=1To5sum=0Forj=1To4*錯(cuò)誤4*sum=sum+a(i,j)Nextjave(i)=sum/4Nexti將數(shù)組和平均值打印出來(lái)Form1.Print原始數(shù)據(jù)和平均值PrintArrayEndSubPublicSubPrintArray()DimiAsIntegerDimjAsIntegerFori=1To5Forj=1To4Form1.Printa(i,j);Spc(3);Form1.Print平均值=;ave(i)NextiEndSub10已有一模塊文件Modify.Bas符串順讀與倒讀都是同樣的,如。該模塊中的Wrap“潮起潮落,落潮

19、起潮過(guò)程用于判斷一個(gè)字符串是否”?!盎匚摹?。所謂“回文”是指字程序如下:PublicSubWrap()DimlengthAsIntegerDimstr1AsStringDimstrleftAsStringDimstrrightAsStringDimkAsIntegerstr1=InputBox(請(qǐng)輸入隨意的字符串)輸入隨意字符串,如“潮起潮落,落潮起潮”*錯(cuò)誤1*length=len(str1)k=1Do*錯(cuò)誤2*strleft=mid(str1,k,1)從左邊起逐個(gè)取出一個(gè)字符*錯(cuò)誤3*strright=mid(str1,length+1k,1)從右邊起逐個(gè)取出一個(gè)字符*錯(cuò)誤4*Ifstrl

20、eftstrrightThenExitDoEndIfk=k+1LoopWhileklength/2ThenForm1.Printstr1&是回文ElseForm1.Printstr1&不是回文EndIfEndSub11.已有一模塊文件Modify.Bas。該模塊中的BubbleSort過(guò)程是冒泡排序法;GenerateData過(guò)程產(chǎn)生10個(gè)1,20之間互不相同的隨機(jī)整數(shù);Swap過(guò)程互換兩個(gè)變量的數(shù)值。程序如下:PrivateConstn=10Privatea(1Ton)AsIntegerBubbleSort過(guò)程是冒泡排序Swap過(guò)程互換兩個(gè)變量數(shù)值GenerateData過(guò)程產(chǎn)生10個(gè)1,2

21、0之間互不相同的隨機(jī)整數(shù)PublicSubBubbleSort()DimiAsInteger,jAsIntegeri=1DoForj=i+1TonIfa(j)a(i)Then*1*Swapa(j),a(i)去掉括號(hào),或改為callSwap(a(j),a(i)EndIfNextji=i+1*2*LoopWhileinForm1.Print排序結(jié)果Fori=1TonForm1.Printa(i);NextiEndSubPublicSubGenerateData()DimiAsIntegerDimjAsIntegerDimbAsBooleanFori=1Tonb=FalseDoWhileNotba(

22、i)=Int(20*Rnd+1)b=True*3*Forj=1Toi1Ifa(i)=a(j)Thenb=FalseExitForEndIfNextjLoopForm1.Printa(i)NextiEndSub*4*PublicSubSwap(aAsInteger,bAsInteger)去掉ByVal,數(shù)組不能以ByVal傳達(dá)DimtempAsIntegertemp=aa=bb=tempEndSub12.已有一模塊文件Modify.Bas。該模塊中的Transfer過(guò)程用于將一個(gè)十六進(jìn)制整數(shù)變換為十進(jìn)制整數(shù);number函數(shù)過(guò)程用于將一個(gè)十六進(jìn)制符號(hào)變換為數(shù)值。程序如下:PublicSubTra

23、nsfer()DimHexAsString十六進(jìn)制數(shù)DimDecAsDouble十進(jìn)制數(shù)DimtempAsStringDimiAsIntegerDimnAsIntegerHex=InputBox(輸入一個(gè)十六進(jìn)制整數(shù)*錯(cuò)誤1*n=len(Hex)i=0Do)*錯(cuò)誤2*temp=Mid(Hex,n-i,1)*錯(cuò)誤3*Dec=Dec+number(temp)*16ii=i+1LoopWhileia(j)ThenSwapa(i),a(j)EndIfNextjForm1.Printa(i)NextiForm1.printa(i)或a(10)即最后一個(gè)EndSubPublicSubSwap(aAsInt

24、eger,bAsInteger)DimtempAsIntegertemp=aa=bb=tempEndSub14.已有一模塊文件Modify.Bas。該模塊中的PrintArray過(guò)程是用于打印一個(gè)5行5列的數(shù)字方陣,并使兩對(duì)角線(xiàn)上元素均為1,其余均為2。要求打印的數(shù)字方陣兩列數(shù)字之間空3格,兩行之間空一行。程序如下:PublicSubPrintArray()下面程序用于打印5行使兩對(duì)角線(xiàn)上元素均為5列的數(shù)字方陣1,其余均為2要求打印的數(shù)字方陣兩列數(shù)字之間空3格,兩行之間空一行只需改正標(biāo)出犯錯(cuò)地點(diǎn)的下面那一條語(yǔ)句Dima(5,5)AsIntegerDimiAsInteger,jAsInteger

25、Fori=1To5Forj=1To5*錯(cuò)誤1*Ifijandi6-jThena(i,j)=2Elsea(i,j)=1EndIf*錯(cuò)誤Form1.Printa(i,j)Nextj2*&Space(3);數(shù)字與空字符串不能相加*錯(cuò)誤3*Form1.Print:Form1.PrintNextiEndSub15.已有一模塊文件Modify.Bas。該模塊中的Combination合值,計(jì)算公式為Cmn=m!/(n!*(m-n)!)。Modify.Bas模塊中的nFactor函數(shù)過(guò)程用于計(jì)算n!。過(guò)程是用于計(jì)算在m個(gè)數(shù)據(jù)中取出n個(gè)數(shù)據(jù)的排列組程序如下:PublicSubCombination()Dimm

26、AsIntegerDimnAsIntegerDimCmnAsLongDom=Val(InputBox(請(qǐng)輸入一個(gè)整數(shù)m)n=Val(InputBox(請(qǐng)輸入一個(gè)整數(shù)n(n=m)*錯(cuò)誤1*LoopWhilem=nCmn=nFactor(m)/(nFactor(n)*nFactor(m-n)Form1.Print排列組合數(shù)為;CmnEndSubPublicFunctionnFactor(ByValnAsInteger)AsDoubleDimiAsIntegerDimtempAsDoubletemp=1Fori=1Tontemp=temp*iNexti*nFactor*錯(cuò)誤3*=temp錯(cuò)誤4*去掉

27、nFactor(n)中的(n)部分EndSub16.已有一模塊文件Modify.Bas。該模塊中的FindMax過(guò)程是用于查找一批數(shù)據(jù)中的最大數(shù),值及最大數(shù)在數(shù)組中的下標(biāo)值,但不完整,請(qǐng)?jiān)跈M線(xiàn)上填入必要的內(nèi)容,使其完整。GenerateData過(guò)程用于產(chǎn)生30個(gè)1-500之間的隨機(jī)整數(shù)并5個(gè)一行打印出來(lái)。并打印出最大數(shù)的Modify.Bas模塊中的程序如下:Dima(30)AsIntegerPublicSubFindMax()DimPositionAsInteger最大數(shù)在數(shù)組中的下標(biāo)DimmaxAsInteger最大數(shù)DimiAsIntegerGenerateDatamax=a(1)Posi

28、tion=1Fori=2To30Ifa(i)maxThenmax=a(i)Position=iEndIfNextiForm1.Print最大值=&Str(max)Form1.Print最大值的下標(biāo)=&Str(Position)EndSubPublicSubGenerateData()DimiAsIntegerFori=1To30a(i)=Int(500*Rnd()+1)Form1.Printa(i),IfiMod5=0ThenForm1.PrintNextiEndSub17.已有一模塊文件Modify.Bas。該模塊中的Prime過(guò)程是求出100到200之間所有的素?cái)?shù),并打印出來(lái),但不完整,請(qǐng)?jiān)跈M線(xiàn)上填入必要的內(nèi)容,使其完整。程序如下:PublicSubprime()打印出100到200之間所有的素?cái)?shù),并統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)DimiAsIntegerDimjAsIntegerDimkAsIntegerDimtAsInteger統(tǒng)計(jì)素?cái)?shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論