vb 基本控制结构
信息工程学院1
程序设计基础(VB) 实验/实习报告
学院:创新实验学院班级:生科创新123 姓名:李欣莅学号:2012010422 成绩:A
实习三基本控制结构
一、实习目的
1. 掌握三种控制结构的编程思路
2. 掌握为程序提供数据的方法,特别是从数据文件中获得数据的方法
3. 掌握程序结果输出的几种方法,特别是将数据输出到数据文件的方法
4. 掌握源程序的缩进书写格式
5. 理解累加、累积、判断素数、求极值、输出数列、最大公约数与最小公倍数等常用算法及程序实现方法。
二、实习内容
1. 完成教材顺序结构例题验证,掌握程序的基本组成部分,理解顺序结构程序设计的基本方法,掌握数据输入、输出的方法和途径。
2. 完成教材编程题1小题。
3. 完成教材选择结构例题验证,理解选择结构程序设计的基本方法,理解选择语句用法,掌握实现选择功能的基本算法。
4. 完成教材编程题2、3、4、5、6小题。
5. 完成教材循环结构例题验证,理解选择循环程序设计的基本方法,理解循环语句用法,掌握实现循环功能的基本算法。
6. 完成教材编程题有关循环部分的习题。
三、程序设计及代码
1. 顺序结构:
习题1
实验报告的内容与格式按任课教师的要求书写。
Private Sub Command1_Click()
Dim a As Singl e, b As Singl e, c As Singl e, d As Singl e x = Val(InputBox("请输入x 变量的值")) a = Sqr(x) b = (x) ^ 2 c = (x) ^ 3 d = (x) ^ (1 / 3)
Print "平方根为:" & round(a, 3), "平方为:" & round(b, 3), "立方为:" & round(c, 3), "立方根为:" & round(d, 3) End Sub
2. 选择结构:
习题二
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
If a > b Then
If a > c And b > c Then
Print "最大值为" & a; ",最小值为" & c ElseIf a > c And c > b Then
Print "最大值为" & a; ",最小值为" & b ElseIf c > a Then
Print "最大值为" & c; "最小值为" & b
End If
Else
If b > c And a > c Then
Print "最大值为" & b; ",最小值为" & c ElseIf b > c And c > a Then
Print "最大值为" & b; ",最小值为" & a ElseIf c > b Then
Print "最大值为" & c; "最小值为" & a
End If
End If
End Sub
习题三
Private Sub Command1_Click()
Dim x$
x = Val(InputBox("请输入一个年份")) If x Mod 4 = 0 Then
If x Mod 100 = 0 Then
Print "不是闰年"
Else
Print "闰年"
End If
ElseIf x Mod 400 = 0 Then
Print "闰年"
Else
Print "不是闰年"
End If
End Sub
习题4
Private Sub Command1_Click()
Dim x As Integer
x = Val(InputBox("请输入一个数")) If x Mod 5 = 0 Then
MsgBox x & "能被5整除"
Else
MsgBox x & "不能被5整除"
End If
End Sub
习题5
Private Sub Command1_Click()
Dim a!, b!
a = InputBox("请输入您的收入:")
If a < 300 Then Print "免征。"
ElseIf a <= 500 Then
b = (a - 300) * 0.002
ElseIf a <= 5000 Then
b = (a - 500) * 0.003 + 200 * 0.002
ElseIf a > 5000 Then
b = (a - 5000) * 0.004 + 4500 * 0.003 + 200 *0.002 End If
MsgBox "您需要纳税的金额为:" & b
End Sub
习题6
Private Sub Command1_Click() n = 0
Dim a As Integer
For a = 100 To 200
If a Mod 3 = 0 Then
Else
Print a;
n = n + 1
If n Mod 8 = 0 Then
End If
End If
Next a
End Sub
3. 循环结构:
习题7
Private Sub Command1_Click() n = 0
Dim m%, i%
For m = 1000 To 1100
For i = 2 To m - 1
If m / i = m \ i Then
Exit For
End If
Next i
If i = m Then
Print m;
n = n + 1
If n Mod 6 = 0 Then
End If
End If
Next m
End Sub
习题 8
Private Sub Command1_Click()
Dim b As Integer, n As Integer, a As Integer a = Rnd() * 100
n = 1
Do
b = Val(InputBox("请输入一个数"))
If b > a Then
Print "大了点"
Else
If b < a Then
Print "小了点"
Else
Print "猜中了"
Exit d o
End If
End If
n = n + 1
Loop Until n > 8
If N>8 then MsgBox "正确答案" & a End Sub
习题9
Private Sub Command1_Click()
Dim x As Integer
n = 0
For x = 100 To 999
If Left(x, 1) = Right(x, 1) Or Left(x, 1) = Mid(x, 1) = Right(x, 1) Then
Print x;
n = n + 1
If n Mod 8 = 0 Then
End If
End If
Next x
End Sub
习题10
Private Sub Command1_Click()
Dim a As Integer, e As Singl e, b As Double
e = 1
b = 1
For a = 1 To 100
b = b * a
e = e + (1 / b)
If b < 10 ^ (-4) Then
Exit For
End If
Next a
Print "e≈1+1/1!+…=" & e
End Sub
习题11
Private Sub Command1_Click()
Dim n As Integer, m As Integer, y As Integer m = Val(InputBox("请输入m变量的值")) n = 2
y = 1
Do
y = y + (n) ^ 3
If y >= m Then
Print n
Else
n = n + 1
End If
Loop Until y >= m
End Sub
习题12
Private Sub Command1_Click()
Dim n As Integer, a As Integer
For n = 1 To 6
Print Tab(50 - n);
For a = 1 To 2 * n
Print "0";
Next a
Next n
End Sub
习题13
Private Sub Command1_Click()
n = Val(InputBox("请输入要转换的十进制数整数"))
m = n
x = ""
Do
a = n Mod 16
n = n \ 16
x = a & x
Loop Until n = 0
MsgBox m & "换成十六进制数是:" & x
End Sub
习题14
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer, d As Integer
For a = 1 To 9
For b = 0 To 9
For c = 1 To 9
For d = 0 To 9
If (a * 1000 + b * 100 + c * 10 + d) - (c * 100 + d * 10 + c) = a * 100 + b * 10 + c Then Print "a =" & a, "b=" & b, "c=" & c, "d= " & d,
End If
Next d
Next a
End Sub
习题15
Private Sub Command1_Click() Dim n As Integer, a As Integer a = 1
For n = 1 To 9
a = (a + 1) * 2
End Sub
四、实习总结
1.任务完成情况
本次实习主要掌握了三种控制结构的编辑,特别是从数据文件中获得数据的方法,例如,先提前建立一个文件,然后输入数据后保存在一个目录下,然后再录入程序的过程中将其插入,便可实现从数据文件中获得数据的方法。还掌握了缩进的书写格式,按住tab键就可以了。基本掌握了三种控制结构的使用方法。本次实习完成了课后的
15道习题和例题,使我学习到了很多东西。
2.知识掌握
本次实习学习到了很多更加有用的编程,例如,三种控制结构,顺序,循环和选择,对其进行了理解和运用,还有利用文本框的TEXT属性和消息对话框的MSGBOX函数来运算结果,还有学习到了几个常用的公式,Ucase函数,将小写转换成大写,还有sqr()函数,对第二章出现的各种函数有了更深的理解和应用。还有学会了利用IF语句进行换行,每行保留几个字符号的用法,还有学习到了将数据输出到数据文件的方法,在程序中写入语句来创建数据文件,同理,也可从数据文件中获得数据等等的内容。
3.存在的问题
实习中存在很多的问题,比如,从数据文件中获得数据的时候出现了小问题,由于我忘记建立文件,因此程序无法运行,后来进行对照例题发现了问题,成功运行了程序。还有,在做例题的时候出现了一些问题,在习题1的实习过程中,不会保留小数位数,在进行了查找和询问之后,学会了使用round()函数来保留小数。还有就是使用嵌套的循环结构的时候不太会进行思考,不会逆向思维,编程思路不清晰,还要多加练习才可以。
4.实习收获
虽然实习过程中遇到了不少问题,但是最后都一一解决了,我也学到了很多东西,三种结构的编程,函数的应用,数据的引用和输出,一些控制结构的其他用法。让我了解到了更多的编程语言知识和技巧。
很好,继续努力!
2013-06-04