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