实验六循环结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六循环结构

【实验目的】

1.掌握For语句和Do..Loop循环语句的使用。

2.掌握循环的规则及其执行过程。

3.掌握如何控制循环条件,防止死循环或不循环。

【实验内容】

1、编写一个对文本框中输入的字符进行转换的程序。窗体如上右图所示。将小写字母转

换成大写字母,大写字母转换成小写字母,空格不转换,其余字符转换成”*”。

要求每输入一个字符马上进行判断和转换,

结果显示在Text2中。

【提示】

1)用文本框的Change事件完成。

2)仔细想想当前需要进行转换的字符

是哪个?在什么位置?结果怎样才能正确

地在Text2中显示

Private Sub Text1_Change()

Dim i As Long, s As String, k As String

For i = 1 To Len(Text1)

s = Mid(Text1, i, 1)

If (Asc(s) >= Asc("a")) And (Asc(s) <= Asc("z")) Then

k = k + UCase(s)

ElseIf (Asc(s) >= Asc("A")) And (Asc(s) <= Asc("Z")) Then

k = k + LCase(s)

ElseIf s = " " Then

k = k + " "

Else

k = k + "*"

End If

Next

Text2 = k

2. 编写程序,找出7的倍数中十位数为2的所有3位数。

Private Sub form_click()

For i = 100 To 999

If i / 7 = Int(i / 7) And Int((i - Int(i / 100) * 100) / 10) = 2 Then

Print i

End If

Next i

End Sub

3. 编写程序用Print语句输出2000年至2500年间的所有闰年,要求每行输出8个。

【提示】:

1)用任意一种循环语句来完成,在循环体内使用选择结构来判断条件。

2)设置一个计数器。每找到一个闰年,则输出年份(控制Print的输出格式,输出后不换行),并使计数器的值加1,当计数器的值正好是8的倍数时,则换行。

Private Sub Form_Click()

Dim i%, n%

For i = 2000 To 2500

If i Mod 4 = 0 And i Mod 100 <> 0 Or i Mod 400 = 0 Then

Print Tab(8 * n); i;

n = n + 1

ElseIf n = 8 Then n = 0: Print

End If

Next i

If n Mod 8 = 0 Then

Print Tab(n); i;

End If

End Sub

4.编写程序解决爱因斯坦台阶问题:有人走一台阶,若以每步走两级则最后剩下一级;若每步走三级则剩两级;若每步走四级则剩三级;若每步走五级则剩四级;若每步走六级则剩五级;若每步走七级则刚好不剩。问台阶至少共有多少级?

【提示】用Do…Loop语句来完成。在循环体内使用选择结构来判断条件。

Private Sub Form_Click()

Do

If x Mod 2 = 1 And x Mod 3 = 2 And x Mod 4 = 3 And x Mod 5 = 4 And x Mod 6 _

= 5 And x Mod 7 = 0 Then

Exit Do

End If

x = x + 1

Loop

Print x

End Sub

5. 我国有13亿人口,如果按人口年增长0.8%计算,多少年后将达到26亿?

【提示】用Do…Loop语句来完成。

Private Sub Form_click()

Dim a As Long, b As Long, c As Integer

c = 0

a = 130000000

b = 260000000

Do While a < b

a = a * (1 + 0.008)

c = c + 1

Loop

Print c

End Sub

6. P270实验D二、8一个富翁试图与陌生人做一笔换钱生意,换钱的规则为:陌生人每天给富翁10万元钱,直到满一个月(30天);富翁第一天给陌生人1分钱,第二天2分,第三天4分,。。。。。。,富翁每天给陌生人的钱是前一天的两倍,直到满一个月。分别显示富翁给陌生人的钱和陌生人给富翁的钱为多少?

Private Sub Form_Click()

Dim sum As Long, sum1 As Long

For i = 1 To 30

sum = sum + 100000

Next i

Print "陌生人给富翁的钱总额"; sum

A = 0.01

For i = 1 To 29

A = A * 2

sum1 = sum1 + A

Next i

Print "富翁给陌生人的钱总额"; sum1 + 0.01

End Sub

【提高题】10个同学参加测试,分数为A,B,C,D,E五个等级,如果A计5分,B计4分,以此类推,求这10个同学的平均成绩。

【提示】可以设置一个变量做累加器,用Select Case语句实现。

Private Sub Command1_Click()

Dim Make(0 To 9) As String, i, s As Long

s = 0

For i = 0 To 9

Make(i) = InputBox("请输入第" & i + 1 & "位同学成绩!", "提示:(成绩为大写ABCDE)")

If Asc(Make(i)) < 65 Or Asc(Make(i)) > 69 Then

MsgBox "输入有误,成绩只限于大写A、B、C、D、E"

Exit Sub

End If

Next i

For i = 0 To 9

Select Case Make(i)

Case "A"

s = s + 5

Case "B"

s = s + 4

Case "C"

s = s + 3

相关文档
最新文档