函数过程

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

Form1
Form1
注意 Function过程通过过程名返回值,所以在过程体 重要有给过程名赋值的语句。 函数过程不能单独作为一条语句,函数过程的调 用必须作为表达式或表达式的一部分,再配以其 它的语法成分构成语句。 Sub过程必须单独作为一条语句。 如果说sub过程可以返回值的话,其值是通过参 数传递的
(1)重复写三个循环的程序段分别求8!,3!,5!,但麻 烦! (2)单独写一个求阶乘的程序段,需要的时候,调用 它。这样做增强了程序的独立性,体现了模块 化设计思想。
我们把这种可以重复调用的程序段叫做过程或函 数。
这个独立的程序段叫通用过程,通用过程又可 根据其是否返回值分为sub过程和function过程。 Sub过程不返回值,而function过程返回一个值。 Sub过程和function过程除了在返回值上有区别 外在结构和调用方式上也有点区别。 重点把握通用过程的创建、调用、参数传递及 变量的作用域。
Private Sub Command1_Click() Dim a As Integer a=2 For i = 1 To 3 call f(a) Sum = Sum + a Next i Print Sum End Sub Sub f(a As Integer) b=0 Static c b=b+1 c=c+1 a=a+b+c End sub
以下程序的运行结果是:
Private Sub Command1_Click() Dim a As Integer a=2 For i = 1 To 3 Sum = Sum + f(a) Next i Print Sum End Sub Function f(a As Integer) b=0 Static c b=b+1 c=c+1 f=a+b+c End Function
Sub过程的结构 [Public|Private] sub 过程名(参数) …… End sub Function 过程的结构 [Public|Private] function 过程名(参数) [as 数据类型] …… End function Sub过程和function过程的创建均可采用两种方法: 1、直接在代码窗口输入过程的结构语句 2、通过“工具”菜单中的添加“过程”
Dim
过程 Static 过程
总结: 1:作用范围 2:多次运行时每次是否重新定义(即 变量值变为0或者说变量之前的值会 丢失) 。只有过程级中的dim定义 的变量会丢失之前运行的结果。
参数传递
在调用过程时,一般主调过程和被调过程之 间有数据传递,即将主调过程的实参传递给被调 的过程。有两种方式:传址和传值。 形参前加 “Byval”是传值,形参前加“Byref”是传址,默 认是传址。 采用传址方式时,对形参的操作相当于对实 参的操作,因此形参的值将影响对应的实参。 采用传值方式时,实参将数值传递给形参后, 两者就断开了联系,因此形参的值不影响对应的 实参。
第六章 过 程
6.1 函数过程 6.2 变量Leabharlann Baidu用范围 6.3 参数传递
引例 6.1 求 C
5 8 =8!/(3!*5!)
分析: 先求出3个数的阶乘; s1=1 for i=1 to 8 s1=s1*I next I s2=1 for i=1 to 3 s2=s2*I next I s3=1 for i=1 to 5 s3=s3*I next I
Sub过程的调用: 形式1:call 过程名(参数) 形式2:过程名 参数 注意:第一种形式参数必须括起来,第二 种形式,参数不能括起来。 Function过程的调用 过程名(参数) 不管是Sub过程还是function过程定义时不 能放在已有事件中,或者放在模块中。
Private function jc(m) as double s=1 For i=1 to m s=s*I Next i Jc=s End function Private Sub Command1_Click() Picture1.Print JC(8) / JC(5) / JC(3) End Sub 思考题:编写一个求三角形面积的function过程
变量作用范围:vb中变量的作用范围因定义的关键
字的不同和位置的不同而不同 名称 作用域 整个应用程 序 关键字 定义位置
全局变量
Public Private
通用声明段 通用声明段 通用声明段
窗体/模块级 本窗体/本模 变量 块
窗体/模块级 本窗体/本模 变量 块 本过程(或 过程级变量 事件)
过程级静态 本过程(或 变量 事件)
• Function与sub过程的返回值区别 Function可通过函数名返回值 Sub过程无法通过函数名返回值,但可 以通过其他方式返回值,如:通过 定义窗体模块级变量或者通过按地 址传递的参数
vb中过程分为事件过程和通用过程,事件过程 是当事件触发时系统自动执行,而通用过程被其它 程序调用时才执行。所以编写通用过程的程序,既 要编写调用该过程的主程序(一般是事件过程,该事 件过程包括调用通用过程的语句),又要编写该过程。
相关文档
最新文档