实验七 过程程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七过程程序设计

一、实验目的与要求

1.掌握Sub子过程和Function函数过程的定义及其调用方法;

2.掌握参数按值传递和按地址传递的传递方式;

3.理解变量和过程的作用域;

4.掌握递归概念和使用方法。

二、实验准备

1.预习子过程和函数过程的定义、创建及调用方法;

2.弄清形参、实参的概念及参数按值传递和按地址传递的区别;

3.熟悉变量和过程的作用域;

4.理解递归概念。

三、实验案例

【案例一】编写一个Sub过程,实现将三个数由大到小排序。

分析:本题在Sub过程中引入三个参数A、B、C,在过程中对它们进行排序,执行完过程后还通过A、B、C返回排序后的结果,即参数传递方式采用按地址传递。

具体实现步骤如下:

1.界面设计

根据题目要求,需要在窗体上添加两个命令按钮和两个文本框。界面如图7-1所示。

图7-1排序过程(界面设计)

2.属性设置

本题的属性设置见表7-1。

表7-1排序过程的属性设置

对象属性设定值

Form1

Name frmSort3 Caption案例7-1

Text1Name txtInput Text

3

本题需要在通用|声明部分定义三个变量X、Y、Z;编写一个三个数由大到小的通用排序子过程Sort3;对两个命令按钮cmdFront、cmdBehind的Click事件进行编程。程序清单如下:Dim X As Integer, Y As Integer, Z As Integer

'定义排序过程Sort3

Public Sub Sort3(A As Integer, B As Integer, C As Integer)

Dim T As Integer

If A < B Then

T = A: A = B: B = T

End If

If A < C Then

T = A: A = C: C = T

End If

If B < C Then

T = B: B = C: C = T

End If

End Sub

'单击cmdBehind命令按钮调用Sort3过程进行排序,并显示排序结果

Private Sub cmdBehind_Click()

Sort3 X, Y, Z '调用Sort3过程进行排序

txtOutput.Text = Str(X) & " " & Str(Y) & " " & Str(Z) '显示排序结果

End Sub

'单击cmdFront命令按钮产生并显示三个随机数

Private Sub cmdFront_Click()

Randomize '随机产生[0,99]之间的三个整数

X = Int(100 * Rnd)

Y = Int(100 * Rnd)

Z = Int(100 * Rnd)

txtInput.Text = Str(X) & " " & Str(Y) & " " & Str(Z) '输出三个随机整数

End Sub

4.调试运行

在主菜单运行项单击“启动”按钮,进入运行状态。单击“排序前”命令按钮,则在文本框txtInput中显示三个[0,99]之间的随机整数,然后单击“排序后”命令按钮,则在文本框txtOutput 中由大到小的排序显示这三个随机整数。运行结果如图7-2所示。

图7-2排序过程(运行结果)

5.保存

以“案例7-1”为名称分别保存窗体文件和工程文件。

【案例二】编写Function过程求1!+2!+…+n!的值。

分析:本题可用两个Function过程即Fact过程和Mul过程。Fact过程计算每一个数的阶乘,Mul过程求n个数阶乘的累加和。在“计算”命令按钮的单击事件过程中首先调用Mul过程,在Mul过程中又调用Fact过程,这种在一个过程执行期间又调用另外一个过程称为过程的嵌套调用。

具体实现步骤如下:

1.界面设计

根据题目要求,需要在窗体上添加一个标签和一个命令按钮。界面如图7-3所示。

图7-3阶乘累加过程(界面设计)

2.属性设置

本题的属性设置见表7-2。

表7-2阶乘累加过程的属性设置

对象属性设定值

Form1

Name frmMul Caption案例7-2

Label1

Name lblMul Caption

Command1

Name cmdMul Caption计算

3

本题需要编写一个Function过程Fact计算每一数的阶乘,一个Function过程Mul求n个数阶乘的累加和,对命令按钮cmdMul的Click事件进行编程。程序清单如下:

Function Mul(n As Integer) As Double ' 求累加和

Dim i As Integer, sum As Double

sum = 0

For i = 1 To n

sum = sum + Fact(i) '调用Fact过程,过程的嵌套调用

Next i

Mul = sum

End Function

Function Fact(n As Integer) As Double '求n!

Dim i As Integer, f As Double

f = 1

For i = 1 To n

f = f * i

Next i

Fact = f

End Function

Private Sub cmdMul_Click()

Dim n As Integer

n = Val(InputBox("请输入n的值", "求1!+2!+…+n!的值"))

If n = 0 Then '控制标签lblMul的Caption属性值

lblMul.Caption = "0!=1"

ElseIf n = 1 Then

lblMul.Caption = "1!=" & Mul(n) '调用Mul过程

ElseIf n = 2 Then

lblMul.Caption = "1!+2!=" & Mul(n)

ElseIf n = 3 Then

lblMul.Caption = "1!+2!+3!=" & Mul(n)

Else

lblMul.Caption = "1!+2!+…" & Str(n) & "!=" & Mul(n)

End If

End Sub

4.调试运行

在主菜单运行项单击“启动”按钮,进入运行状态。单击“计算”命令按钮,则可在产生的输入框中输入任意的n值如15,单击输入框的确定按钮后标签上显示的内容发生变化,即输出程序结果,如图7-4所示。

图7-4阶乘累加过程(运行结果)

5.保存

相关文档
最新文档