vb实验报告实验9--函数过程实验

vb实验报告实验9--函数过程实验


2024年2月8日发(作者:)

上 机 报 告

课程名称 计算机程序设计基础(VB)

专业班级

姓 名

学 号

上机题目

同组人数

成 绩

Function过程和Sub过程实验 实 验 室 机房

1

实验时间

指导教师

年 月 日

一、实验目的

1.掌握Function过程的定义和调用方法以及变量做函数参数的数据传递。

2.掌握子过程的定义和调用方法以及数组做函数参数的数据传递。

3. 掌握静态局部变量、局部变量、全局变量的定义和编程技巧。

二、实验内容(均要求给出运行结果)

(一)程序改错

第一题

【实验要求】

求s=2!+4!+6!+8!,阶乘的计算用Function过程fact实现。设计界面如图5-9(a)所示,单击窗体显示运行结果如图5-9(b)所示,将所给程序段中的错误修改正确并运行该程序。

图5-9(a) 运行初始界面 图5-9(b) 单击窗体运行结果界面

【实验步骤】

1. 编写事件代码:

Option Explicit

Private Sub Form_Click()

Dim i As Integer, s As Long

'**********FOUND**********

For i = 2 To 8

s = s + fact(i)

Next i

Print "2!+4!+6!+8!=";

Print s

End Sub

'**********FOUND**********

Public Function fact()

Dim t As Long

Dim i As Integer

t = 1

For i = 1 To n

t = t * i

Next i

'**********FOUND**********

fact = i

End Function

运行界面及程序清单:

第二题

【实验要求】

在下列程序段中,过程fb可以显示某个数字范围以内的菲波那契数列,现要求通过消息框输入一数字,利用该过程显示不超过该指定数字大小的菲波那契数列原素,运行界面如图5-10所示窗体,将所给程序段中的错误修改正确并运行该程序。

图5-10(a) 运行界面 图5-10(b) 数据输入窗口

【实验步骤】

1. 编写事件代码:

Option Explicit

Public Sub fb(x As Integer)

Dim i&, j%, k%

j = 1 :i = 1

Print i; j;

k = i + j

'**********FOUND**********

Do While k > x

Print k;

i = j:j = k

'**********FOUND**********

k = i - j

Loop

End Sub

Private Sub Form_Click()

Dim x As Integer

Cls

x = Val(InputBox("请指定显示范围"))

'**********FOUND**********

call fb y

End Sub

运行界面及程序清单:

(二)程序填空

第一题

【实验要求】

设计如图5-4(a)所示的窗体,程序运行时在5个文本框中输入5个整数后,单击“求最大值”按钮,求这5个数的最大值并显示如图5-11(b)所示,要求调用求3个数最大值的函数max,将所给程序段的【?】处填写完整并运行该程序。

图5-11(a) 设计界面 图5-11(b) 运行界面

【实验步骤】

1.界面设计

在窗体上添加5个文本框,Text1„ „ Text5,添加1个命令按钮Command1,各控件大小及位置关系如图5-11(a)所示。控件属性见表5-6。

表5-6 对象属性设置

对 象

Text1、Text2、Text3、

Text4、Text5

Command

属 性

Text

Alignment

TabIndex

Caption

TabIndex

属 性 值

1-Right Justfy

1、2、3、4、5

求最大值

6

2.编写事件代码:

'下面过程max()用于求3个数中最大值

Option Explicit

Public Function max(ByVal a%, ByVal b%, ByVal c%)

'**********SPACE**********

If 【?】 Then

m = a

Else

m = b

End If

'**********SPACE**********

If 【?】 Then

max = m

Else

max = c

End If

End Function

,利用max函数过程求5个数中最大值。

Private Sub Command1_Click()

Dim a%, b%, c%, d%, e%, max1%

a = Val()

b = Val()

c = Val()

d = Val()

e = Val()

max1 = max(a, b, c)

'**********SPACE**********

max1 =【?】

Print "5个数的最大值是:"; max1

End Sub

运行界面及程序清单:

第二题

【实验要求】

本程序利用二分法查找某数字n是否在已排序的数列当中,若在其中则输出其在数列中的位置,否则输出-1。程序运行结果如图5-12所示。根据程序功能将所给程序段的【?】处填写完整并运行该程序。

图5-12 二分法查找数据运行界面

【实验步骤】

1.界面设计

在窗体上添加1个标签控件Label1,1个文本框控件Text1,text属性值默认为空,1个命令按钮Command1,大小及位置关系如图5-12所示。

2.编写事件代码

Option Base 1

Sub birsearch(a(), ByVal low%, ByVal high%, ByVal key, index%)

Dim mid As Integer

mid = (low + high) 2

If a(mid) = key Then

'**********SPACE**********

【?】

Exit Sub

ElseIf low > high Then

index = -1

Exit Sub

End If

If key < a(mid) Then

'**********SPACE**********

high = 【?】

Else

low = mid + 1

End If

'**********SPACE**********

Call birsearch(a(), low, high, 【?】, index)

End Sub

Private Sub Command1_Click()

Dim b() As Variant, index As Integer

b = Array(5, 13, 19, 21, 37, 56, 64, 75, 80, 88, 92)

Cls

Print "原数组:";

For i = LBound(b) To UBound(b)

Print b(i);

Next i

Print

n = Val(Text1)

Call birsearch(b, LBound(b), UBound(b), n, index)

Print index

End Sub

运行界面及程序清单:

(三)编程题

第一题

【实验要求】

已知猴子吃一堆桃子,每天吃桃子总数的一半多一个。到第n天时,猴子发现只剩下一个桃子可吃。编写函数fun,根据n值求这堆桃子的数量,例如:n为7时,单击“求这堆桃子总数”按钮,窗体显示"190"如下图5-13(b)所示,要求使用 Loop语句来实现。

图5-13(a) 设计界面 图5-13(b) 运行界面

【实验步骤】

1.界面设计

在窗体上添加1个标签Label1,1个命令按钮Command1,其大小及位置关系如图5-13(a)所示。

2. 编写事件代码:

Option Explicit

Private Function fun(n As Long) As String

'**********Program**********

'********** End **********

End Function

Private Sub Command1_Click()

Print fun(7)

End Sub

第二题

【实验要求】

过程suixian可以判断某个数字是否是水仙花数,单击窗口利用该过程找出所有水仙花数。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。运行界面如图5-11所示。

图5-14(a)设计界面图 5-14(b)水仙花数运行结果界面

【实验步骤】

1.编写事件代码

Private Sub Form_Click()

Dim i As Integer

For i = 100 To 999

Call suixian(i)

Next i

End Sub

Public Sub suixian(x As Integer)

Dim i%, j%, k%

'**********Program**********

'********** End **********

If i * i * i + j * j * j + k * k * k = x Then Print x

End Sub


发布者:admin,转转请注明出处:http://www.yc00.com/web/1707385539a1500404.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信