已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
(二) 程序調(diào)試(參考答案)程序調(diào)試題的操作步驟是:(1)建立一標(biāo)準(zhǔn)EXE工程,將這一模塊程序添加到工程中。如果你是通過雙擊標(biāo)準(zhǔn)模塊程序Model1.BAS進入Visual Basic系統(tǒng)的,則首先需要添加一個窗體模塊。(2)將該標(biāo)準(zhǔn)模塊程序Model1.BAS中代碼的指定的錯誤修改正確或在指定的空位填上適當(dāng)?shù)恼Z句,并在窗體模塊中編寫代碼(常常寫在窗體的Click()事件中)調(diào)用標(biāo)準(zhǔn)模塊中的Sub過程或用戶自定義函數(shù)(如果在標(biāo)準(zhǔn)模塊程序Model1.BAS有多個過程或函數(shù),要注意調(diào)用的先后順序,否則得不到正確結(jié)果),調(diào)試運行程序,使其能輸出正確結(jié)果。(3)按試題要求保存工程。如果你的計算機中沒有模塊程序Model1.BAS,你必需先自己新建一工程,再添加一個默認標(biāo)準(zhǔn)模塊,將題目所附的參考程序輸入(可復(fù)制粘貼),將其中用-n-(n為1,2,3,4,5)部分刪除后改為合適的內(nèi)容或?qū)⒂? 錯誤n * 標(biāo)示的下一語句中的錯誤改正,然后調(diào)試運行程序使其達到該題目的要求。1已有一模塊文件Modify.Bas。該模塊中的Summary過程是用于計算1!+2!+.+20!,并打印出計算結(jié)果,但不完整,請在橫線上填入必要的內(nèi)容,使其完整。Modify.Bas模塊中的nFactor函數(shù)過程用于計算n!。 程序如下:Public Function nFactor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double temp=1 For i = 1 To n temp = temp * i Next i nFactor = tempEnd FunctionPublic Sub summary() Dim sum As Double Dim i As Integer Dim n As Integer n = 20 For i = 1 To n sum = sum + nFactor(i) Next i Form1.Print sum= & sum End Sub2已有一模塊文件Modify.Bas。該模塊中的Calculate過程是產(chǎn)生100個0,99范圍內(nèi)的隨機整數(shù),統(tǒng)計個位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0的數(shù)的個數(shù)并打印出來。 程序如下:Public Sub calculate() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer 產(chǎn)生100個0,99范圍內(nèi)的隨機整數(shù) 每行10個打印出來 For i = 1 To 100 * 錯誤1 * 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)計個位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0的數(shù)的個數(shù) 并將統(tǒng)計結(jié)果保存在數(shù)組x(1),x(2),.,x(10)中,將統(tǒng)計結(jié)果打印出來 For i = 1 To 100 * 錯誤2 * p = Int(a(i) mod 10) 求個位上的數(shù)字 If p = 0 Then p = 10 * 錯誤3 * x(p) = x(p) + 1 Next i Form1.Print 統(tǒng)計結(jié)果 For i = 1 To 10 p = i If i = 10 Then p = 0 * 錯誤4 * Form1.Print 個位數(shù)為 + Str(p) + 共 + Str(x(i) + 個 個位數(shù)為0統(tǒng)計結(jié)果保存在x(10)中 Next iEnd Sub3.已有一模塊文件Modify.Bas。該模塊中的Findat過程是用于在一個字符串變量中查找at,并用消息框給出查找結(jié)果的報告:沒有找到或找到的個數(shù),但不完整,請在橫線上填入必要的內(nèi)容,使其完整。 程序如下:Public Sub Findat() 在字符串str1中查找at Dim str1 As String Dim length As Integer 字符串長度 Dim sum As Integer 查到的個數(shù) Dim i As Integer str1 = InputBox(請輸入一個字符串) length = len(str1) i = 1 sum = 0 Do While i R Form1.Print 太大了,繼續(xù)猜! Case Else Form1.Print 太小了,繼續(xù)猜! End Select times = times + 1 * 錯誤3 * Loop While times 5 Then Form1.Print 猜數(shù)失敗,游戲結(jié)束! * 錯誤4 * Form1.Print 正確答案為 & Str(R) End IfEnd Sub5.已有一模塊文件Modify.Bas。該模塊中的ArmstrongNumber過程是用于求出1-999之間所有的Armstrong數(shù),并打印出來,但不完整,請在橫線上填入必要的內(nèi)容,使其完整。所謂Armstrong數(shù)是指一個數(shù)等于它每位上數(shù)字的立方和。例如:371=33+73+13,那么371就是一個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 Integer 個位上的數(shù)字 For i = 1 To 999 hundred = i 100 ten = (i - hundred * 100) 10 one = i mod 10 If i = hundred3 + ten3 +one3 Then Form1.Print i; is ar mstrong number End If Next iEnd Sub6.已有一模塊文件Modify.Bas。該模塊中的 CountTo60 過程是用于從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分,要求輸出取法的數(shù)量及每一種取法的一分、二分、五分的個數(shù)。 程序如下:Public Sub CountTo60() 從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分 輸出取法的數(shù)量及每一種取法的一分、二分、五分的個數(shù) Dim one As Integer 一分硬幣個數(shù) Dim two As Integer 二分硬幣個數(shù) Dim five As Integer 五分硬幣個數(shù) Const n = 20 總數(shù)20枚 Dim k As Integer 取法數(shù)量 k = 0 For one = 1 To n * 錯誤1 * For two = 1 To n - one five = n - one - two * 錯誤2 * If one + two*2 + five*5 = 60 Then k = k + 1 Form1.Print one=; one; two=; two; five=; five End If * 錯誤3 * Next two * 錯誤4 * Next one Form1.Print k=; kEnd Sub7.已有一模塊文件Modify.Bas。該模塊中的TJ過程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來,但不完整,請在橫線上填入必要的內(nèi)容,使其完整。Modify.Bas模塊中的SCSJ過程是產(chǎn)生數(shù)據(jù),數(shù)據(jù)的取值范圍為-10 10 之間的隨機數(shù)。 程序如下:Private Const n = 10Private a(1 To n) As IntegerTJ過程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來數(shù)據(jù)由SCSJ過程產(chǎn)生,數(shù)據(jù)的取值范圍為-10 10 之間的隨機整數(shù)Public Sub TJ() Dim i As Integer Dim t As Single t=1 For i = 1 To 10 If a(i)0 Then 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 隨機產(chǎn)生0或1,為0時取負,為1時取正 j = Int(Rnd * 2) If j=0 Then j = -1 a(i) = j * Int(Rnd * (n + 1) Form1.Print a(i); Next i Form1.PrintEnd Sub8.已有一模塊文件Modify.Bas。該模塊中的Money過程是用于統(tǒng)計一個有7個工作人員的餐廳發(fā)工資所需的100元、50元、10元、5元和1元的票面數(shù),但不完整,請在橫線上填入必要的內(nèi)容,使其完整。 Modify.Bas模塊中的SalaryData過程是給出7個員工的工資。(工資單位是元) 程序如下:Dim salary(7) As IntegerPublic Sub Money() Dim hundred As Integer, totalhundred As Integer 100元票面數(shù)量、總數(shù)量 Dim fifty 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 工資總計 Dim i As Integer, temp As Integer totalhundred = 0 totalfifty = 0 totalten = 0 totalfive = 0 totalone = 0 totalsalary = 0 For i = 1 To 7 temp = salary ( i ) hundred = Int(temp / 100) temp = temp hundred * 100 fifty = Int(temp / 50) temp = temp - fifty * 50 ten = Int(temp / 10) temp = temp - ten * 10 five = Int(temp / 5) temp = temp - five * 5 one = temp totalhundred = totalhundred + hundred totalfifty = totalfifty + fifty totalten = totalten + ten totalfive = totalfive + five totalone = totalone + one totalsalary = totalsalary + salary ( i ) Next i Form1.Print 共需100元 & Str(totalhundred) & 張 Form1.Print 共需50元 & Str(totalfifty) & 張 Form1.Print 共需10元 & Str(totalten) & 張 Form1.Print 共需5元 & Str(totalfive) & 張 Form1.Print 共需1元 & Str(totalone) & 張 Form1.Print 合計 & Str(totalsalary) & 元End SubPublic Sub SalaryData() salary(1) = 1398 salary(2) = 1765 salary(3) = 689 salary(4) = 1500 salary(5) = 832 salary(6) = 590 salary(7) = 1200End Sub9.已有一模塊文件Modify.Bas。該模塊中的 MaxLine 過程用于查找一個5行4列的二維數(shù)組中行平均值最大的行,并將該行所有數(shù)據(jù)調(diào)整到第一行的位置。 Modify.Bas模塊中的DataProduce 過程用于產(chǎn)生原始數(shù)據(jù);Average 過程用于計算各行的平均值;PrintArray過程用于打印二維數(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 最大平均值的行號 找出最大平均值所在行 Line_no = 1 For i = 2 To 5 * 錯誤1 *If ave(Line_no) ave(i) Then * 錯誤2 * Line_no = i End If Next i 交換第一行與最大平均值所在行 For j = 1 To 4 temp = a(1, j) * 錯誤3 * a(1, j)= a (Line_no, j) a (Line_no, j) = temp Next j 交換對應(yīng)行的平均值 temp = ave(1) ave(1) = ave(Line_no) ave(Line_no) = temp 打印交換后的數(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 計算各行平均值 For i = 1 To 5 sum = 0 For j = 1 To 4 * 錯誤4 * 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 Form1.Print 平均值=; ave(i) Next iEnd Sub10已有一模塊文件Modify.Bas。該模塊中的 Wrap 過程用于判斷一個字符串是否“回文”。所謂“回文”是指字符串順讀與倒讀都是一樣的,如“潮起潮落,落潮起潮”。 程序如下:Public Sub Wrap() Dim length As Integer Dim str1 As String Dim strleft As String Dim strright As String Dim k As Integer str1 = InputBox(請輸入任意的字符串) 輸入任意字符串, 如“潮起潮落,落潮起潮” *錯誤1* length = len(str1) k = 1 Do *錯誤2* strleft = mid(str1, k,1) 從左邊起逐個取出一個字符 *錯誤3* strright =mid(str1, length +1 k ,1) 從右邊起逐個取出一個字符 *錯誤4* If strleft strright Then Exit Do End If k = k + 1 Loop While k length / 2 Then Form1.Print str1 & 是回文 Else Form1.Print str1 & 不是回文 End IfEnd Sub11.已有一模塊文件Modify.Bas。該模塊中的BubbleSort過程是冒泡排序法;GenerateData過程產(chǎn)生10個1,20之間互不相同的隨機整數(shù);Swap過程交換兩個變量的數(shù)值。 程序如下:Private Const n = 10Private a(1 To n) As IntegerBubbleSort過程是冒泡排序Swap過程交換兩個變量數(shù)值GenerateData過程產(chǎn)生10個1,20之間互不相同的隨機整數(shù)Public Sub 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 Form1.Print 排序結(jié)果 For i = 1 To n Form1.Print a(i); Next iEnd SubPublic Sub GenerateData() 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 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(a As Integer, b As Integer) 去掉ByVal,數(shù)組不能以ByVal 傳遞 Dim temp As Integer temp = a a = b b = tempEnd Sub12.已有一模塊文件Modify.Bas。該模塊中的 Transfer 過程用于將一個十六進制整數(shù)轉(zhuǎn)換為十進制整數(shù);number 函數(shù)過程用于將一個十六進制符號轉(zhuǎn)換為數(shù)值。 程序如下:Public Sub Transfer() Dim Hex As String 十六進制數(shù) Dim Dec As Double 十進制數(shù) Dim temp As String Dim i As Integer Dim n As Integer Hex = InputBox(輸入一個十六進制整數(shù)) * 錯誤1 * n = len(Hex) i = 0 Do * 錯誤2 * temp = Mid(Hex, n - i , 1) * 錯誤3 * Dec = Dec + number(temp) * 16 i i = i + 1 Loop While i a(j) Then Swap a(i),a(j) End If Next j Form1.Print a(i) Next i Form1.print a(i) 或 a(10) 即最后一個End SubPublic Sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = tempEnd Sub14.已有一模塊文件Modify.Bas。該模塊中的PrintArray過程是用于打印一個5行5列的數(shù)字方陣,并使兩對角線上元素均為1,其余均為2。要求打印的數(shù)字方陣兩列數(shù)字之間空3格,兩行之間空一行。 程序如下:Public Sub PrintArray() 下面程序用于打印5行5列的數(shù)字方陣 使兩對角線上元素均為1,其余均為2 要求打印的數(shù)字方陣兩列數(shù)字之間空3格,兩行之間空一行 只要修改標(biāo)出出錯位置的下面那一條語句 Dim a(5, 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 * 錯誤1 * If i j and i 6 - j Then a(i, j) = 2 Else a(i, j) = 1 End If * 錯誤2 * Form1.Print a(i, j) & Space(3); 數(shù)字與空字符串不能相加 Next j * 錯誤3 * Form1.Print : Form1.Print Next iEnd Sub15.已有一模塊文件Modify.Bas。該模塊中的Combination過程是用于計算在m個數(shù)據(jù)中取出n個數(shù)據(jù)的排列組合值,計算公式為Cmn=m!/(n!*(m-n)!)。Modify.Bas模塊中的nFactor函數(shù)過程用于計算n!。 程序如下:Public Sub Combination() Dim m As Integer Dim n As Integer Dim Cmn As Long Do m = Val(InputBox(請輸入一個整數(shù)m) n = Val(InputBox(請輸入一個整數(shù)n(n=m) * 錯誤1 * Loop While m =n * 錯誤2 * Cmn = nFactor(m) /( nFactor(n) * nFactor(m - n) Form1.Print 排列組合數(shù)為; CmnEnd SubPublic Function nFactor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double temp = 1 For i = 1 To n temp = temp * i Next i *錯誤 3 * nFactor = temp 去掉nFactor (n)中的(n)部分 * 錯誤4 *End Sub16.已有一模塊文件Modify.Bas。該模塊中的FindMax過程是用于查找一批數(shù)據(jù)中的最大數(shù),并打印出最大數(shù)的值及最大數(shù)在數(shù)組中的下標(biāo)值,但不完整,請在橫線上填入必要的內(nèi)容,使其完整。Modify.Bas模塊中的GenerateData過程用于產(chǎn)生30個1-500之間的隨機整數(shù)并5個一行打印出來。 程序如下:Dim a(30) As IntegerPublic Sub FindMax() Dim Position As Integer 最大數(shù)在數(shù)組中的下標(biāo) Dim max As Integer 最大數(shù) Dim i As Integer GenerateData max = a(1) Position =1 For i = 2 To 30 If a(i) max Then max = a(i) Position = 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 * Rnd() + 1) Form1.Print a(i), If i Mod 5 = 0 Then Form1.Print Next iEnd Sub17.已有一模塊文件Modify.Bas。該模塊中的 Prime 過程是求出100到200之間所有的素數(shù),并打印出來,但不完整,請在橫線上填入必要的內(nèi)容,使其完整。程序如下:Public Sub prime() 打印出100到200之間所有的素數(shù),并統(tǒng)計素數(shù)的個數(shù) Dim i As Integer Dim j As Integer Dim k As Integer Dim t As Integer 統(tǒng)計素數(shù)的個數(shù) Dim b As Boolean For i = 100 To 200 b =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年代保管檔案協(xié)議(2篇)
- 2025年企業(yè)單位雇傭合同模板(2篇)
- 2025年買賣合作廉潔協(xié)議經(jīng)典版(2篇)
- 2025年交通事故自行協(xié)商協(xié)議(三篇)
- 2025年個人汽車貸款擔(dān)保合同簡單版(2篇)
- 地鐵項目居間合同協(xié)議書
- 八年級大考數(shù)學(xué)試卷
- 幼兒園全包裝修合同條款
- 沙石運輸誠信體系建設(shè)合同
- 樂器運輸協(xié)調(diào)協(xié)議
- 2024年微生物檢測試劑行業(yè)商業(yè)計劃書
- 河南開封介紹課件
- 通信設(shè)備售后服務(wù)方案
- 高中英語選擇性必修一單詞表
- 初中生物校本課程綱要
- 物業(yè)公司介紹
- 賣花生混聲合唱簡譜
- 數(shù)學(xué)方法在物理中的應(yīng)用
- 【永輝超市公司員工招聘問題及優(yōu)化(12000字論文)】
- 心肺復(fù)蘇指南
- 《智能物聯(lián)網(wǎng)導(dǎo)論》AIoT導(dǎo)論-第2章課件
評論
0/150
提交評論