Visual Basic程序设计 第八章 过程 -子程序和函数

Slides:



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

計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
Visual Basic 程序设计 第四讲.
第2章 Visual Basic 6.0编程基础 (第一部分)
第二章 VB的编程机制 【授课时间】第3周,第2次课 【授课题目】 2.1 面向对象程序设计概述 2.2 VB中的对象
計算機程式及實習 期末報告 題目:商店結帳系統
Demo-dataSource與DropDownList
翰林版國文第三冊第六課 《迢迢牽牛星》 設計者:郭宜幸.
第10章 处理图形 Visual Basic 程序设计教程.
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
和码汉字字形技术 和码汉字字形学习法 和码汉字字形输入法.
赋值语句与输入、输出语句.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
客户端用Net-Library和SQL SERVER连接
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
高等医药院校药学类第三轮规划教材——大学计算机基础
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
Visual Basic程序设计.
程式語言Visual Basic 變數的可視範圍
CH11.
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
程式語言 -Visual Basic 變數、常數與資料型態.
副程式 將可以重複使用的程式區塊獨立而成 寫在Private Sub 函數名稱() 副程式碼 End Sub 呼叫副程式
过程 第 7 章.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
初识Visual Basic.
第一章 VB概述 本章重点和难点 1.1 VB 概述 1.2 面向对象的程序设计方法基础
Visual Basic程序设计基础 计算机科学学院.
第1章 概述 程序设计语言的发展 Visual Basic 6.0简介 Visual Basic 6.0集成开发环境 设计程序的一般步骤.
計算機程式 廖文淵 Department of Computer Science and Engineering
程序的基本要素 2018/12/6.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
第十二章 多模組與多專案.
第8章 键盘、鼠标事件和图形 Visual Basic为用户提供了键盘、鼠标事件用于响 应键盘操作和鼠标操作。在Visual Basic中,大多 数控件都有键盘事件和鼠标事件。这一章将讲述 与键盘和鼠标相关的内容,除此之外,还有通常 在鼠标事件中出现的关于绘制图形方面的内容。
第十二章 事件 12-1 KeyPress 12-2 KeyDown及KeyUp
程式設計 Visual Basic簡介 週次:1 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程式語言Visual Basic 傳址與傳值
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
新觀念的 VB6 教本 第 6 章 資料型別.
Visual Basic 6.0 ——程序设计.
第 8 章 过程.
Visual Basic程序设计.
高等学校计算机基础教育教材 Visual Basic 6.0 程序设计 上海中医药大学现代教育技术中心 计算机教学部 1.
算法与程序设计 周少品.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
VB语言程序设计教程.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年10月18日.
Print方法和函数 2019/5/19.
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
第八章: 輸入裝置-鍵盤與滑鼠.
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
1、复选框和单选按钮 2、框架 3、列表框和组合框 4、滚动条 5、鼠标器事件 6、键盘
程序调试与错误处理.
Presentation transcript:

Visual Basic程序设计 第八章 过程 -子程序和函数

主要内容 子程序(Sub过程) 函数(Function过程) 参数传递 过程的嵌套调用和递归调用 鼠标和键盘事件

自定义子程序 t=x : x=y : y=t [Public|Private|Static] Sub <子程序名> ( [参数及其类型列表] ) <程序代码> End Sub 例如:交换两个变量内容的子程序: Public Sub Swap (x,y) dim t t=x : x=y : y=t End Sub

自定义函数 [Public|Private|Static] Function <函数名> ([参数及其类型列表] )[As <类型>] <程序代码> (内含: <函数名>=<返回值表达式>) End Function 注意:函数与子程序的区别 (1)函数必须有返回值,子程序没有。 (2)如果不指明函数的类型(即其返回值的类型), 则其类型是变体型(Variant型) (3)函数用在表达式中,子程序不能。

子程序的调用 格式: Call <子程序名>(参数列表) 或者 <子程序名> 参数列表

子程序和函数的参数 形参-形式参数,定义部分所使用的参数。 实参-实在(实际)参数,调用时传递给子程序或函数的参数。 例如:下面的x和y是形参,a和b是实参。 定义子程序 Swap: Sub Swap (x,y) Dim t t = x : x = y : y = x End Sub 调用子程序 Swap: ….. Swap a , b '交换

参数的传递方式 在子程序或函数的调用过程中,实参内容传递给相应的形参可以有两种方式:传址和传值 传址(ByRef) :将实参地址传给形参。 传值(ByVal) :将实参的值传给形参。 区别: 传址时,形参与实参是同一个内存区域,因而实参随形参的改变而改变。 传值时,形参被单独分配内存并获得实参的值,因而形参的改变并不改变实参的值。

传值和传址的区别 ↕ Swap 传值 Swap a , b '交换 Sub Swap (x,y) Dim t 543 调用子程序 Swap: ….. Swap a , b '交换 形参 x ← 实参a: Swap 传址 ↕ 形参 y ← 实参 b: 21 x: ← a: 543 543 定义子程序 Swap: Sub Swap (x,y) Dim t t = x : x = y : y = x End Sub ↕ Swap 传值 y: ← b: 21 21

实例: ‘求直角三角形的斜边 Private Sub Root(ByVal a, ByVal b, c) c = Sqr(a ^ 2 + b ^ 2) End Sub c b a ‘调用: …… Root 3 , 4, z Print z ‘打印结果 5

自定义函数的实例 ‘用函数求直角三角形的斜边 Public Function Hyp(x !, y !) As Single Hyp = Sqr(x ^ 2 + y ^ 2) End Function ‘调用: …… Print Hyp (3,4) ‘打印结果 5

变量与过程的作用域 在声明变量和过程时: 变量的作用域 过程的作用域 Static:作用? 在什么地方声明? 用什么关键字? 过程级 模块级 过程内部 过程外部(模块的通用段) 用什么关键字? Dim Static Private Public 变量的作用域 过程级 模块级 全局变量 过程的作用域 全局级 Static:作用?

变量声明 格式: 有效范围:过程→模块→全局(公用) 隐式声明和显式声明:Option Explicit 组合声明: Dim|Public|Private|Static <变量名> [as <类型>] 有效范围:过程→模块→全局(公用) 隐式声明和显式声明:Option Explicit 组合声明: 例: dim i as integer, j as single, s as string 或: dim i%, j!, s$

VB应用程序的组成 VB应用程序 .vbp 窗体模块 .frm 类模块 .cls 标准模块 .bas 函数过程 (Function) 子程序 (Sub) 事件过程 函数过程 (Function) 子程序 (Sub)

变量的作用域 过程级:在过程内部声明,使用Dim或Static关键字。只能在过程内部使用。 模块级:在模块的通用段声明,使用Dim 或Private关键字。可以在该模块的所有过程中使用。 全局:在模块的通用段声明,使用Public关键字。可以在整个应用程序中使用。如果是在窗体模块内声明,则引用时需要在变量名前面加窗体名。例如:Form1.a

变量的生存期 动态变量:声明时产生(分配内存),过程结束立即释放。用Dim声明。 静态变量:过程结束后不释放内存,其值保留。下次访问该过程时仍有效。用Static声明。

变量的作用域 作用域: 过程级 模块级 全局变量 窗体 标准模块 声明方式 Dim Static Private Public 声明在: 过程内 模块的通用声明段 本模块其他过程: 不能用 能用 其他模块: 能用,但要加窗体名.

过程的作用域 模块级:用Private关键字声明 全局级:用Public关键字声明 在标准模块内声明:可以直接调用 在窗体模块内声明:需要在过程名前面指定对象(窗体)名。 静态(Static):该过程内所有过程级变量均为静态变量。

鼠标事件 Click 单击 DblClick 双击 MouseDown 按下 MouseUp 放开 MouseMove 移动 DragDrop 拖放 DragOver 拖过 有关问题 同时发生时的先后次序 事件过程中的参数 Button 区分左右键 Shift 键盘配合 X,Y 指针位置 有关属性 有关方法 例

MouseDown和MouseUp事件 Button参数,由按下的鼠标键决定: 1-左键,2-右键,4-中键 Shift参数,由先按下的键盘键决定: 1-<Shift>键 2-<Ctrl>键 4-<Alt> 键 先按下多键时,数值相加

与鼠标有关的属性 MousePointer 指针形状 MouseIcon 自定义指针形状 当MousePointer=99时的指针形状 DragMode 0-手工,1-自动 自动:可以拖动,此时Click事件和 MouseDown事件失效 手工:需编程(用Drag方法)才能拖动

DragDrop事件 发生在目标对象,而不是被拖动对象上 参数:Source As Control,X As Single,Y As Single Source 被拖动对象 X,Y 放下时的X,Y坐标 有关属性 DragMode: 0-手工,1-自动 DragIcon:拖动时的图标 Drag方法:Drag [Action] Action:0-取消,1-开始(缺省),2结束 例

DragOver事件 在拖动越过一对象时发生 参数: Source As Control,X As Single,Y As Single X,Y 放下时的X,Y坐标 State 0-进入时,1-退出时,2-在其中 例