VB实验报告四
- 格式:doc
- 大小:166.50 KB
- 文档页数:6
本科实验报告
课程名称:人机界面程序设计基础
实验项目:四、过程
实验地点:多学科综合楼
专业班级:自动化0905 学号:2009001221 学生姓名:闫海涛
指导教师:李何
2012年12 月12 日
一、实验目的和要求
1、掌握自定义函数过程和子过程的定义和调用方法。
2、掌握形参和实参之间的对应关系。
3、掌握值传递和地址传递的传递方式。
4、掌握变量、函数和过程的作用域。
5、掌握递归的概念和使用方法。
二、实验内容和原理
1、编一求两数m、n最大公约数的函数过程f(m,n)。
2、如果一个整数的所有因子(包括1,但不包括本身)之和与该数相等,则称这个数为完数。
例如6=1+2+3。
编写一个函数IsWs(m)判断m是否为完数,函数的返回值是逻辑型。
提示:判断一个数是否为完数,算法思想是:将m依次除以1~m/2,如果能整除,就是m 的一个因子,进行累加;循环结束,若m与累加因子之和相等,m就是完数。
3、编写一个子过程deleStr(s1,s2) ,将字符串s1中出现的s2字符串删去,结果存放在s1中。
提示:首先利用InStr函数查找子串,若找到则通过Left、Mid(或Right) 函数实现字符串的删除;同时要利用循环考虑到删除多个字符串的情况。
三、主要仪器设备
计算机
四、实验结果与分析
界面:
1、程序:
Private Sub Command1_Click()
Dim m As Long, n As Long, X As Long, Y As Long
m = V al(InputBox("请输入第一个数m""输入", "输入", 0)) n = V al(InputBox("输入第二个数n", "请输入", 0))
X = m
Y = n
If m * n = 0 Then
MsgBox "两数不能为0!"
Else
MsgBox X & "," & Y & "最大公约数为" & f(m, n)
End If
End Sub
Private Function f(m As Long, n As Long) As Long
Dim r As Long
Do
r = m Mod n
m = n: n = r
Loop While r <> 0
f = m
End Function
运行结果:
2.程序:
Private Sub Command2_Click()
Dim a As Long
a = V al(InputBox("请输入一个数""输入", "输入", 0)) MsgBox a & "为完数是" & IsWs(a)
End Sub
Function IsWs(m) As Boolean
Dim s%
s = 0
For i = 1 To m \ 2
If m Mod i = 0 Then
s = s + i
End If
Next i
If m = s Then IsWs = True
End Function
运行结果:
A.
B.
3.程序:
Private Sub DeleStr(s1 As String, ByV al s2 As String)
Dim i%
ls2 = Len(s2)
i = InStr(s1, s2)
Do While i > 0
s1 = Left(s1, i - 1) + Mid(s1, i + ls2) ' 在s1中去除s2子串
i = InStr(s1, s2)
Loop
End Sub
Private Sub Command3_Click() ' 调用DeleStr子过程Dim ss1 As String, ss2 As String
ss1 = InputBox("请输入字符串s1""输入", "输入", 0)
ss2 = InputBox("请输入字符串s2""输入", "输入", 0)
Call DeleStr(ss1, ss2)
Text1 = ss1
End Sub
运行结果:。