f = False m = 0: mj = 0 Call Fp(a, i, mj, f) If f = True Then
Text1.Text = Text1.Text & \ End If Next i End Sub
Private Sub Command3_Click() Picture1.Cls Text1.Text = \End Sub
15、编写程序,随机生成30个无重复数的三位整数,找出其中的降序数。所谓降序数是指所有高位数字都大于低位数字的数。
Private Sub Command1_Click()
Dim a(30) As Integer, i As Integer, j As Integer Dim Flag As Boolean Randomize Do
t = Int(900 * Rnd + 100) For j = 1 To i
If t = a(j) Then Exit For Next j
If j = i + 1 Then i = i + 1 a(i) = t
Text1.Text = Text1.Text + Str(a(i))
If i Mod 10 = 0 Then Text1.Text = Text1.Text + vbCrLf If IsDown(a(i)) Then List1.AddItem a(i) Flag = True End If
End If
Loop Until i = 30
If Flag = False Then List1.AddItem \无降序数\End Sub
Private Function IsDown(n As Integer) As Boolean Dim i As Integer, S As String S = CStr(n)
For i = 1 To Len(S) - 1
If Mid(S, i, 1) < Mid(S, i + 1, 1) Then Exit Function Next i
IsDown = True End Function
Private Sub Command2_Click() Text1.Text = \ List1.Clear End Sub
第七章 程序调试
实验
实验7_1
Private Sub Command1_Click() Dim A(7) As Integer, St As String Dim I As Integer, J As Integer Dim Temp As Long St = Text1.Text Temp = Val(St)
'If Temp < 1000000 Or Temp > 9999999 Then
' MsgBox \数据不合要求 \输入一个7位整数\' Exit Sub 'End If
For I = 1 To Len(Temp) A(I) = Mid$(St, I, 1) Next
For I = 1 To 6
For J = I + 1 To Len(Temp) If A(I) < A(J) Then Temp = A(I) A(I) = A(J) A(J) = Temp End If Next Next St = \
For I = 1 To Len(Temp) St = St & A(I) Next
Text2 = St End Sub
Private Sub Command2_Click() Text1.Text = \Text2.Text = \
End Sub
Private Sub Command3_Click() End End Sub
实验7_1思考题目答案: Private Sub Command1_Click() Dim A(7) As Integer, St As String Dim I As Integer, J As Integer Dim Temp As Long St = Text1.Text Temp = Val(St)
'If Temp < 1000000 Or Temp > 9999999 Then
' MsgBox \数据不合要求 \输入一个7位整数\' Exit Sub 'End If
For I = 1 To Len(Temp) A(I) = Mid$(St, I, 1) Next
For I = 1 To 6
For J = I + 1 To Len(Temp) If A(I) < A(J) Then Temp = A(I) A(I) = A(J) A(J) = Temp
End If Next Next St = \
For I = 1 To Len(Temp) St = St & A(I) Next
Text2 = St End Sub
Private Sub Command2_Click() Text1.Text = \Text2.Text = \
End Sub
Private Sub Command3_Click() End End Sub
实验7_2改错题答案: Option Base 1
Private Sub Command1_Click()
Dim Fb(20) As Integer, i As Integer, j As Integer, k As Integer Fb(1) = 1 Fb(2) = 2 i = 2 Do
i = i + 1
Fb(i) = Fb(i - 1) + Fb(i - 2) Loop Until Fb(i) > 1000 For k = 1 To i - 1
Text1 = Text1 & \ Next
For k = 2 To i - 1
For j = 2 To Sqr(Fb(k))
If Fb(k) Mod j = 0 Then Exit For Next
If j > Sqr(Fb(k)) Then Text2 = Text2 & \ Next End Sub
Private Sub Command2_Click() End End Sub
实验7_3改错题答案 Option Base 1
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s As String
Dim a() As Integer, k As Integer, gcd As Integer, lcd As Integer List1.AddItem \聪明数对如下:\For i = 1 To 9 For j = i To 9 s = \
Call gld(i, j, gcd, lcd)
If i * j - (i + j) = (gcd + lcd) Then k = k + 1
ReDim Preserve a(2, k) a(1, k) = i a(2, k) = j
s = s & Str$(a(1, k)) & \ List1.AddItem (s) End If Next Next End Sub
Private Sub gld(ByVal a As Integer, ByVal b As Integer, gcd As Integer, lcd As Integer) Dim aa As Integer, bb As Integer, r As Integer aa = a bb = b Do
r = a Mod b a = b b = r
Loop Until r = 0 gcd = a
lcd = (aa * bb) / gcd End Sub