VB实验报告6-过程

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

相关文档
最新文档