![原版程序調(diào)試_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/2c9e73e6-4b19-43b3-93bf-96584b1bca60/2c9e73e6-4b19-43b3-93bf-96584b1bca601.gif)
![原版程序調(diào)試_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/2c9e73e6-4b19-43b3-93bf-96584b1bca60/2c9e73e6-4b19-43b3-93bf-96584b1bca602.gif)
![原版程序調(diào)試_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/2c9e73e6-4b19-43b3-93bf-96584b1bca60/2c9e73e6-4b19-43b3-93bf-96584b1bca603.gif)
![原版程序調(diào)試_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/2c9e73e6-4b19-43b3-93bf-96584b1bca60/2c9e73e6-4b19-43b3-93bf-96584b1bca604.gif)
![原版程序調(diào)試_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/2c9e73e6-4b19-43b3-93bf-96584b1bca60/2c9e73e6-4b19-43b3-93bf-96584b1bca605.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、程序調(diào)試題1.計(jì)算1!+2!+.+20!Public Function nFactor(ByVal n As Integer) As Double '該過程用于計(jì)算n!。Dim i As Integer Dim temp As Double -1- temp=1 For i = 1 To n temp = temp * i Next i nFactor = -2- tempEnd Function Public Sub summary() '該過程用于計(jì)算1!+2!+.+20!,并打印出計(jì)算結(jié)果。Dim sum As Double Dim i As Integer D
2、im n As Integer n = 20 For i = 1 To n sum = sum +-3-nFactor (i) Next i Form1.Print "sum=" & -4- sumEnd Sub47Public Sub find() '該過程是用于從1到10000中找出這樣的數(shù), '該數(shù)各個(gè)位的數(shù)字的階乘相加之和等于該數(shù),并將結(jié)果輸出。 Dim k, a, n, i Dim p As Integer For k = 1 To 10000 a = LTrim(Str(k) n = 0 For i= -1- 1 to a p = Val
3、(Mid(a, i, 1) n= -2- n+fact(p) Next i If n = k Then form1.Print k Next kEnd SubFunction fact(x As Integer) As Long '該函數(shù)用于計(jì)算階乘 Dim y As Long Dim i% y = 1 For i% = 1 To x y = y * i% Next i% -3- fact=yEnd Function2. -統(tǒng)計(jì)個(gè)位上的數(shù)字Public Sub calculate() Dim a(1 To 100) As Integer Dim x(1 To 10) As Intege
4、r Dim i As Integer, p As Integer '產(chǎn)生100個(gè)0,99范圍內(nèi)的隨機(jī)整數(shù) '每行10個(gè)打印出來 For i = 1 To 100 '* 錯(cuò)誤1 * a(i) = Rnd * 99 a(i)=int(Rnd*100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '統(tǒng)計(jì)個(gè)位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0
5、的數(shù)的個(gè)數(shù) '并將統(tǒng)計(jì)結(jié)果保存在數(shù)組x(1),x(2),.,x(10)中,將統(tǒng)計(jì)結(jié)果打印出來 For i = 1 To 100 '* 錯(cuò)誤2 * p = Int(a(i) / 10) '求個(gè)位上的數(shù)字 p=a(i) mod 10 If p = 0 Then p = 10 '* 錯(cuò)誤3 * x(p) = x(p) 1 x(p)=x(p)+1 Next i Form1.Print "統(tǒng)計(jì)結(jié)果" For i = 1 To 10 p = i If i = 10 Then p = 0 '* 錯(cuò)誤4 * Form1.Print "個(gè)位數(shù)
6、為" + Str(p) + "共" + Str(x(p) + "個(gè)" str(x(p)改成str(x(i) Next iEnd Sub3. 在字符串str1中查找"at"Public Sub Findat() '在字符串str1中查找"at" Dim str1 As String Dim length As Integer '字符串長度 Dim sum As Integer '查到的個(gè)數(shù) Dim i As Integer str1 = InputBox("請(qǐng)輸入一個(gè)字符串
7、") -1- length =len(str1) i = 1 sum = 0 Do While -2- i <=length If -3-Thenmid(str1,i,2) = "at" sum = sum + 1 End If i = i + 1 Loop If -4-Thensum=0 MsgBox "沒有找到!" Else MsgBox "找到了" & Str(sum) & "個(gè)" End IfEnd Sub4. -'該過程是猜數(shù)游戲,由計(jì)算機(jī)產(chǎn)生一個(gè)1,100的任意整
8、數(shù),'輸入猜數(shù)后計(jì)算機(jī)給出提示,如果5次后還沒有猜中就結(jié)束游戲并公布正確答案。Public Sub Guess() Dim R As Integer Dim X As Integer Dim times As Integer Randomize '* 錯(cuò)誤1 * R = Rnd * 100 '產(chǎn)生一個(gè)1-100 的任意整數(shù) R=int(Rnd*100)+1 times = 1 Do X = Val(InputBox("輸入猜數(shù)X") Select Case X Case R Form1.Print "猜中了" Exit Do
9、39;* 錯(cuò)誤2 * Case X > R case is>R Form1.Print "太大了,繼續(xù)猜!" Case Else Form1.Print "太小了,繼續(xù)猜!" End Select times = times + 1 '* 錯(cuò)誤3 * Loop While times > 5 Loop Until time>5 If times > 5 Then Form1.Print "猜數(shù)失敗,游戲結(jié)束!" '* 錯(cuò)誤4 * Form1.Print "正確答案為"
10、& Str(X) Str(R) End IfEnd Sub5. -'該過程是用于求出100-999之間所有的Armstrong數(shù),并輸出。 '所謂Armstrong數(shù)是指一個(gè)數(shù)等于它每位上數(shù)字的立方和。例如:371=33+73+13,那么371就是一個(gè)Armstrong數(shù)。Public Sub ArmstrongNumber() Dim armstrong As Integer Dim i As Integer Dim hundred As Integer '百位上的數(shù)字 Dim ten As Integer '十位上的數(shù)字 Dim one As Int
11、eger '個(gè)位上的數(shù)字 For i = 100 To 999 -1- hundred = i100 -2- ten = (I Mod 100)10 -3- one = I Mod 10 If -4- Then I=hundred3+ten3+one3 Form1.Print i; "is armstrong number" End If Next iEnd Sub6. -Public Sub CountTo60() '從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分 '輸出取法的數(shù)量及每一種取法的一分、二分、五分的個(gè)數(shù) Dim one A
12、s Integer '一分硬幣個(gè)數(shù) Dim two As Integer '二分硬幣個(gè)數(shù) Dim five As Integer '五分硬幣個(gè)數(shù) Const n = 20 '總數(shù)20枚 Dim k As Integer '取法數(shù)量 k = 0 For one = 1 To n '* 錯(cuò)誤1 * For two = one + 1 To n For two = 1 To n-one five = n - one - two '* 錯(cuò)誤2 * If one + two + five = 60 Then If one + two*2 + fiv
13、e*5 = 60 Then k = k + 1 Form1.Print "one=" one; "two=" two; "five=" five End If '* 錯(cuò)誤3 * Next one Next two '* 錯(cuò)誤4 * Next two Next one Form1.Print "k=" kEnd Sub7. -Private Const n = 10Private a(1 To n) As Integer'TJ過程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來'數(shù)據(jù)由SCS
14、J過程產(chǎn)生,數(shù)據(jù)的取值范圍為-10 10 之間的隨機(jī)整數(shù)數(shù)Public Sub TJ() Dim i As Integer Dim t As Single - 1 - t=1 For i = 1 To 10 If - 2 - Then a(i)<0 t = t * a(i) End If Next i Form1.Print "T=" tEnd SubPublic Sub SCSJ() Randomize Form1.Print "原始數(shù)據(jù)" Dim i As Integer Dim j As Integer For i = 1 To n '
15、;隨機(jī)產(chǎn)生0或1,為0時(shí)取負(fù),為1時(shí)取正 j = Int(Rnd * 2) If - 3 - Then J = -1 j=0 a(i) = j * Int(Rnd * (n + 1) Form1.Print a(i); Next i Form1.PrintEnd Sub8. -餐廳發(fā)工資,總計(jì)要給7個(gè)人發(fā)工資統(tǒng)計(jì)100元、50元、10元、5元和1元的票面數(shù)量和總數(shù)量Dim salary(7) As IntegerPublic Sub Money() Dim hundred As Integer, totalhundred As Integer '100元票面數(shù)量、總數(shù)量 Dim fif
16、ty As Integer, totalfifty As Integer '50元票面數(shù)量、總數(shù)量 Dim ten As Integer, totalten As Integer '10元票面數(shù)量、總數(shù)量 Dim five As Integer, totalfive As Integer '5元票面數(shù)量、總數(shù)量 Dim one As Integer, totalone As Integer '1元票面數(shù)量、總數(shù)量 Dim totalsalary As Integer '工資總計(jì) Dim i As Integer, temp As Integer tota
17、lhundred = 0 totalfifty = 0 totalten = 0 totalfive = 0 totalone = 0 totalsalary = 0 For i = 1 To 7 -1- temp = salary (i) hundred = Int(temp / 100) -2- temp = salary (i) Mod 100 fifty = Int(temp / 50) temp = temp - fifty * 50 ten = Int(temp / 10) temp = temp - ten * 10 five = Int(temp / 5) temp = tem
18、p - five * 5 -3- one = temp totalhundred = totalhundred + hundred totalfifty = totalfifty + fifty totalten = totalten + ten totalfive = totalfive + five totalone = totalone + one -4- totalsalary = totalfifty + totalten+ totalfive+ totalone Next i Form1.Print "共需100元" & Str(totalhundred
19、) & "張" Form1.Print "共需50元" & Str(totalfifty) & "張" Form1.Print "共需10元" & Str(totalten) & "張" Form1.Print "共需5元" & Str(totalfive) & "張" Form1.Print "共需1元" & Str(totalone) & "張&quo
20、t; Form1.Print "合計(jì)" & Str(totalsalary) & "元"End Sub Public Sub SalaryData() salary(1) = 1398 salary(2) = 1765 salary(3) = 689 salary(4) = 1500 salary(5) = 832 salary(6) = 590 salary(7) = 1200End Sub9. -DataProduce過程用于產(chǎn)生5*4的數(shù)組MaxLine過程用于計(jì)算最大平均值所在行,并交換第一行與最大平均值所在行Avera
21、ge過程用于計(jì)算各行的平均值PrintArray過程用于打印5*4數(shù)組和每行的平均值Dim a(1 To 5, 1 To 4) As IntegerDim ave(1 To 5) As IntegerPublic Sub MaxLine() Dim i As Integer Dim j As Integer Dim temp As Integer Dim Line_no As Integer '最大平均值的行號(hào) '找出最大平均值所在行 Line_no = 1 For i = 2 To 5 '* 錯(cuò)誤1 * If ave(Line_no) >= ave(i) The
22、n ave(Line_no) < ave(i) '* 錯(cuò)誤2 * Line_no = ave(i) Line_no = i End If Next i '交換第一行與最大平均值所在行 For j = 1 To 4 temp = a(1, j) '* 錯(cuò)誤3 * a(1, j)= a (Line_no, j) a(Line_no, j) = a(1, j) a(Line_no, j) = temp Next j '交換對(duì)應(yīng)行的平均值 temp = ave(1) ave(1) = ave(Line_no) ave(Line_no) = temp '打印
23、交換后的數(shù)據(jù) Form1.Print "交換后的數(shù)據(jù)和平均值" PrintArrayEnd SubPublic Sub DataProduce() Dim i As Integer Dim j As Integer '產(chǎn)生5*4數(shù)組 For i = 1 To 5 For j = 1 To 4 a(i, j) = Int(100 * Rnd) Next j Next iEnd SubPublic Sub Average() Dim i As Integer Dim j As Integer Dim sum As Integer '計(jì)算各行平均值 For i =
24、 1 To 5 sum = 0 For j = 1 To 4 '* 錯(cuò)誤4 * sum = a(i, j) sum = sum +a(i, j) Next j ave(i) = sum / 4 Next i '將數(shù)組和平均值打印出來 Form1.Print "原始數(shù)據(jù)和平均值" PrintArrayEnd SubPublic Sub PrintArray() Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 4 Form1.Print a(i, j); Spc(3); Next j F
25、orm1.Print "平均值=" ave(i) Next iEnd Sub10. -Public Sub Wrap()'該過程用于判斷一個(gè)字符串是否“回文”。'所謂“回文”是指字符串順讀與倒讀都是一樣的,如“潮起潮落,落潮起潮”。 Dim length As Integer Dim str1 As String Dim strleft As String Dim strright As String Dim k As Integer str1 = InputBox("請(qǐng)輸入任意的字符串") '輸入任意字符串 '*錯(cuò)誤1*
26、 length = Val(str1) length = Len(str1) k = 1 Do '*錯(cuò)誤2* strleft = Left(str1, k) '從左邊起逐個(gè)取出一個(gè)字符 strleft = Mid(str1, k,1) '*錯(cuò)誤3* strright = Right(str1, k) '從右邊起逐個(gè)取出一個(gè)字符 strright = Mid(str1,length- k+1,1) '*錯(cuò)誤4* If strleft = strright Then strleft<> strright Exit Do End If k = k
27、+ 1 Loop While k <= length / 2 If k > length / 2 Then Form1.Print str1 & "是回文" Else Form1.Print str1 & "不是回文" End IfEnd Sub11. -'BubbleSort過程是冒泡排序'Swap過程交換兩個(gè)變量數(shù)值'GenerateData過程產(chǎn)生10個(gè)1,20之間互不相同的隨機(jī)整數(shù)Private Const n = 10Private a(1 To n) As IntegerPublic Sub
28、 BubbleSort() Dim i As Integer, j As Integer i = 1 Do For j = i + 1 To n If a(j) > a(i) Then '* 1 * Swap (a(j), a(i) Call Swap (a(j), a(i) End If Next j i = i + 1 '* 2 * Loop While i = n I<= n Form1.Print "排序結(jié)果" For i = 1 To n Form1.Print a(i); Next iEnd SubPublic Sub Generat
29、eData() Dim i As Integer Dim j As Integer Dim b As Boolean For i = 1 To n b = False Do While Not b a(i) = Int(20 * Rnd + 1) b = True '* 3 * For j = 1 To I for j = 1 To I-1 If a(i) = a(j) Then b = False Exit For End If Next j Loop Form1.Print a(i) Next iEnd Sub'* 4 *Public Sub Swap(ByVal a As
30、 Integer, ByVal b As Integer) sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = tempEnd Sub12. -十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)Public Sub Transfer() Dim Hex As String '十六進(jìn)制數(shù) Dim Dec As Double '十進(jìn)制數(shù) Dim temp As String Dim i As Integer Dim n As Integer Hex = InputBox("輸入一個(gè)十六進(jìn)制整數(shù)&qu
31、ot;) '* 錯(cuò)誤1 * n = Val(Hex) n = Len(Hex) i = 0 Do '* 錯(cuò)誤2 * temp = Mid(Hex, i, 1) temp = Mid(Hex, n-i, 1) '* 錯(cuò)誤3 * Dec = Dec + number * 16 I Dec = Dec + number(temp) * 16 i i = i + 1 Loop While i < n '* 錯(cuò)誤4 *Form1.Print str(Hex) & "轉(zhuǎn)換為十進(jìn)制數(shù)為" & str(Dec) Hex & En
32、d SubPublic Function number(str As String) As Integer Select Case str Case "a", "A" number = 10 Case "b", "B" number = 11 Case "c", "C" number = 12 Case "d", "D" number = 13 Case "e", "E" number = 14
33、Case "f", "F" number = 15 Case Else number = Val(str) End SelectEnd Function13. -Public Sub SortData() '產(chǎn)生10個(gè)30,50的隨機(jī)整數(shù),并按從小到大的順序打印出來 Dim a(10) As Integer Dim i As Integer, j As Integer For i = 1 To 10 - 1 - a(i)= Int(Rnd*21)+30 Next i For i = 1 To 9 - 2 - For j=I+1 To 10 If
34、a(i) > a(j) Then - 3 - Swap a(i),a(j)或call swap (a(i),a(j) End If Next j Form1.Print a(i) Next i - 4 - Form1.print a(10)End Sub Public Sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = tempEnd Sub14. -Public Sub PrintArray() '下面程序用于打印5行5列的數(shù)字方陣 '使兩對(duì)角線上元素均為1,其
35、余均為2 '要求打印的數(shù)字方陣兩列數(shù)字之間空3格,兩行之間空一行 Dim a(5, 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 '* 錯(cuò)誤1 * If i <> j Or i <> 6 - j Then or 改成And a(i, j) = 2 Else a(i, j) = 1 End If '* 錯(cuò)誤2 * Form1.Print a(i, j) + Space(3); Form1.Print a(i, j) ; Space(3); Nex
36、t j '* 錯(cuò)誤3 * Form1.Print Form1.Print: Form1.Print Next iEnd Sub15. -Public Sub Combination() '該過程是用于計(jì)算在m個(gè)數(shù)據(jù)中取出n個(gè)數(shù)據(jù)的排列組合值計(jì)算公式為Cmn=m!/(n!*(m-n)!)。 Dim m As Integer Dim n As Integer Dim Cmn As Long Do m = Val(InputBox("請(qǐng)輸入一個(gè)整數(shù)m") n = Val(InputBox("請(qǐng)輸入一個(gè)整數(shù)n(n<=m)") Loop Wh
37、ile m < n '必須保證輸入的兩個(gè)數(shù)m>=n '* 錯(cuò)誤1 * Cmn = nFactor(m) / nFactor(n) * nFactor(m - n) 改成Cmn = nFactor(m) /( nFactor(n) * nFactor(m - n) Form1.Print "排列組合數(shù)為" CmnEnd SubPublic Function nFactor(ByVal n As Integer) As Double '該函數(shù)過程用于計(jì)算n!。 Dim i As Integer Dim temp As Double temp
38、= 1 For i = 1 To n temp = temp * i Next i '*錯(cuò)誤 2 * nFactor(n) = temp nFactor= temp '* 錯(cuò)誤3 * End Sub End Function16. -'該過程是用于查找一批數(shù)據(jù)中的最大數(shù),并輸出最大數(shù)的值及最大數(shù)在數(shù)組中的下標(biāo)值。Dim a(30) As IntegerPublic Sub FindMax() Dim Position As Integer '最大數(shù)在數(shù)組中的下標(biāo) Dim max As Integer '最大數(shù) Dim i As Integer Gener
39、ateData max = -1- a(1) Position = -2- 1 For i = 2 To 30 If a(i) > max Then max = -3- a(i) Position = -4- I End If Next i Form1.Print "最大值=" & Str(max) Form1.Print "最大值的下標(biāo)=" & Str(Position)End SubPublic Sub GenerateData() Dim i As Integer For i = 1 To 30 a(i) = Int(500
40、* Rnd + 1) Form1.Print a(i), If i Mod 5 = 0 Then Form1.Print Next iEnd Sub17. -Public Sub prime() '打印出100到200之間所有的素?cái)?shù),并統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù) Dim i As Integer Dim j As Integer Dim k As Integer Dim t As Integer '統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù) Dim b As Boolean For i = 100 To 200 b = True - 1 - k=2 j = Int(Sqr(i) Do While k <= j And b If i Mod k = 0 Then - 2 - b=False End 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 下設(shè)子公司合同范本
- 2025-2030年中國無功功率表項(xiàng)目投資可行性研究分析報(bào)告
- 出售大型廢船合同范例
- 2025年度建筑工地鋼筋智能化倉儲(chǔ)與物流配送合同
- 伴聚合作合同范本
- 公交輪胎采購合同范例
- 停產(chǎn)勞動(dòng)合同范本
- 人工草坪合同范本
- 2025年印刷裝飾紙項(xiàng)目可行性研究報(bào)告
- 供應(yīng)商技術(shù)合同范本
- 2024新滬教版英語(五四學(xué)制)七年級(jí)上單詞默寫單
- 電力兩票培訓(xùn)
- TCCEAS001-2022建設(shè)項(xiàng)目工程總承包計(jì)價(jià)規(guī)范
- 2024.8.1十七個(gè)崗位安全操作規(guī)程手冊(cè)(值得借鑒)
- 小王子-英文原版
- 二次供水衛(wèi)生管理制度及辦法(4篇)
- 電影《白日夢(mèng)想家》課件
- 婦產(chǎn)科產(chǎn)后虛脫患者的應(yīng)急預(yù)案及程序
- DB11∕T 446-2015 建筑施工測量技術(shù)規(guī)程
- 運(yùn)輸車輛掛靠協(xié)議書(15篇)
- 完整版:美制螺紋尺寸對(duì)照表(牙數(shù)、牙高、螺距、小徑、中徑外徑、鉆孔)
評(píng)論
0/150
提交評(píng)論