[vb专题]练习题(三)
前言
这个是网上找到的题目,直接贴地址了,就不再贴图和题目了。(原题是修改程序,但是没程序,我直接写对应题目要求的程序了。)链接:题目点我(原先设置回复可见链接,已取消)
第一题
题目的答案有问题。前5项的和应该是3.55
Private Sub Form_Click()
Dim s As Double, x As Integer
x = InputBox("请输入项数", "项数")
For i = 1 To x
s = s + Val(i / (i + 1))
Next i
St = "前" & x & "项的和是:" & s
MsgBox St, vbOKOnly, "求和"
End Sub
---------------------------
2020/12/30更新:
之前看错这题题目了,感谢@Po7mn1指出,以下为他的代码:
n = 5
For i = 1 To n
If i Mod 2 = 0 Then
s = s + i / -(i + 1)
Else
s = s + i / (i + 1)
End If
Next
Print s
第二题
这题网上直接搜50以内的勾股数的话,容易被误导为12组,实际上是20组。
Private Sub Command1_Click()
For i = 1 To 50
For j = 1 To 50
c = Int(Sqr(i ^ 2 + j ^ 2))
If i ^ 2 + j ^ 2 = c ^ 2 And i < j And c <= 50 Then s = s + 1
Next j
Next i
Print s
End Sub
第三题
Dim n As Integer
Private Sub Command1_Click()
n = InputBox("请输入图形的行数(1-9)", "输入")
Do
If n <= 0 Or n > 9 Then
MsgBox "行数不符合,请重新输入", 0, "输入错误"
n = InputBox("请输入图形的行数(1-9)", "输入")
End If
Loop Until n >= 1 And n <= 9
End Sub
Private Sub Command2_Click()
For i = 1 To n
Print Tab(n + 1 - i);
For j = 1 To i * 2 - 1
If j Mod 2 = 0 Then
Print "*";
Else
Print CStr(i);
End If
Next j
Print
Next i
End Sub
第四题
Private Sub Command1_Click()
Dim b As String
For i = 1 To Len(Text1)
If Mid(Text1, i, 1) = 9 Then
b = b & "A"
Else
b = b & Val(Mid(Text1, i, 1)) + 1
End If
Next i
Text2 = b
End Sub
Private Sub Command2_Click()
Text3 = StrReverse(Text2)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
第五题
Dim a(30), b(30)
Private Sub Command1_Click()
For i = 1 To 30
Randomize
a(i) = Int(Rnd * 90 + 11)
List1.AddItem a(i), i - 1
Next i
End Sub
Private Sub Command2_Click()
Sum = 1
flag = 0
For i = 1 To 30
For j = 2 To a(i) - 1
If a(i) Mod j <> 0 Then flag = 1 Else flag = 0: Exit For
Next j
If flag = 1 Then List2.AddItem a(i): flag = 0: b(Sum) = a(i): Sum = Sum + 1
Next i
End Sub
Private Sub Command3_Click()
For i = 1 To List2.ListCount - 1
For j = i + 1 To List2.ListCount
If b(i) < b(j) Then t = b(j): b(j) = b(i): b(i) = t
Next j
Next i
For i = 1 To List2.ListCount
List3.AddItem b(i)
Next i
End Sub
Private Sub Command4_Click()
For i = 1 To 30
List1.RemoveItem 0
Next i
For i = 1 To List2.ListCount
List2.RemoveItem 0
List3.RemoveItem 0
Next i
End Sub
未经允许不得转载:Sansmall's Blog » [vb专题]练习题(三)
发表于2020-12-30 20:10
n = 5
For i = 1 To n
If i Mod 2 = 0 Then
s = s + i / -(i + 1)
Else
s = s + i / (i + 1)
End If
Next
Print s
发表于2020-12-29 20:10
可以通过 i % 2 = 0 来判断,分子除分母
伪代码:
for (i=1;i<n;i++){
if i % 2 == 0:
s = n / -(i + 1)
else:
s = n / (i + 1)
}
2020-12-30 22:13
发表于2020-05-23 08:45
发表于2020-05-19 23:59
发表于2020-05-19 20:38
发表于2020-05-19 19:44
发表于2020-05-17 16:05