18个VB经典例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、随机产生三个100-300之间的整数,判断这三个整数是否能构成三角形,如果可以,求三角形的面积。
Dim x As Integer, y As Integer, z As Integer
Dim c As Single, s As Single
x = Int(Rnd * 201 + 100)
y = Int(Rnd * 201 + 100)
z = Int(Rnd * 201 + 100)
If x + y > z And x + z > y And y + z > x Then
c = (x + y + z) / 2
s = Sqr(c * (c - x) * (c - y) * (c - z))
Print "三角形面积是:" & s
Else
Print "构不成三角形"
End If
2、随机产生0-100之间的60名学生的数学分数,分别统计分数在[)10,0、[)20,10、[)30,20、[)40,30、[)50,40、[)60,50、[)70,60、[)80,70、[)90,80、[]
90、之间的学生人数。
100
,
Dim a%, b%, c%, d%, e%, f%, g%, h%, i%, j%
Dim x As Single
For m = 1 To 60 '产生60名学生的分数
x = Rnd * 101 '产生0-100的分数
Print x;
If x >= 90 Then
a = a + 1
ElseIf x >= 80 Then
b = b + 1
ElseIf x >= 70 Then
c = c + 1
ElseIf x >= 60 Then
d = d + 1
ElseIf x >= 50 Then
e = e + 1
ElseIf x >= 40 Then
f = f + 1
ElseIf x >= 30 Then
g = g + 1
ElseIf x >= 20 Then
h = h + 1
ElseIf x >= 10 Then
i = i + 1
Else
j = j + 1
End If
Next m
Print a, b, c, d, e, f, g, h, i, j
3、我国有13亿人口,按照人口年增长0.8%计算,多少年以后我国人口超过26亿。
Dim x As Double '人数一定要定义成双精度的
Dim n As Integer
x = 1300000000
n = 0
Do While x <= 2600000000#
x = x * 1.008
n = n + 1
Loop
Print n; "年以后,我国人口将超过26亿"
4、编写一个程序求一元二次方程的根,要求对输入系数的合法性进行验证,并规范输出结果(保留两位小数)。(上机指导P44)
Dim a!, b!, c!, d!, x1!, x2!
a = Text1.Text
b = Text2.Text
c = Text3.Text
d = b * b - 4 * a * c
If a = 0 Then
MsgBox "a不能为0" '判断是否能构成一元二次方程
ElseIf d >= 0 Then
x1 = (-b + Sqr(d)) / (2 * a) '求方程的两个根
x2 = (b + Sqr(d)) / (2 * a)
x1 = Format(x1, ".##") '对根规范化输出
x2 = Format(x2, ".##")
End If
Print x1, x2
5、某次歌手大奖赛,共有10名选手,有10名评委打分。要求评委给10位选手打分,去掉一个最高分,去掉一个最低分,求出该选手的平均分。
Dim i As Integer
Dim j As Integer
Dim max As Single, min As Single, sum As Single, aver As Single
For i = 1 To 10 '十个选手的成绩
max = 0
min = 100
sum = 0
For j = 1 To 10 '十个评委的分数
x = Rnd * 101 '产生0-100的分数
If x > max Then max = x
If x < min Then min = x
sum = sum + x
Next j
aver = (sum - max - min) / 8
Print aver;
Next i
6、求1到100以内的素数。
Dim i As Integer, j As Integer, prime As Boolean
For i = 1 To 100
prime = True
For j = 2 To Sqr(i) '判断一个数是否是素数
If i Mod j = 0 Then
prime = False
End If
Next j
If prime Then '如果prime = True则i是素数
Print i & "是素数"
Else
Print i & "不是素数" '如果prime = False则i不是素数
End If
Next i
7、求出100以内的所有勾股数(勾股数为a2+b2=c2,c为自然数,且a<>b)
Dim a As Integer, b As Integer, c As Integer
For a = 1 To 100
For b = 1 To 100
For c = 1 To 100
If c * c = a * a + b * b And a <> b Then
Print a; b; c;
End If
Next c
Next b
Next a
8、把输入的字符串逆序输出。
Dim str As String, strRe As String
Dim i As Integer
str = Text1.Text '原字符串
For i = 1 To Len(str)
strRe = Mid(str, i, 1) & strRe '字符串逆序
Next i
Text2.Text = strRe '逆序后的字符串
9、随机产生0-100之间的60名学生的数学分数,分别统计分数在[)10,0、[)20,10、[)30,20、[)40,30、[)50,40、[)60,50、[)70,60、[)80,70、[)90,80、[]
90、之间的学生人数。
100
,
(用数组实现)
Dim i As Integer, s(1 To 10) As Integer, mark(1 To 60) As Integer,
For i = 1 To 60