- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Picture1
本书目录
例题8.2 编写子过程求 !,计算 !+7!-6! 编写子过程求N!,计算5! ! ! !,计算 例题 子过程: 子过程: Private Sub jcn(n%, jc%) Dim i% jc = 1 For i = 1 To n jc = jc * i Next i End Sub
本书目录
sub printhello print " hello" End sub
定义子过程的方法 引例1 ①在代码窗口直接定义 引例
②使用“添加过程”对话框 使用“添加过程” 作法如下: 作法如下: 新建窗体 视图—代码窗口 视图 代码窗口 工具—添加过程 工具 添加过程
本书目录
本书目录
输入过程名
Private Sub Command1_Click() Dim a%, b%, c%, d% Call jcn(5, a) Call jcn(7, b) Call jcn(6, c) d=a+b-c Print Print " 5!+7!-6!="; d End Sub 本书目录
8.3 函数过程
本书目录 本章目录
Sub command1_click() Dim a%, b%, c%, d%, e%, f%, g%, s! a = InputBox("输入三角形边长 输入三角形边长a") 输入三角形边长 b = InputBox("输入三角形边长 输入三角形边长b") 输入三角形边长 c = InputBox("输入三角形边长 输入三角形边长c") 输入三角形边长 d = InputBox("输入三角形边长 输入三角形边长d") 输入三角形边长 e = InputBox("输入三角形边长 输入三角形边长e") 输入三角形边长 f = InputBox("输入三角形边长 输入三角形边长f") 输入三角形边长 g = InputBox(“输入三角形边长 输入三角形边长g”) 输入三角形边长 S=area(a,b,c)+area(c,d,e)+area(e,f,g) Print Print " 多边形面积是:"; s 多边形面积是: End Sub
本书目录
8.1 过程概述
1 过程 过程是一段程序代码,用来执行某一特定功能。 过程是一段程序代码,用来执行某一特定功能。 2 过程分类 内部函数过程—Function—有返回值 内部函数过程 有返回值 系统提供 事件过程—Sub—无返回值 事件过程 无返回值 过程 以Sub为保留字开始的子过程 为保留字开始的子过程 自定义 以Function为保留字开始的函数过程 为保留字开始的函数过程 以Property为保留字开始的属性过程 为保留字开始的属性过程 以Event为保留字开始的事件过程 为保留字开始的事件过程
本书目录
窗体设计如下: 窗体设计如下:
Picture1
子过程为: 子过程为: Private Sub sarea(sw!, sh!) Dim s! s = sw * sh Print "面积为:"; s 面积为: 面积为 End Sub
Private Sub Picture1_Click() Dim w!, h! w = Picture1.Width h = Picture1.Height Print "图像框 图像框"; 图像框 sarea w, h End Sub 运行结果为: 运行结果为:
本书目录
本章目录
Private Sub Command1_Click() Dim c1% c1 = CountC(Text1.Text) ‘ 调用 调用CountC函数 函数 Picture1.Print Text1; Tab(20); "有"; c1; "个汉字 个汉字" 有 个汉字 End Sub Function CountC%(ByVal s$) Dim i%, t%, k%, c$ For i = 1 To Len(s) c = Mid(s, i, 1) '取一个字符 取一个字符 If Asc(c) < 0 Then k = k + 1 '汉字数加 汉字数加1 汉字数加 Next i CountC = k End Function Private Sub Command2_Click() Text1.Text = "" End Sub
本书目录
1 函数过程的定义
定义函数过程的方法与子过程相同,其形式如下: 定义函数过程的方法与子过程相同,其形式如下: [Public |Private] Function 函数过程名 形参 函数过程名(形参 形参)[As 类型 类型] 变量声明 函数返回值类型 语句块 [Exit Function] Return 表达式 或 函数名 表达式 函数名=表达式 End Function 说明: 说明: 全局函数过程, ①Public 全局函数过程,可被程序任何模块调用 ②Private 仅供本模块中的其它过程调用 形参(或称哑元 或称哑元) ③形参 或称哑元 只能是变量或数组名( 仅表示个数 类型,无值。 仅表示个数、 只能是变量或数组名 ),仅表示个数、类型,无值。
本书目录
子过程与函数过程的区别 把某功能定义为函数过程还是子过程,没有严格的规定。 把某功能定义为函数过程还是子过程,没有严格的规定。 一般若程序有一个返回值时,函数过程直观; 一般若程序有一个返回值时,函数过程直观;当有多个 返回值时,习惯用子过程。 返回值时,习惯用子过程。 函数过程必须有返回值,函数名有类型。 函数过程必须有返回值,函数名有类型。子过程名没有 过程名没有类型,不能在子过程体内对子过程名赋值。 值,过程名没有类型,不能在子过程体内对子过程名赋值。 参数问题 形参是过程与主调程序交互的接口, 形参是过程与主调程序交互的接口,从主调 程序获得初 或将计算结果返回给主调程序。 值,或将计算结果返回给主调程序。不要将过程中所有使用 过的变量均作为形参。 过的变量均作为形参。 形参没有具体的值,只代表了参数的个数、位置、类型; 形参没有具体的值,只代表了参数的个数、位置、类型; 只能是简单变量、数组名,不能是常量、数组元素、表达式。 只能是简单变量、数组名,不能是常量、数组元素、表达式。
本书目录
8.2 子过程
子过程的定义形式 子过程的定义形式 自定义标识符
Sub 子过程名 参数列表 子过程名[(参数列表 参数列表)] 局部变量或常数定义 语句序列 当有形参时各参数用逗号分隔。 当有形参时各参数用逗号分隔。 [Exit Sub] 当无形参时不要括号。 当无形参时不要括号。 语句序列 End Sub 中途退出子过程 无形参 例如: 例如:sub sum(x%,y%,z%,s%) s=x+y+z End sub 有形参
引例3 已知多边形各条边的长度,计算多边形的面积。 引例 已知多边形各条边的长度,计算多边形的面积。 分析:计算多边形面积,可将多边形分解成若干个三角形。 分析:计算多边形面积,可将多边形分解成若干个三角形。 计算三角形面积的公式如下: 计算三角形面积的公式如下: 1 area = c (c − x )( c − y )( c − z ) c = ( x + y + z ) 2
本书目录
本章目录
窗体设计
定义函数过程area 定义函数过程 Public Function area(x%, y%, z%) As Single Dim c! c = 1 / 2 * (x + y + z) area = Sqr (c * (c - x) * (c - y) * (c - z)) End Function
定义一个全局过程
定义一个局部过程
引例2 计算s=x+y+z 引例 计算
本书目录
需要输入 运行结果
本书目录
3 子过程的调用 子过程的调用是一句独立的调用语句,有两种形式: 子过程的调用是一句独立的调用语句,有两种形式: 子过程名[(实参列表 实参列表)] ① Call 子过程名 实参列表 实参列表]) ② 子过程名 ([实参列表 实参列表 注意: 注意: 有实参, 有实参,则实参必须用圆括号括起 ① 用Call调用 无实参圆括号省略 调用 实参只能是变量,不能是常量、表达式,也不能是控件名。 ② 实参只能是变量,不能是常量、表达式,也不能是控件名。 实参与形参的类型、顺序、 ③ 实参与形参的类型、顺序、个数要一致 4 应用举例 例题8.1 编写求矩形面积的子过程,调用该子过程求窗体上不同 编写求矩形面积的子过程, 例题 控件的面积。 控件的面积。 窗体上的控件任意设置,单击各个控件, 窗体上的控件任意设置,单击各个控件,其面积的大小 直接显示在窗体上。 直接显示在窗体上。
本书目录
2 函数的调用 变量名=函数过程名(实参列表) 变量名 函数过程名(实参列表) 函数过程名 实参列表与形参列表中的参数的类型、个数、 实参列表与形参列表中的参数的类型、个数、次序要一一对应 引例4 求任意2个整数的和 引例 求任意 个整数的和 Private Sub Command1_Click() Dim s%, n%, m% n = InputBox("输入第一个整数 输入第一个整数") 输入第一个整数 m = InputBox("输入第二个整数 输入第二个整数") 输入第二个整数 s = sum(n, m) Print n; "+"; m; "="; s End Sub
第章 过
8.1 过程概述 8.2 子过程 8.3 函数过程 8.4 参数传递
程
8.5 过程与变量的定义域
本书目录
本章目录
本章重点: 本章重点: ※过程的声明及过程的调用方法 过程的声明及过程的调用方法 ※函数过程的声明及过程的调用方法 函数过程的声明及过程的调用方法 ※参数传递及常用算法 参数传递及常用算法 本章难点: 本章难点: ※过程的创建 过程的创建 ※参数的传递 参数的传递 ※过程与变量的作用域 过程与变量的作用域 学习方法建议: 学习方法建议: 学习本章内容应重点掌握过程的声明、 学习本章内容应重点掌握过程的声明、调用方法及其常用算 掌握变量的作用域及参数传递的方法及其应用。 法,掌握变量的作用域及参数传递的方法及其应用。