18个VB经典例题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

Print

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

相关文档
最新文档