1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套

Slides:



Advertisements
Similar presentations
编程加工 信息的. 趣味导入拓展提升大显身手总结反思学以致用 传说古代印度有个国王叫舍罕,他很迷恋棋类,而 宰相达依尔是个聪明的大臣,发明了国际象棋。国王玩 得爱不释手,决定奖赏宰相。达依尔说:陛下,我别无 他求,请你在这张棋盘的第一个格子里赏我 1 粒麦子; 在第二个格子里赏我 2 粒麦子;在第三个格子里赏我.
Advertisements

第二章 VB程序设计基础 第1节 Visual Basic 概述 1.1 Visual Basic简介 1.2 面向对象的程序设计概念
第2章 Visual Basic 6.0编程基础 (第一部分)
Demo-dataSource與DropDownList
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
第四章 控制结构.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
Access数据库程序设计 总复习.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
高等医药院校药学类第三轮规划教材——大学计算机基础
第五章 数组.
四 VBScript编程基础.
Visual Basic程序设计.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
1、数组的概念 2、静态数组 3、动态数组 4、数组的基本操作 5、控件数组
程式語言 -Visual Basic 變數、常數與資料型態.
Visual Basic程序设计 第八章 过程 -子程序和函数
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
初识Visual Basic.
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
Timer & Format.
计算机程序设计强化复习 Visual Basic 6.0.
第十二章 多模組與多專案.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
程式語言Visual Basic 傳址與傳值
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
RWM600 (13.56MHz) Reader Antenna.
RWM600 (13.56MHz) Reader Antenna.
新觀念的 VB6 教本 第 6 章 資料型別.
第5章 Visual Basic控制结构 之 常用算法举例
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
VB程序设计语言 主讲教师:王 杨.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
VB语言程序设计教程.
小结 郭清溥.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
計算機概論 跨越講義 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 結構化VS物件導向程式設計
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
1位选手参加了歌唱比赛,评委们的评分如下:
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
解析算法与枚举算法.
算法与Visual Basic程序基础(二)
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
程序调试与错误处理.
打地鼠.
Presentation transcript:

1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套 第六章 过程 1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套

过程的概述 将程序分割成较小的逻辑部件就可以简化程序设计任务,这些部件称为过程 过程分类: 1、子过程 2、函数过程 3、属性过程 4、事件过程

引例 已知多边形的各条边的长度,要计算多边形的面积。 计算多边形面积,可将多边形分解成若干个三角形。 计算三角形面积的公式如下: x y z 定义函数过程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 调用函数过程: Sub command1_click() …… 输入若干个三角形边长 S=area(a,b,c)+area(c,d,e) S=S+area(e,f,g) Print S End Sub

函数过程 1、除了系统提供的内部属性过程和事件过程外,用户可自定义过程: 以Sub保留字开始的为子过程; 以Function保留字开始的为函数过程 例:要将一个十进制数转换成二到十六进制数,定义函数TranDec。 Public Function TranDec$(ByVal m%, ByVal r%) Dim StrDtoR$ Dim mr% strDto = "" Do While m <> 0 mr = m Mod r m = m \ r If mr >= 10 Then StrDtoR = Chr(mr - 10 + 65) & StrDtoR Else StrDtoR = mr & StrDtoR End If Loop TranDec = StrDtoR End Function 例:6-1

2.函数过程的定义 自定义函数过程有两种方法: (1)利用“工具”菜单下的“添加过程”命令定义,生成一个函数的框架。 (2)利用代码窗口直接定义。 函数过程形式: Function 函数过程名([参数列表]) [As 类型] 局部变量或常数定义 语句块 函数名 = 返回值 函数过程体 [Exit Function] 函数名 = 返回值 End Function 函数过程名:命名规则同变量名 参数列表形式: [ByVal]变量名[()][As 类型] 称为形参或哑元,仅表示参数的个数、类型,无值。 函数名 = 返回值 在函数体内至少对函数名赋值一次。 [Exit Function] : 表示退出函数过程。

3.函数过程的调用 函数过程调用同标准函数调用,形式:函数过程名([参数列表]) 参数列表:称为实参或实元,它必须与形参个数相同,位置与类型一一对应。可以是同类型的常量、变量、表达式。

子 过 程 1、子过程定义 Sub 子过程名[(参数列表)] 局部变量或常数定义 语句 [Exit Sub] End Sub 2.子过程的调用 子过程名 [参数列表] 或 Call 子过程名(参数列表) 3.子过程与函数过程区别: (1)函数过程名有值,有类型,在函数体内至少赋值一次; 子过程名无值,无类型,在子过程体内不能对子过程名赋值; (2)调用时,子过程调用是一句独立的语句。 函数过程不能作为单独的语句加以调用,必须参与表达式运算。 (3)一般当过程有一个函数值,使用函数过程较直观; 反之若过程无返回值,或有多个返回值,使用子过程较直观。

例: 编写一子过程del(s1,s2),将字符串s1中出现的s2子字符串删去,结果仍存放在s1中。 Private Sub del(s1 As String, ByVal s2 As String) Dim i% i = InStr(s1, s2) ls2 = Len(s2) Do While i > 0 s1 = Left(s1, i - 1) + Mid(s1, i + ls2) Loop End Sub 例:6-2

时钟控件 P134 重要属性:enabled 、 Interval Interval决定间隔多少时间激发计时器事件,单位是毫秒,当为0时,则屏蔽计时器 重要事件:timer事件 例7-4 例6-4

6.3 参数传递P117 Sub Swap2(x%, y%) t% = x: x = y: y = t End Sub 指主调过程的实参传递给被调过程的形参。 1. 传址与传值 传址:用byref,或默认 形参得到的是实参的地址,当形参值的改变同时也改变实参的值。 传值:用byval 形参得到的是实参的值,形参值的改变不会影响实参的值。 例 两个变量的交换。 Sub Swap1(ByVal x%, ByVal y%) t% = x: x = y: y = t End Sub Private Sub Command1_Click() a% = 10: b% = 20: Swap1 a, b '传值 Print "A1="; a, "B1="; b a = 10: b = 20: Swap2 a, b '传址 Print "A2="; a, "B2="; b 例:6-7 药品价格 Sub Swap2(x%, y%) t% = x: x = y: y = t End Sub

当参数是数组通过传址方式进行传递。注意: 2. 数组参数的传递 当参数是数组通过传址方式进行传递。注意: 在实参和形参中写数组名,忽略维数的定义,但圆括号不能省。 被调过程可通过Lbound和Ubound函数确定实参数组的下、上界。 Lbound和Ubound函数的形式如下: {L|U}bound(数组名[,维数]) 其中:维数指明要测试的是第几维的下标值,缺省是一维数组。 例:6-6

使用过程注意事项: 1. 确定自定义的过程是子过程还是函数过程 函数过程名有值,子过程名无值。 2.过程中形参的个数和传递方式的确定 过程中参数的作用是实现过程与调用者的数据通信。 (1)从主调程序获得初值,值传递。 (2)将结果返回给主调程序,地址传递。 3. 实参与形参结合时对应问题 个数、类型、位置、次序一一对应。 形参是值传递,对应实参可以是表达式、常量、数组元素。 形参是地址传递,对应实参只能是简单变量。 数组、记录类型、对象只能是地址传递。

过程的嵌套调用 过程嵌套调用的执行原理如图所示(其中带圆圈的数值为执行步骤): 例6-10 事件过程 ··· Call 过程一 End Sub Sub 过程一 Call 过程二(y) Sub 过程二(n) ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ 例6-10