新Visual Basic.NET程序设计 夏敏捷 电子教案及源代码 第6章.pptVIP

  • 6
  • 0
  • 约1.63万字
  • 约 60页
  • 2016-10-26 发布于广东
  • 举报

新Visual Basic.NET程序设计 夏敏捷 电子教案及源代码 第6章.ppt

6.3.2 传址与传值 2.传值 传值(ByVal)方式在调用过程时,将实参的值复制给形参。在被调过程中,形参拥有自己的内存地址,即使被调过程与主调过程中使用了相同的变量名,在内存中也对应于不同的地址单元。因此,对形参的任何操作不会影响到实参,其数据传递必然是单向的。具体分析如图6-14所示。 6.3.2 传址与传值 【例6.11】编写一个Function过程,用来求任意两个整数的最大公约数。调用该过程求二个数的最大公约数及最小公倍数。 分析:求两个整数的最小公倍数的公式为:将两数相乘除以它们的最大公约数。 求最大公约数的Function过程如下。 Public Function HCF(ByVal X As Long, ByVal Y As Long) As Long Dim R As Long Do R = X Mod Y If R = 0 Then HCF = Y : Exit Do Else X = Y : Y = R End If Loop End Function 6.3.2 传址与传值 求最大公约数和最小公倍数的主调过程如下。 Private Sub btnShow_Click() Handles btnShow.Click Dim A, B, C As Long A = 96 : B = 36 C = HCF(A, B) TextBox1.Text = 最大公约数: CStr(C) vbCrLf TextBox1.Text = TextBox1.Text 最小公倍数: CStr(A * B / C) End Sub 源程序 6.3.3 传递数组 可将整个数组作为参数传递给过程。 在定义过程时,形参所声明的数组的名称后必须写上一对空圆括号,即形参数组要略去数组的维度信息描述。 在调用过程时,对应实参数组名后无圆括号,且数组参数的传递方式只能是传址(ByRef)方式。 若要将数组元素作为实参,则数组名后必须有括号及数字,例如: Call Test(5, x(3)) 其中x(3)是一个数组元素,其对应形参是一个变量。 6.3.3 传递数组 【例6.12】编写一个通用Sub过程,实现一维数组的排序。调用该过程,排序一个实际的数组。 Public Enum SortSequence 排序的顺序 Small2Larg = 0 ‘升序 Larg2Small = 1 ‘降序 End Enum 说明:枚举类型SortSequence定义了两个常量Small2Larg和Larg2Small,分别表示升序、降序两种排序规则。 6.3.3 传递数组 给数组排序的Sub过程 Public Sub SortArray(ByRef Arr() As Long, ByVal D As SortSequence) Dim I, J, P, T As Long For I = LBound(Arr) To UBound(Arr) - 1 P = I For J = I + 1 To UBound(Arr) Select Case D Case SortSequence.Small2Larg 从小到大排序 If Arr(J) Arr(P) Then P = J Case SortSequence.Larg2Small 从大到小排序 If Arr(J) Arr(P) Then P = J End Select Next If P I Then T = Arr(I) : Arr(I) = Arr(P) : Arr(P) = T End If Next End Sub 6.3.3 传递数组 调用排序过程为数组排序。 Private Sub btnShow_Click() Handles btnShow.Click 主调用程序 Dim A(10), I As Long TextBox1.Text = For I = 0 To 10 A(I) = Int(10

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档