精华内容
下载资源
问答
  • 主要内容是,自定义函数过程和子过程声明与调用的语法格式、参数含义及功能特性;三种参数传递方式(值传递、地址传递、数组传递)的应用;嵌套调用和递归调用的执行流程以及递归过程的特点
  • 子过程含有数组参数,在调用子过程时,提示数组参数未定义的错误。 下面是该程序,请热心人帮忙检查检查,谢谢大家! Sub ssor(a() As Single, n As Integer, b() As Single, x() As Single, eps As Single, ...
  • VB COM编程基础之子过程函数和参数

    千次阅读 2004-11-02 08:52:00
    前面已经接触到类的变量、属性以及枚举,但我们怎样才能更好的利用它们呢? 显然,子过程就是其中的一种方式,它几乎出现所有的Visual ..." End Sub 这里的子过程是最常见的,我们可以简单地使用MyDog.Bark来调用它。
     前面已经接触到类的变量、属性以及枚举,但我们怎样才能更好的利用它们呢? 

      显然,子过程就是其中的一种方式,它几乎出现所有的Visual Basic程序中,所以这里来举例说明。
    在CDog类中添加下列代码:

      Public Sub Bark()

       MsgBox "Woof! Woof!"

      End Sub

      这里的子过程是最常见的,我们可以简单地使用MyDog.Bark来调用它。

      下面来试一试:

      将表单Form1的Command按钮的代码改成:

      Dim MyDog As CDog

      Set MyDog = New CDog

      MyDog.Name = "Billy"

      MyDog.Bark

      Set MyDog = Nothing

      需要说明的是,在键入"MyDog."会弹出相应的列表,各列表项前面都有不同颜色的小图标区分不同的类型。例如Bark子过程项前面的是黄绿色的,属性是灰色和蓝色的,这样能帮助我们识别Bark是MyDog对象的一个方法。

      按F5运行并测试。

      事实上,除了子过程外,我们也可以在代码中添加函数。这里我们就不举例了,你可以自己尝试一下。因为函数和一般子过程除了能在一个类中外,其工作也是相同的。但不要忘记,所有子过程和函数都可以有自己的参数。

      现在,让我们设想一下,在类中有一个Sleep方法。当我们想要cat睡觉或dog打盹时,每次都得调用这个方法。

      但是,我们怎么知道这些小东西什么时候醒来?这是一个非常有趣的问题,其答案是使用事件(event)。

      当我们在文本编辑框中键入字符时就会产生Change事件,而当我们单击命令按钮时就会产生Click事件。同样,想知道这些小东西什么时候醒来,就需使用下一节所着重讨论的Awake事件。
    展开全文
  • VB过程求组合数.rar

    2019-07-10 11:26:47
     Call f(m, f1) '调用子过程,求m的阶乘  c = f1 '阶乘的结果存到变量c里  Call f(n, f1) '调用子过程,求n的阶乘  c = c / f1 '阶乘的结果参与运算然后再存回变量c里  Call f(m - n, f1) '调用子过程,求同m-n...
  • 过程是什么 过程是一段能完成一个或多个特定的独立的程序段,并可以被其他过程调用 调用过程的目的 简化程序中多处重复出现处理相同功能的...Sub 子过程([形式参数列表]) 过程体 End Sub 过程调用 Call 子...

    过程是什么

    过程是一段能完成一个或多个特定的独立的程序段,并可以被其他过程调用

    调用过程的目的

    简化程序中多处重复出现处理相同功能的程序段的设计问题(简单可理解为提公因式)

    在学生管理系统或者VB中,过程中有两种
    1.Sub子过程
    2.Function函数

    sub过程格式:

    Sub  子过程([形式参数列表])
        过程体
    End Sub
    

    过程调用

    Call  子过程名([实际参数列表])
    

    学生系统举例

    Public Sub viewdata()
        txtclassno.Text = mrc.Fields(0)
        combograde.Text = mrc.Fields(1)
        txtdirector.Text = mrc.Fields(2)
        txtclassroom.Text = mrc.Fields(3)
    End Sub
    
    Private Sub firstcommand_Click()
       mrc.MoveFirst
       Call viewdata    *调用viewdata过程*
    End Sub
    

    viewdata()便是一个子过程

    Function 过程格式:

    Function 函数名([形式参数1,形式参数2,……])
    函数体
    End Function

    过程调用

        函数名[(实际参数列表)]
    

    学生举例

    If Not testtxt(txtcourseno.Text) Then       *调用texttxt函数*
        MsgBox "请输入课程编号 ", vbOKOnly + vbExclamation, "警告"
        txtcourseno.SetFocus
        Exit Sub
    End If
    
    
    Public Function testtxt(txt As String) As Boolean
        If Trim(txt) = "" Then
           testtxt = False
        Else
          testtxt = True
        End If
      End Function
    

    两者区别:

    Sub子过程只执行程序而不返回值
    而Function 函数执行程序后会有返回值

    解释以上例子
    sub过程:viewdata这个过程中没有返回值
    Function过程:Testtxt函数的返回值为Ture 或者 False

    展开全文
  • 第6章 过程和函数 6.1 过程 6.2 参数 6.3 常用内部函数 6.4 典型应用 6.1 过程 ...过程 事件过程 通用过程 Sub过程子程序过程 Function过程函数过程 Sub过程不返回值而Function过程要向调用它的语句返回值 6.1.1 Sub
  • [VB学习中]之五:过程与函数

    千次阅读 2004-12-27 22:05:00
    子过程(Sub)的定义事件过程窗体事件过程Private Sub Form_事件名([参数列表]) [局部变量和常数声明] 语句块End Sub说明:(1)窗体事件过程名由Form_事件名组成,多文档窗体用MDIForm_事件名。(2)每个窗体...

    子过程(Sub)的定义

    事件过程

    窗体事件过程

    Private  Sub Form_事件名([参数列表])

      [局部变量和常数声明]

      语句块

    End Sub

    说明:

    (1)窗体事件过程名由Form_事件名组成,多文档窗体用MDIForm_事件名。

    (2)每个窗体事件过程名前都有一个Private的前缀,表示该事件过程不能在它自己的窗体模块之外被调用。

    (3)事件过程有无参数,完全由VB提供的具体事件本身决定,用户不可以随意添加。

    控件事件过程

    Private  Sub 控件名_事件名([参数列表])

      [局部变量和常数声明]

      语句块

    End Sub

    说明:其中的控件名必须与窗体中某控件相匹配,否则VB将认为它是一个通用过程。

    通用过程

    [ Private | Public ] [ Static] Sub 过程名([参数列表])

      [局部变量和常数声明]  ‘用Dim 或Static声明

      语句块

      [Exit Sub]

      语句块

    End Sub

    说明:

    (1)缺省[ Private | Public ]时,系统默认为 Public。

    (2)Static 表示过程中的局部变量为“静态”变量。

    (3)过程名的命名规则与变量命名规则相同,在同一个模块中,同一符号名不得既用作Sub过程名,又用作Function过程名。

    (4)参数列表中的参数称为形式参数,它可以是变量名或数组名,只能是简单变量,不能是常量、数组元素、表达式;若有多个参数时,各参数之间用逗号分隔,形参没有具体的值。VB的过程可以没有参数,但一对圆括号不可以省略。不含参数的过程称为无参过程。

    形参格式为:[ ByVal ] 变量名[()] [As 数据类型]

    说明:

    (1)变量名[()]:变量名为合法的VB变量名或数组名,无括号表示变量,有括号表示数组。

    (2)ByVal :表明其后的形参是按值传递参数(传值参数 Passed By Value),若缺省或用ByRef,则表明参数是按地址传递的(传址参数)或称“引用”(Passed By Reference)。

    (3)As  数据类型:缺省表明该形参是变体型变量,若形参变量的类型声明为String,则只能是不定长的。而在调用该过程时,对应的实在参数可以是定长的字符串或字符串数组,若形参是数组则无限制。


    子过程(Sub)的调用

    (1)用Call语句调用Sub过程:Call 过程名(实在参数表)。

    (2)把过程名作为一个语句来用:过程名 [实参1[,实参2……]]。


    函数(Function)过程的定义

    [ Private | Public ] [ Static] Function 函数名([参数列表])[As 数据类型]

      [局部变量和常数声明]  ‘用Dim 或Static声明

      [ 语句块 ]

      [ 函数名=表达式 ]

      [ Exit Function]

      语句块

      [ 函数名=表达式 ]

    End Function

    说明:

    (1)函数名的命名规则与变量命名规则相同;函数过程必须由函数名返回一个值。

    (2)如果函数体内没有给函数名赋值,则返回对应类型的缺省值,数值型返回0,字符型返回空字符串。

    (3)函数过程内部不得再定义Sub过程或Function过程。

    函数(Function)过程的调用

    (1)调用窗体中的过程:从窗体模块的外部调用窗体中的公有过程,必须用窗体的名字作为调用前缀。如:Call  Form1.Examsub([实参表])

    (2)调用标准模块中的过程:如果在应用程序中,过程名是唯一的,则调用时不必加模块名。如果有同名的,则在同一模块内调用时可以不加模块名,而在其他模块中调用时必须加模块名。

    (3)类模块中的过程:调用类模块的公有过程时,要求用指向该类某一实例的变量修饰过程,即首先要声明类的实例为对象变量,并以此变量作为过程名前缀修饰词,不可直接用类名作为前缀修饰词。如:在类模块Class1中含有过程clssub,变量Democlass是类Class1的一个实例,则调用clssub的方法是:

      Dim Democlass AS New Class1

      Call Democlass.clasub

    参数的传递

    (1)按值传递参数(定义时加ByVal):按值传递参数(Passed By Value)时,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变。

    (2)按地址传递参数(定义时没有修饰词或带关键字ByRef):按地址传递参数时,把实参变量的地址传送给被调用过程,形参和实参共用内存的同一地址。在被调用过程中,形参的值一旦改变,相应实参的值也跟着改变。如果实参是一个常数或表达式,VB会按“传值”方式来处理。

    (3)数组参数:VB允许把数组作为形参出现在形参表中: 形参数组名() [As 数据类型]

      形参数组只能按地址传递参数,对应的实参也必须是数组,且数据类型相同。调用过程时,把要传递的数组名放在实参表中,数组名后面不跟圆括号。在过程中不可以用Dim语句对形参数组进行声明,否则会产生“重复声明”的错误。但在使用动态数组时,可以用ReDim语句改变形参数组的维界,重新定义数组的大小。

    (4)对象参数:VB中可以向过程传递对象,在形参表中,把形参变量的类型声明为“Control”,可以向过程传递控件;若声明为“Form”,则可向过程传递窗体。对象的传递只能按地址传递。

    展开全文
  • ByVal 与 ByRef(默认值)这两个是子过程参数传递时,指定参数按什么传递的ByVal(按值传递)ByRef(按地址传递)具体这样来理解:过程中的参数列表,我们称形参调用过程时的参数列表,我们称实参在调用时,我们要将实参的值...

    VB中ByVal与ByRef有什么区别

    ByVal 与 ByRef(默认值)
    这两个是子过程的参数传递时,指定参数按什么传递的
    ByVal(按值传递)
    ByRef(按地址传递)
    具体这样来理解:
    过程中的参数列表,我们称形参
    调用过程时的参数列表,我们称实参

    在调用时,我们要将实参的值传递给形参,这样过程才能拿这些数据参与计算并实现一些功能
    那么在传递的过程中,就存在这两种传递方式
    传值时(ByVal),是先给形参开辟一个临时地址,将实参的内容传入这个临时地址,这样,传递后,形参与实参是在两上不同的地址中,也就是说他们是相互独立的
    传址时(ByRef),是直接将实参的地址传递给形参,这样,形参与实参就共用一个地址,所以,形参内容的改变,也直接改变了实参的内容

    通过上面的分析,你只要记得:
    按值传递时(ByVal),形参的改变不会影响到实参
    按址传递时(ByRef),形参的改变,会影响到实参

    应用时,我们可以利用按址传递的过程,给一个子过程(Sub过程)进行参数返回

    例:
    Dim A as integer,B as integer
    A=1
    B=2
    Call AAA(A,B)
    Print A,B   '得到的结果是2    3 (形参的改变影响到了实参)
    Call BBB(A,B)
    Pring A,B   '得到的结果跟上面的一样,2    3(形参的改变并没有影响到这个实参)


    Sub AAA(I as integer,J as integer) '默认,则按址传递
    i=i+1
    J=J+1
    End Sub

    Sub BBB(ByVal I as integer,ByVal J as integer) 
    i=i+1
    J=J+1
    End Sub

    转载于:https://www.cnblogs.com/rosesmall/archive/2012/11/07/2758989.html

    展开全文
  • Function是函数,sub是程序,都可以传递bai参数,但函数有返回值,程序没有 function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。 Sub 过程与Function 过程的区别: 1. Sub 过程定义时...
  • VB课程设计俄罗斯方块

    热门讨论 2011-02-25 10:46:55
    方块在下落的过程中会自动判断每一行方块的visible属性,如果全部为true时,就会将这一行小方块的visible属性全部变成false,在将上面的小方块向下移动,利用for语句进行循环判断,将所有这样情况的行改变小方块...
  • VB错误代码集

    2008-05-19 14:14:00
    错误号 含义 3 无 GoSub 返回 5 无效的过程调用参数 6 溢出 7 内存溢出 9 下标越界 10 该数组被固定或...28 溢出堆栈空间 35 子过程或函数未定义 47 DLL 应用程序客户太多 48 加载 DLL 错误 49 DLL 调用约定错误...
  • vb Script参考文档

    2009-07-28 22:13:02
    调用语句 将控制移交 Sub 或 Function 过程。 CBool 函数 返回已被转换为 Boolean 类型的变体的表达式。 CByte 函数 返回已被转换为字节子类型的变体的表达式。 CCur 函数 返回已被转换为货币类型的变体的...
  • VB错误代码集收藏

    2009-07-14 11:11:00
    错误号 含义 3 无 GoSub 返回 5 无效的过程调用参数 6 溢出 7 内存溢出 9 下标越界 10 该数组被固定或...18 出现用户中断 20 无错误恢复 28 溢出堆栈空间 35 子过程或函数未定义 47 DLL 应用
  • 10、子过程调用有哪两种形式? 11、什么是形参?什么是实参?什么是值引用?什么地址引用?地址引用时,对应的实参有没有限制? 12、如果要时钟控件每半分钟发生一个Timer事件,则Interval属性应设置为多少? 13、...
  • ByVal 与 ByRef(默认值) 这两个是子过程参数传递时,指定参数按什么传递的 ByVal(按值传递) ByRef(按地址传递) 具体这样来理解: 过程中的参数列表,我们称形参 调用过程...
  • declare

    2014-10-21 09:11:40
    1.语法 VB里的说明语句(Declare),仅支持动态链结库(DLL)的程序和无变量函数。 VB程序要使用DLL中的函数,首先必须要有特殊的声明,用Declare声明...Declare Sub 过程名 Lib [ Alias " 别名] ([ByVal 参数
  • declare语句

    2008-07-01 12:48:00
    1.语法VB里的说明语句(Declare),仅支持动态链结库(DLL)的程序和无变量函数。 VB程序要使用DLL中的函数,首先必须要有特殊的声明... 语句格式为:Declare Sub 过程名 Lib [ Alias " 别名] ([ByVal 参数 AS 类型
  • 上机验证结果无效的过程调用参数 3赋值号左边不是变量名 ? 上机验证结果缺少程序函数或属性 4除数为0 ? 上机验证结果溢出 2自己去教材中找 3算术表达式关系表达式逻辑表达式 41应改为>=前者是中文字符不具有...
  • 参数 程序指针, 程序指针, , 如&程序1 .程序 inline_patch_Pro1, 逻辑型, 公开, 失败返回假,成功返回真;适合patch尚未运行的加壳或不加壳的可执行文件,解码时机判断是选用VirtualProtect;如果壳检测到了...
  • 21.5.3 删除数据的实现 21.6 触发器与存储过程的应用 21.6.1在VB 6.0中应用触发器 21.6.2在VB 6.0中应用存储过程 21.7 小结第22章 VC++6.0与SQL Server的开发与应用 22.1 VC++6.0开发环境 22.1.1 VC++6.0介绍 22.1.2...
  • Excel_VBA教程

    2014-09-22 11:36:34
    16.使用主过程和子过程 109 17.接下来…… 111 第五章 基于VBA做决定 111 1.关系和逻辑运算符 111 2.IF…THEN语句 112 3.基于多于一个条件的决定 114 4.THE IF…THEN…ELSE语句 115 5.IF…THEN…ELSEIF语句 118 6....
  • 2.6 不带参数函数的写法及调用 2.7 带参数函数的写法及调用 2.8 利用C51库函数实现流水灯 第2篇 内外部资源操作篇 3.1 数码管显示原理 3.2 数码管静态显示 3.3 数码管动态显示 3.4 中断概念 3.5 单片机的定时器中断...
  • 实例153 用VB实现SQL Server 2000存储过程 调用 260 实例154 动态创建Access数据库及数据表 263 实例155 拼音简码查询 267 实例156 在程序中应用视图 269 第4章 数据库访问与显示 271 4.1 连接Access数据库 ...
  • 实例153 用VB实现SQL Server 2000存储过程 调用 260 实例154 动态创建Access数据库及数据表 263 实例155 拼音简码查询 267 实例156 在程序中应用视图 269 第4章 数据库访问与显示 271 4.1 连接Access数据库 ...
  • 修改BUG:在IDE中打开源代码文件(.e)后,高级选择夹组件不能正确切换到“现行夹”属性设定的夹。 9. 修改BUG:矢量动画支持库中的“矢量编辑框”组件在光标位于组件右下角时按右光标键进入下一行会导致显示...
  • 以上每个模块均由一系列实现功能相关的函数或者子过程构成,如下所示: 图3 3.2 数据结构设计 由前所述,本计算器的设计目标需要支持简单数据类型(整型、浮点型)、字符串类型、矩阵、元胞等数据类型以及他们...
  • 实例153 检查参数是否成功传递给用户自定义过程 实例154 使用递归过程实现阶乘运算 6.2 综合应用 实例155 制作改变窗体颜色的自定义过程 实例156 利用错误号获取错误名称 实例157 将汉字转换为Unicode字符代码...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

vb子过程参数调用