第六章VB的过程设计讲解
VB教程 第六章 过程、模块与类

2.按地址传递参数 按地址传递参数使过程用变量的内存地址去访问实际变量 的内容。结果,将变量传递给过程时,通过过程可永远改 变变量值。按地址传递参数在 Visual Basic 中是缺省的。 例如: Sub PostAccounts (intAcctNum as Integer) . '这里放语句。 End Sub 3.使用可选的参数 4.提供可选参数的缺省值 5.使用不定数量的参数
下面分别对被调用过程在窗体模块、类模块和标准模块三种 情况说明: ① 窗体中的过程 ② 类模块中的过程 ③ 标准模块中的过程
一个很好的例子: 交通信号灯控制的例子
一个重要的思想(递归 一个重要的思想 递归) 递归
递归就是一个过程调用自己来完成某个特定的 任务。在递归过程中,一个过程的某一步要用 到其自身的上一步或几步的结果。递归分为两 种类型:直接递归和间接递归。Visual Basic的 过程具有递归调用功能。 递归可能会导致堆栈上溢。通常 Static 关键字 和递归过程不在一起使用。使用递归过程要特 别小心,不加控制的递归通常会引起溢出堆栈 空间错误信息。如下例:
作用域不同([Private | Public | Friend]) 生命期不同([Static]) 但是arglist语法较简单:可选的。代表在调用时要传递给 Function 过程的参数变量列表。多个变量应用逗号隔开。 一点注意:若 Function 过程会改变某个数学表达式中变 量的值,则应避免在此表达式中使用该函数。例如: I=2 J=3 X=(Sum (I,J)+1)/Sum(I,J) Function Sum (A As Integer, B As Integer) As String A=A+2 Sum=A+B End Function 结果如何?怎么修改?
VB程序设计教程 第四版 第6章

a
10
执行过程体
x a
20 10
返回
返回
20 Integer a = = : y b10 的地址 b 10 = 20 : b 10 aCall = Swap 10 : y b 的地址 2(a, b 10 = b) 20 : 10 b Call a = Text Swap b
汉字的机内码最高位为1,Asc函数码值为小于0(补码)
西文字符的最高位为0,Asc函数求其码值为大于0
Function CountC%(ByVal s$) Dim i%, k% Dim c As Char For i = 1 To Len(s) c = Mid(s, i, 1) If Asc(c) < 0 Then k = k + 1 Next CountC = k End Function Sub Command1_Click() Dim c1% c1 = CountC(Text1.Text) 显示 Text1.Text 和 C 1 End Sub
Functioc Count%(st$) Dim i% Count = 0 i = InStr(st, “ the ") Do While (i > 0) Count = Count + 1 st = Mid(st, i + 1) i = InStr(st, “ the ") Loop VB 程序设计教程 End Function
Z←gcd
例6.2 设断点演示过程
调用形式:函数过程名([参数列表])
参数列表(称为实参或实元):必须与形参个数相同,位置与 类型一一对应。可以是同类型的常量、变量、表达式。
第6章程序设计初步教参

第六章程序设计初步【本章概述】中小学程序设计教学的目的,是要求学生掌握程序设计的一般方法,发展他们的思维能力、分析问题和解决问题的能力。
VB是一种面向对象的程序设计语言,Visual意为“可视化的”,Basic指的是BASIC语言。
在学习VB时,除了学习界面设计,更要学习灵活运用VB实现各种算法。
教学过程中,教师应注重算法的教学,通过阅读程序、编写和调试程序、使用程序,逐步培养学生的程序设计的能力。
【教学要求】1.本章总的教学要求⑴熟悉Visual Basic窗口的组成,学会建立Visual Basic程序。
⑵理解对象的概念,知道对象的三要素,了解事件驱动的程序设计思想和面向对象的程序设计方法。
⑶理解窗体和控件的概念,掌握四个常用控件——命令按钮、标签、文本框和定时器,学会用可视化的设计工具设计程序界面。
⑷掌握Visual Basic的常量、变量、标准函数和表达式。
⑸掌握Let、End语句及输入输出技术,会用注释符(')为程序添加注释。
⑹掌握程序控制语句。
⑺理解数组、数组元素、下标的概念,掌握数组的简单应用。
⑻掌握算法的概念和一些简单的典型算法,能用流程图描述算法,并能用Visual Basic 语言实现算法。
⑼学会编辑、调试和运行程序。
⑽学会使用Visual Basic的帮助功能,培养通过帮助获取信息的能力。
⑾培养对程序设计的兴趣和用程序设计方法解决实际问题的能力。
⒉教学内容及课时安排本章教学约需23课时(含上机实践),具体安排如下:第一节:程序设计的基本方法1课时第二节:Visual Basic的基本知识2课时第三节:程序的建立和运行3课时(1)第四节:Visual Basic语言基础4课时(1)第五节:分支结构3课时(1)第六节:循环结构6课时(1)第七节:数组4课时(1)【教材分析与教法建议】第一节程序设计的基本方法一、教学要求⑴理解算法的概念,了解描述算法的两种方法——自然语言、流程图,知道各自的优缺点。
VB课件第6章Visual Basic 循环结构

Do Until i = 100
例6-3:求 1+22+32+……n2大于1000的最小值。
选Do … Loop语句: 不知道要加到第几项,但知道累加和大于 1000,并且,第一次超过1000时就不再累 加了,所以选Do … Loop语句。
求项数(计数i): i=0(初值) ,i=i+1(重复执行)
例: 利用随机函数10个产生[20,90]的整数, 求其平均值.
界面设计: 单击窗体, 显
示结果如图.
例: 利用随机函数10个产生[20,90]的整数, 求其平均值.
分析: 产生数X 求和s
求平均a
产生一个X: X=Int(Rnd*71+20)
显示产生的值: Print x
计算和: s=s+x
重复10次 求得这10 个数的和s
Private Sub Form_Click( ) Dim i As Integer i=0 Do While i < 100 i=i+1 Print i; If i Mod 10 = 0 Then Print Loop
End Sub
用Do Until … Loop循环来编制 例6-2的程序
Private Sub Form_Click() Dim i As Integer i=0 Do While i < 100 i=i+1 Print i; If i Mod 10 = 0 Then Print Loop
If Max <= x Then Max = x Next i Print Print “最大值为:”; Max End Sub
6.4 循环嵌套
循环嵌套:在一个循环语句的循环体中又包含有另一 循环语句。 VB的三种循环可以自身嵌套与相互嵌套 要求:内层结构一定包含在外层结构中,不能交叉
VB第6章详细介绍

6.1 子过程的定义与调用
Private Sub cmdJS_Click() Dim a!, b!, c!, w! a = Val(txtA.Text) b = Val(txtB.Text) c = Val(txtC.Text) If a > b + c Or b > a + c Or c > a + b Then MsgBox "输入的三条边不能构成一个三角形!" 输入的三条边不能构成一个三角形! 输入的三条边不能构成一个三角形 Else Call area(a, b, c, w) txtMj.Text = Str(w) End If End Sub
第6章 过程
本章要点: 本章要点:
子过程(Sub)的定义与调用 6.1 子过程 的定义与调用
6.1.1 子过程的定义
定义子过程的一般格式如下: 定义子过程的一般格式如下: [Private | Public | Friend] [Static] Sub _ 过程名( 参数列表 参数列表] 过程名 [参数列表 ) 语句块 [Exit sub] [语句块 语句块] 语句块 End Sub
6.1 子过程的定义与调用
6.1.2 建立 建立Sub过程 过程
建立子过程有两种方法: 建立子过程有两种方法: 1、利用代码窗口直接定义 、 (1) 进入代码窗口,在左侧显示对象名的下拉框中 进入代码窗口, 选择“ 通用” 选择 “ 通用 ” , 在右侧显示过程的下拉框中 选择“声明” 然后键入Sub及子过程名。 及子过程名。 选择“声明”,然后键入 及子过程名 (2) 按Enter键后,Visual Basic系统会自动加上 键后, 键后 系统会自动加上 End Sub与子过程名后的一对括号 , 此时便 与子过程名后的一对括号, 与子过程名后的一对括号 可输入子过程语句。 可输入子过程语句。
Visual Basic过程和函数解析

建立通用Sub过程: (1) 建立过程框架
方法1:在模块的“通用”段中输入过程名, 按回车后系统自动添加 End Sub。 方法2:“工具→添加过程” (2) 编写该过程的程序代码
格式: [Private |Public][Static] Sub <过程名>[(< 形参表列>)] [<语句块1>] [Exit Sub] [<语句块2>] End Sub 其中:
SUB过程的定义中_____
A) 一定要有虚参 B) 一定指明是公有的还是静态的 C) 一定要有过程的名称 D) 一定要指明其类型
3 函数过程的定义
函数也属于过程。它与子过程的根本区别是可 以返回一个值给调用程序。其定义方法同过程相 似,也有两种。 1.利用“添加过程”对话框定义 打开窗体或模块的代码窗口,单击“工具”菜 单,选择“添加过程”,然后在对话框的“类型” 中选择“函数”即可。 2.直接在代码窗口定义 进入代码窗口后,在左侧显示对象名的下拉列 表框中选择“通用”,在右侧显示过程的下拉列 表框中选择“声明”,然后输入Function及函数 名即可。
一个调用计算圆面积及周长过程(sr)的 Private Sub Command1_Click() Dim r, a, s As Single r = Val(InputBox("输入半径R")) Call sr(r, a, s) 计算圆面积和周长的子过程: Print: Print: Print Sub sr(a, c, b) Print “半径:"; Private r Const pi = 3.1416 Print “面积:"; a c = a * a * pi ’计算面积 Print “周长:"; s End Sub b = 2*pi*a ’计算周长 实例。 End Sub
VB应用程序的开发过程
第六章第1、2讲
可视化编程
程序设计语言与程序设计
人们想用计算机解决一个问题,必须事先设计 好计算机处理信息的步骤,把这些步骤用计算 机能够识别的指令编写出来并送入计算机执行, 计算机才能按照人的意图完成指定的工作。我 们把计算机能执行的指令序列称为程序,而编 写程序的过程称为程序设计。
学习版<专业版<企业版
三、启动 Visual Basic
步骤:
1. 单击任务条上的“启动”。 2. 选择“程序”,接着选取“Microsoft Visual Basic 6.0 中文版”。 3. 双击 Visual Basic 6.0的 快捷键图标。 4. 使用“Windows 资源管理器”寻找 Visual Basic 可执行文件。
在设计模式中,通过双击窗体或窗体上任何对象或通过 “工程资源管理器”窗口中的“查看代码”按钮来打开代码编 辑器窗口。代码编辑器是输入应用程序代码的编辑器。
4. 属性(properties)窗 口 属性是指对象的特征,如大小、标题或颜色等
数据。在Visual Basic6.0设计模式中,属性窗口列出 了当前选定窗体或控件的属性的值,用户可以对这
Visual Basic的功能与特点
面向对象的可视化程序设计。 事件驱动的程序设计和运行机制。 易学易用的应用程序集成开发环境。 结构化的程序设计语言。 强大的数据库访问功能。 支持DDE、DLL、OLE等技术。 完备的联机帮助功能。
9
3.VB中的类和对象
第六章vb计算机
第六章 过 程
6.1 6.2 6.3 6.4 6.5 函数过程的定义与调用 子过程的定义与调用 参数传递 递归 变量、 变量、过程的作用域
6.6 综合应用 6.7 重点和难点
2011年9月21日星期三
Visual Basic程序设计
6.1 函数过程的定义
6.1.1 引例已知多边形的各条边的长度,计算 引例已知多边形的各条边的长度 已知多边形的各条边的长度, 多边形的面积。 多边形的面积。 计算多边形面积, 计算多边形面积, 可将多边形分解成若干个 三角形。 三角形。 计算三角形面积的公式如下: 计算三角形面积的公式如下:
2011年9月21日星期三
Visual Basic程序设计
6.2.4子过程与函数过程区别 子过程与函数过程区别 (1)函数过程名有值,有类型,在函数体内至少赋值一次; 函数过程名有值,有类型,在函数体内至少赋值一次; 函数过程名有值 子过程名无值,无类型,在子过程体内不能对子过程名赋值。 子过程名无值,无类型,在子过程体内不能对子过程名赋值。 (2)调用时,子过程调用是一句独立的语句; 调用时,子过程调用是一句独立的语句; 调用时 函数过程不能作为单独的语句加以调用,必须参与表达式运算。 函数过程不能作为单独的语句加以调用,必须参与表达式运算。 (3)一般当过程有一个返回值,使用函数过程较直观;反之若过程无返回值, 一般当过程有一个返回值,使用函数过程较直观;反之若过程无返回值, 一般当过程有一个返回值 或有多个返回值,使用子过程较直观。把某功能定义成函数或是过程, 或有多个返回值,使用子过程较直观。把某功能定义成函数或是过程, 没有严格的规定。但只要能用函数定义的,就肯定能用过程定义, 没有严格的规定。但只要能用函数定义的,就肯定能用过程定义,反之 不一定。 不一定。 6.2.5形参个数的确定 形参个数的确定 (1)形参是过程与主程序交互的接口,从主程序获得初值,或将计算结果返 形参是过程与主程序交互的接口,从主程序获得初值, 形参是过程与主程序交互的接口 回给主调程序。不要将过程中所有使用过的变量均作为形参。 回给主调程序。不要将过程中所有使用过的变量均作为形参。若只在过 程内部使用,则声明为局部变量。 程内部使用,则声明为局部变量。 (2)形参没有具体的值,只代表了参数的个数、位置、类型;只能是简单变 形参没有具体的值,只代表了参数的个数、位置、类型; 形参没有具体的值 数组名,不能是常量、数组元素、表达式。 量、数组名,不能是常量、数组元素、表达式。
VB第六章理论课件
6.1数组的基本概念(续)
数组元素:即数组中的变量,用下标表示数组中的 各个元素。表示方法:<数组名>(下标) 例如:A(3) 下标: 下标表示顺序号,可表示数组元素在数组中 的位置。每个数组有一个唯一的顺序号,下标不能超 过数组声明时的上、下界范围。 下标可以是整型的常数、变量、表达式,甚至又是 一个数组元素。 下标的取值范围是: 下界 To 上界 ,缺省下界时,系统默认取0。 数组维数: 由数组元素中下标的个数决定,一个下 标表示一维数组,二个下标表示二维数组。 VB中有一维数组、二维数组、……最多60维数组。
6.1数组的基本概念(续)
• 数组的维数:数组一般可以分为一维、多维,在多 维数组中我们一般讨论二维数组,有时也会使用三维 数组。一维数组只需用一个下标就能标识一个元素, Score(30)表示下标为30的数组元素;二维数组则需 要用两个下标来标识一个元素,形象地表达为行和列, 如有二维数组Arr(1 to 3,1 to 5),表示数组中有3行 5列的元素,其中Arr(2,3)表示第2行第3列元素; • 数组的分类:根据数组在内存中分配空间在程序执 行过程中是否可变,将VB中的数组分为静态数组和动 态数组。静态数组不允许用户在定义后再在程序中修 改数组的长度和维数,而动态数组允许用户在定义后 多次在程序中修改数组的长度或维数
例:在VB语言中,定义数组时,其下标允许是() A变量 B 常量 C算数表达式(可含变量) D变量、常量、算数表达式(可含变量)
例:若有说明:dim a(1 to 10)as integer,则下列 应用()合法 A a(1)=―adk‖ B a(7)=32768 C a(8)=―23‖ D a(0)=2
【格式】 Dim 数组名([下界To]上界[,下界 To]上界……)as 类型名称
vb教案(实用3篇)
vb教案(实用3篇)(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如计划总结、合同协议、管理制度、演讲致辞、心得体会、条据书信、好词好句、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays for everyone, such as plan summaries, contract agreements, management systems, speeches, insights, evidence letters, good words and sentences, teaching materials, complete essays, and other sample essays. If you want to learn about different sample formats and writing methods, please pay attention!vb教案(实用3篇)vb教案(1)教案设计学科 vb程序设计授课年级一年级教师姓名李新亮 1. 章节名称:第六章:键盘与鼠标控制第四节:鼠标拖放动画实例设计计划学时:一课时 2. 教学目标:①认识鼠标事件②正确分析题目已确定应当运用哪种鼠标事件课程标准:熟练掌握鼠标事件知识与能力:学会综合运用各种鼠标事件编写程序过程与方法:认识鼠标事件运用鼠标事件完成实例设计 3. 教学重点鼠标事件及其格式,案例程序分析 4. 教学难点几种鼠标事件:Click,Dblclick,DragDrop,DragOver,Drag的区别 5. 教学设计思路一、复习导入键盘事件keypress,keydown,keyup 二、初识鼠标事件三、几种鼠标事件的格式四、几种鼠标事件的区别五、实例程序分析六、界面设计七、程序分析八、程序运行与调试教学反思这节课的主要内容是,以分析鼠标拖拽的实例程序入手,来归纳总结常见的鼠标事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章VB的过程设计1.什么是过程在程序设计中,为各个相对独立的功能模块所编写的一段程序称之为过程。
2.VB中的自定义过程分类(1)以“Sub”保留字开始的子程序过程(包括事件过程和通用过程),不返回值;(2)以“Function”保留字开始的函数过程,返回一个值;(3)以“Property”保留字开始的属性过程,可以返回和设置窗体、标准模块以及类模块的属性值,也可以设置对象的值。
6.1 子过程(Sub)的定义与调用1.事件过程(1)窗体事件过程语法:Private Sub Form_事件名([参数列表])[局部变量和常数声明]语句块End Sub注意:1)窗体事件过程名由Form_事件名组成,多文档窗体用MDIForm_事件名;2)每个窗体事件过程名前都有一个Private的前缀,表示该事件过程不能在它自己的窗体模块之外被调用;3)事件过程有无参数,完全由VB提供的具体事件本身决定,用户不可以随意添加。
(2)控件事件过程语法:Private Sub 控件名_事件名([参数列表])[局部变量和常数声明]语句块End Sub注意:其中的控件名必须与窗体中某控件相匹配,否则VB将认为它是一个通用过程。
(3)建立事件过程的方法1)打开代码编辑器窗口(两种方法:双击对象或从工程管理器中单击“查看代码”按钮)2)在代码编辑器窗口中,选择所需要的“对象”和“事件过程”3)在Private Sub ……End Sub之间键入代码4)保存工程和窗体(4)事件过程的调用事件过程由一个发生在VB中的事件来自动调用或者由同一模块中的其他过程显示调用。
2.通用过程通用过程是一个必须从另一个过程显示调用的程序段,通用过程有助于将复杂的应用程序分解成多个易于管理的逻辑单元,使应用程序更简洁、更易于维护。
通用过程分为公有(Public)过程和私有(Private)过程两种,公有过程可以被应用程序中的任一过程调用,而私有过程只能被同一模块中的过程调用。
(1)定义方法:[Private | Public ][ Static] Sub过程名([参数列表])[局部变量和常数声明] ‘用Dim 或Static声明语句块[Exit Sub]语句块End Sub注意:1)缺省[ Private | Public ]时,系统默认为Public ;2)Static 表示过程中的局部变量为“静态”变量;3)过程名的命名规则与变量命名规则相同,在同一个模块中,同一符号名不得既用作Sub 过程名,又用作Function过程名。
4)参数列表中的参数称为形式参数,它可以是变量名或数组名,只能是简单变量,不能是常量、数组元素、表达式;若有多个参数时,各参数之间用逗号分隔,形参没有具体的值。
VB 的过程可以没有参数,但一对圆括号不可以省略。
不含参数的过程称为无参过程。
形参格式为:[ ByVal ] 变量名[()] [As数据类型]式中:变量名[()]:变量名为合法的VB变量名或数组名,无括号表示变量,有括号表示数组。
ByVal:表明其后的形参是按值传递参数(传值参数Passed By Value),若缺省或用ByRef,则表明参数是按地址传递的(传址参数)或称“引用”(Passed By Reference)。
As:数据类型:缺省表明该形参是变体型变量,若形参变量的类型声明为String,则只能是不定长的。
而在调用该过程时,对应的实在参数可以是定长的字符串或字符串数组,若形参是数组则无限制。
5)Sub 过程不能嵌套定义,但可以嵌套调用。
6)End Sub 标志该过程的结束,系统返回并调用该过程语句的下一条语句。
7)过程中可以用Exit Sub提前结束过程,并返回到下调用该过程语句的下一条语句。
(2)建立Sub过程的方法方法一:1)打开代码编辑器窗口2)选择“工具”菜单中的“添加过程”3)从对话框中输入过程名,并选择类型和范围4)在新创建的过程中输入内容方法二:1)在代码编辑器窗口的对象中选择“通用”,在文本编辑区输入Private Sub 过程名2)按回车键,即可创建一个Sub过程样板3)在新创建的过程中输入内容3.Sub子过程的调用(1)用Call语句调用Sub过程语法:Call过程名(实在参数表)实在参数的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。
例:利用过程编写求三角形面积的程序(2)把过程名作为一个语句来用语法:过程名[实参1[,实参2……]]它与(1)的不同点是:去掉了关键字和实参列表的括号如上例中可以改成:area a,b,c,w6.2 函数过程(Function)的定义与调用1.函数过程的定义有两种方法:(1)在代码窗口中,利用“工具”菜单下的“添加过程”命令,插入一个函数过程模板来定义(2)在代码窗口中,把插入点放在所有现有过程之外,直接输入函数来定义[ Private | Public ][ Static] Function函数名([参数列表])[As 数据类型] [局部变量和常数声明] ‘用Dim 或Static声明[语句块][ 函数名=表达式][ Exit Function]语句块[ 函数名=表达式]End Function2.注意事项(1)函数名的命名规则与变量命名规则相同;函数过程必须由函数名返回一个值。
(2)如果函数体内没有给函数名赋值,则返回对应类型的缺省值,数值型返回0,字符型返回空字符串。
(3)函数过程内部不得再定义Sub过程或Function过程。
例:编写一个计算N!的函数过程3.Function过程的调用调用Function过程与调用VB内部函数的方法一样,即在表达式中写出它的名称和相应的实在参数。
语法:过程名([实参列表])注意:(1)必须给参数加上括号,即使没有参数也不可省略括号;(2)VB中也允许象调用Sub过程一样来调用Function,但这样就没有返回值。
4.调用其他模块中的过程(1)调用窗体中的过程从窗体模块的外部调用窗体中的公有过程,必须用窗体的名字作为调用前缀。
如:Call Form1.Examsub([实参表])(2)调用标准模块中的过程如果在应用程序中,过程名是唯一的,则调用时不必加模块名。
如果有同名的,则在同一模块内调用时可以不加模块名,而在其他模块中调用时必须加模块名。
(3)类模块中的过程调用类模块的公有过程时,要求用指向该类某一实例的变量修饰过程,即首先要声明类的实例为对象变量,并以此变量作为过程名前缀修饰词,不可直接用类名作为前缀修饰词。
如:在类模块Class1中含有过程clssub,变量Democlass是类Class1的一个实例,则调用clssub的方法是:Dim Democlass AS New Class1Call Democlass.clasub例:函数过程与子过程的异同,计算级数的部分和1 + x + x2/2! +……+ x n/n! +……,|x n/n!|<exp6.3 参数的传递1.形参与实参的概念形参:指出现在Sub 和Function过程形参表中的变量名、数组名,过程被调用前,没有分配内存,其作用是说明自变量的类型和形态以及在过程中的角色。
形参可以是:1)除定长字符串变量之外的合法变量名;2)后面跟()括号的数组名。
实参:是在调用Sub 和Function过程时,传送给相应过程的变量名、数组名、常数或表达式。
在过程调用传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但位置必须对应起来。
形参与实参的关系:形参如同公式中的符号,实参就是符号具体的值;调用过程:即实现形参与实参的结合,也就是把值代入公式进行计算。
2.按值传递参数(定义时加ByVal)按值传递参数(Passed By Value)时,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变。
3.按地址传递参数(定义时没有修饰词或带关键字ByRef)按地址传递参数时,把实参变量的地址传送给被调用过程,形参和实参共用内存的同一地址。
在被调用过程中,形参的值一旦改变,相应实参的值也跟着改变。
如果实参是一个常数或表达式,VB会按“传值”方式来处理。
4.数组参数VB允许把数组作为形参出现在形参表中,语法:形参数组名()[As 数据类型]形参数组只能按地址传递参数,对应的实参也必须是数组,且数据类型相同。
调用过程时,把要传递的数组名放在实参表中,数组名后面不跟圆括号。
在过程中不可以用Dim语句对形参数组进行声明,否则会产生“重复声明”的错误。
但在使用动态数组时,可以用ReDim语句改变形参数组的维界,重新定义数组的大小。
5.对象参数VB中可以向过程传递对象,在形参表中,把形参变量的类型声明为“Control”,可以向过程传递控件;若声明为“Form”,则可向过程传递窗体。
对象的传递只能按地址传递。
6.4 变量、过程的作用域1.VB应用程序的组成:2.过程的作用域3. 变量的作用域4.静态变量用Static声明的静态变量,在每次调用过程时保持原来的值,不重新初始化。
而用Dim声明的变量,每次调用过程时,重新初始化例:显示1到5个数。
5.同名变量对不同范围内出现的同名变量,可以用模块名加以区别。
一般情况下,当变量名相同而作用域不同时,优先访问局限性大的变量。
6.5递归过程1.递归的概念通俗的讲,用自身的结构来描述自身就称为“递归”。
如对阶乘运算的定义就是递归的:n!=n(n-1)! (n-1)!=(n-1)(n-2)!2.递归子过程和递归函数VB 允许一个自定义子过程或函数过程在过程体的内部调用自己,这样的子过程或函数就叫递归子过程和递归函数。
递归过程包含了递推和回归两个过程。
构成递归的条件是:(1)递归结束条件和结束时的值(2)能用递归形式表示,并且递归向结束条件发展。
例:编制程序求fac(n)=n!的函数3.注意事项(1)递归算法设计简单,但消耗的上机时间和占据的内存空间比非递归大(2)设计一个正确的递归过程或函数过程必须具备两点:1)具备递归条件;2)具备递归结束条件(3)一般而言,递归函数过程对于计算阶乘、级数、指数运算有特殊效果。