VB实验报告6-过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB 程序设计实验报告
2020年05 月27 日
课程名称:VB程序设计实验名称:实验6-过程
一、实验目的
1.掌握自定义函数过程和子过程的定义和调试方法、
2.掌握形参和实参的对应关系
3.掌握值传递和地址传递的传递方式
4.掌握变量、函数和过程的作用域
5.掌握递归概念和使用方法
6.熟悉程序设计中的常用算法
二、实验内容
三、实验分析及设计
实验6-1
求最大公约数可用一层循环,当两数都能除尽且最大时即为最大公约数
实验6-2
先求出组合数的公式,将其用一个子过程表示
实验6-3
注意在子过程中传递数据,最后排序
实验6-4
求出递推计算式
实验6-5
(1) 所谓回文数是指顺读与倒读数字相同,即指最高位与最低位相同,次高位与次低位相同,依次类推。当只有一位数时,也认为是回文数。
(2) 回文数的求法,只要对输入的数( 按字符串类型处理) ,利用MID 函数从两边往中间逐位比较,若不相同,就不是回文数。
实验6-6
(1) 编一求素数的函数prime(m), 若m 是素数,则函数的返回值为True ,否则为False 。
(2) 主调程序对已知6~100 之间的全部偶数Even ,把它分解成两个奇数Odd1 和Odd2 (Even -Odd1 ),先调用prime函数,判断Odd1 是否是素数,若不是素数,则不必再对Odd2进行判断;否则再判断Odd2 ,若都是素数,则添加到列表框。利用两重循环来实现,外循环变量Even (6~100 的偶数),内循环将Odd1 (3~Even/2 之间的奇数)和Odd2 (Even -Odd1 )进行判断。
实验6-7
判断一个数m 是否是完数,算法思想是:将m 依次除以1~m/2 ,如果能整
除,就是m 的一个因子,进行累积;循环结束,若m 与累加因子之和相等,m 就是完数。
实验6-8
为了删除子串, 首先利用InStr 函数查找子串;若找到则通过Left 、Mid(或Right )函数实现子字符串的删除;同时要利用循环考虑到删除多个子串的情况。实验6-9
(1)首先利用Instr 函数从s 中从左边开始查找第一个出现的空格,利用Left 函数分离出空格左边的单词,与MaxWord 最长单词进行比较(MaxWord 初态为空):
(2) 取S 中剩余字符串,重复(1) ,直到S 为空。
四、程序代码
实验6-1
Dim m As Integer, n As Integer, temp As Integer
Private Sub command1_click()
m = Val(Text1.Text)
n = Val(Text2.Text)
Call fmn
Label6.Caption = Label6.Caption & m & Space(10) & n & Space(10) & temp & vbCrLf temp = 0
End Sub
Sub fmn()
For i = 1 To m
If n Mod i = 0 And m Mod i = 0 Then
If i > temp Then temp = i
End If
Next i
End Sub
实验6-2
Private Function fn(n As Double) As Double
Dim result As Double
result = 1
For i = n To 1 Step -1
result = result * i
Next i
fn = result
End Function
Private Sub Command1_Click()
Dim jm As Double, jn As Double, m As Double, n As Double, jn_m As Double
n = Val(Text1.Text)
m = Val(Text2.Text)
jm = fn(m)
jn = fn(n)
jn_m = fn(n - m)
Text3.Text = jn / (jm * jn_m)
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
实验6-3
Private Sub proMin(ByRef a() As Integer, ByVal amin As Integer)
For i = 1 To 9
If a(i) < amin Then amin = a(i)
Next i
Print "最小值为" & amin
End Sub
Private Sub form_load()
Dim a(9) As Integer, amin As Integer
For i = 0 To 9
Randomize
a(i) = -(Int(Rnd() * (400 - 300 + 1) + 300))
Print a(i) & Space(2)
Next i
amin = a(0)
Call proMin(a, amin)
End Sub
实验6-4
Private Function mysin(x As Double)
Dim n As Double, s As Double, i As Integer, y As Double, f As Double, every As Double i = 1
Do
n = i * 2 - 1
y = x ^ n
f = -((-1) ^ i)
every = y / jc(n) * f
s = s + every
i = i + 1
Loop While Abs(every) > 0.00001
mysin = s
End Function