VB程序改錯(cuò)題_第1頁(yè)
VB程序改錯(cuò)題_第2頁(yè)
VB程序改錯(cuò)題_第3頁(yè)
VB程序改錯(cuò)題_第4頁(yè)
VB程序改錯(cuò)題_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、程序改錯(cuò)1.題目:已知C的公式表示如下:' n!' C=-' (n-m)!*m! '函數(shù)過(guò)程fac( )求k!函數(shù),在Fomr_Click事件中完成運(yùn)算,'請(qǐng)修正程序中錯(cuò)誤。'-Option ExplicitPrivate Function fac(k As Integer) As Single Dim x As Single, j As Integer x = 0 For j = 1 To k x = x j Next j fac = xEnd FunctionPrivate Sub Form_Click() Dim C As Single D

2、im m As Integer, n As Integer m = Val(InputBox("請(qǐng)輸入一個(gè)整數(shù)(m):") n = Val(InputBox("請(qǐng)輸入一個(gè)整數(shù)(n):") C = fac(n) / fac(n - m) * fac(m) Print "C=" CEnd Sub2.題目:程序功能為打印下列圖形:' *' *' *' *' *'-Option ExplicitPrivate Sub Form_Click()ClsDim i As IntegerDim j As

3、 IntegerFor i = 1 To 7 For j = 1 To 5 Print "*" LoopPrintNext iEnd Sub3.題目:本程序的功能是隨機(jī)產(chǎn)生的10個(gè)兩位正整數(shù),并進(jìn)行遞減排序。'-Option ExplicitPrivate Sub CreateRND() Dim Temp As Integer Dim I As Integer Dim N As Integer Dim X(10) As Integer Dim J As Integer N = 10 Print "數(shù)據(jù):" For I = 1 To N X(I)

4、= Int(Rnd() * 90) Print X(I); Next I Print Print "排序:" For I = 0 To N - 1 For J = I + 1 To N If X(I) > X(J) Then Temp = X(I) X(J) = X(I) X(I) = Temp End If Next J Print X(I); Next I PrintEnd SubPrivate Sub Command1_Click() CreateRNDEnd Sub4.題目:隨機(jī)產(chǎn)生并輸出100以內(nèi)大于50的20個(gè)整數(shù),輸出時(shí)每5個(gè)數(shù)一行。'-Opti

5、on ExplicitPrivate Sub Form_Click()Randomize TimerDim i As Integer, ma As Integeri = 1Do Until i < 20 ma = Rnd() * 100 1 If ma > 50 Then Print ma; i = i + 1If i 5 = 0 ThenPrint End IfEnd IfLoopEnd Sub5題目:以下程序段用于計(jì)算5的N次方。'-Option ExplicitPrivate Sub Form_Click() Dim n As Integer, k As Intege

6、r, s As Long n = InputBox(" Input n ") k = 0 s = 0 Do While k <= n s = s * 5 k = k + 1 Next Print "5的" "n次方是" sEnd Sub6.題目:下面程序可輸出如下圖形:' *' *' *' *' *'- Option ExplicitPrivate Sub Form_Click()Dim m As Integer, n As Integer, s As String, i As I

7、nteger, j As Integern = 4m = 1s = "*"For i = 5 To 1 Step -1 Print Spc(n) For j = 1 To 2 * m - 1 Print s; Next j Print n = n + 1 m = m - 1Next iEnd Sub7.題目:用自定義函數(shù)的方法求sum(x),求當(dāng)-1x1時(shí),' sum(x)=x/2!+x2/3!+x3/4!+xn/(n+1)!,' 當(dāng)x1或x-1時(shí),函數(shù)值為0。當(dāng)n=0時(shí),輸入數(shù)' 據(jù)錯(cuò)誤。X、N都是由用戶輸入。'-Option Explic

8、itPrivate Sub Command1_Click() Dim s As Single Dim n As Integer, x As Single, k As Integer n = Val(InputBox("Please input a integer value:") x = Val(InputBox("Please input a single value:") If n <= 0 Then k = MsgBox("數(shù)據(jù)輸入錯(cuò)誤!", vbRetryCancel + vbExclamation, "數(shù)據(jù)輸

9、入") Exit Sub End If s = Sum(x, n) Print sEnd SubFunction Sum(x As Single, n As Integer) Dim i As Integer, ss As Long ss = 1 Sum = 0 If x > 1 Or x < -1 Then Exit Do Else For i = 2 To n ss = ss * i Sum = x (i - 1) / ss Next i End IfEnd Function8.題目:以下程序功能是輸入三個(gè)數(shù),由大到小排序。-Option ExplicitDim A

10、As IntegerDim B As IntegerDim C As IntegerPrivate Sub Form_Click() Dim nTemp As Integer A = Val(InputBox("Please input first integer", "輸入正整數(shù)") B = Val(InputBox("Please input second integer", "輸入正整數(shù)") C = Val(InputBox("Please input third integer", &q

11、uot;輸入正整數(shù)") If A <= C Then nTemp = A A = B B = nTemp End If If B <= C Then nTemp = A A = C C = nTemp End If If A <= B Then nTemp = B B = C C = nTemp End If Print "The integers in order is" A; B; CEnd Sub9.題目:用輾轉(zhuǎn)相除法求兩個(gè)整數(shù)的最大公約數(shù)。'-Option ExplicitFunction gcd(ByVal m As Integ

12、er, ByVal n As Integer) As Integer Dim r As Integer r = m Mod n Do While r <> 0 n = m n = r r = m Mod n Loop gcd = rEnd FunctionPrivate Sub Form_Click() Dim a As Integer, b As Integer, c As Integer a = InputBox("輸入一個(gè)整數(shù)") b = InputBox("輸入一個(gè)整數(shù)") a = Val(a) b = Val(b) Call gcd

13、(a, b) Print a, b, cEnd Sub10.題目:下面的程序用“冒泡”法完成數(shù)組a中的10個(gè)整數(shù)按升序排列,請(qǐng)修正程序中錯(cuò)誤。'-Option ExplicitPrivate Sub Command1_Click() Dim a Dim i As Integer, j As Integer, a1 As Integer a = Array(-2, 5, 24, 58, 43, -10, 87, 75, 27, 83) For i = 1 To 9 For j = i+1 To 9 If a(j) >= a(i) Then a1 = a(i a(i) = a(j)

14、a(j) = a(i) End If Next j Next i For i = 0 To 9 Print a(i) Next iEnd Sub11.題目:程序功能為求解一元二次方程的實(shí)根,請(qǐng)修正程序中錯(cuò)誤。'-Option ExplicitPrivate Sub Form_Load() Dim a!, b!, c!, root1#, root2#, work As Double a = Val(InputBox(" 請(qǐng)輸入系數(shù)a的值") b = Val(InputBox(" 請(qǐng)輸入系數(shù)b的值") c = Val(InputBox("

15、請(qǐng)輸入系數(shù)c的值") work = b * 2 - 4 * a * c If work >= 0 And a <> 0 Then root1 = (Sqr(work) / (2 * a) root2 = (Sqr(work) / (2 * a) Debug.Print "有二個(gè)實(shí)根" + Str$(root1) + "," + Str$(root2) Else Debug.Print "無(wú)實(shí)根!" End IfEnd Sub12.題目:下面程序的作用是產(chǎn)生100以內(nèi)的全部素?cái)?shù),并按每行5個(gè)數(shù)據(jù)輸出。'

16、;-Option ExplicitPrivate Function prime(ByVal n As Integer) Dim i As Integer prime = 1 If n <= 1 Then prime = 0 For i = 1 2 To n - 1 If n Mod i = 0 Then prime = 0 Next iEnd FunctionPrivate Sub Form_Click() Dim i As Integer, k As Integer k = 0 For i = 1 To 100 If prime(i) = 1 Then Print Tab(k Mod

17、5) * 8); i k = k + 1 If k Mod 4 = 0 Then Print ; End If Next iEnd Sub13.題目:輸出40以內(nèi)能夠被3整除的數(shù),要求輸出結(jié)果為5個(gè)數(shù)一行。'-Option ExplicitPrivate Sub Form_Click()ClsDim x As IntegerDim i As Integeri = 1For x = 1 To 40If (x / 3) = (x 3) Then Print x i = i + 1End If If i Mod 3 = 0 Then PrintEnd IfNext xEnd Sub14題目:

18、程序功能:求1+2+3,直到其和超出3000為止,并輸入結(jié)果。'-Option ExplicitPrivate Sub Form_Click()ClsDim i As IntegerDim s As Singlei = 1s = 1Do i = i + 2 1s = s + iLoop s > 3000Print "從1 到:" i; "的和是" sEnd Sub15.題目:以下程序段用于輸出100-300的所有素?cái)?shù)'-Option ExplicitPrivate Sub Form_Click()Dim n As Integer,

19、k As Integer, i As Integer, swit As IntegerFor n = 101 To 300 Step 2 k = Int(Sqr(n) i = 2swit = 1While swit = 0 If n Mod i = 0 Then swit = 1 Else i = i - 1 End If WendIf swit = 0 Then Print n;End IfNext nEnd Sub16.題目:本程序的功能是隨機(jī)產(chǎn)生的10個(gè)兩位正整數(shù),并進(jìn)行遞減排序。'-Option ExplicitPrivate Sub CreateRND() Dim Temp

20、As Integer Dim I As Integer Dim N As Integer Dim X(10) As Integer Dim J As Integer N = 10 Print "數(shù)據(jù):" For I = 1 To N X(I) = Int(Rnd() * 90) Print X(I); Next I Print Print "排序:" For I = 0 To N - 1 For J = I + 1 To N If X(I) > X(J) Then Temp = X(I) X(J) = X(I) X(I) = Temp End If

21、 Next J Print X(I); Next I PrintEnd SubPrivate Sub Command1_Click() CreateRNDEnd Sub17.題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)。'-Option ExplicitPrivate Sub Form_Click() Dim m As Integer, n As Integer, r As Integer m = InputBox("輸入m的值:") n = InputBox("輸入n的值:") Do While n <> 0 r = m / n m = n n = m r Loop Print "兩數(shù)的最大公因子為:" nEnd Sub18題目:下面程序?qū)?0個(gè)整數(shù)從大到小排序'-Option ExplicitPrivate Sub Form_Click()Dim t%, m%, n%, w%Dim a(10) As IntegerFor m = 1 To 10 a(m) = Int(10 + Rnd() * 90) Print a(m); " &quo

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論