VB自定义函数与子过程
Visual Basic 6.0程序设计及应用_第2章_vb
![Visual Basic 6.0程序设计及应用_第2章_vb](https://img.taocdn.com/s3/m/07b75227af45b307e87197e0.png)
第2课Visual Basic语言基础本章学习目标:基本语言规则数据类型运算符与表达式语言结构子过程与函数本章要点:语言规则语言结构2.1课前导读Visual Basic语言是在BASIC语言的基础上进一步发展而来,不但保留了BASIC语言简单易用的特点,而且增加了面向对象和结构化的编程方法。
由于Visual Basic程序代码可读性强、运行速度快、数据类型丰富、语法与自然语言接近及结构严谨,从而成为众多程序员首选的编程语言。
Visual Basic是真正易学易用的结构化语言,以至于专业人员可以用Visual Basic 实现其他Windows编程语言的功能,初学者只要掌握一些关键语法就可以建立实用的应用程序。
2.2.6 运算符与表达式表达式是关键字、运算符、变量和常数的组合,其值可以是字符串、数值或者对象。
表达式可以用来执行算式、操作字符或是检测数据。
表达式书写规则:从左到右在一行上书写,无高低之分;可以用圆括号括起,以提高运算的优先级或增加表达式的清晰度。
不能使用方括号或花括号,圆括号可以出现多个,但必须配对使用。
1.算术运算符与表达式算术运算符是指用于执行实数或整数运算的操作符,主要包括+(加法)、-(减法)、*(乘法)、^(指数运算)、/(除法)、\(取模数)、Mod(取余数)。
各个算术运算符的作用见表2-3,表中MyValue的值为3。
2.字符运算符与表达式字符串运算符有两个:“&”和“+”,它们都是将两个字符串连接起来。
两者的区别是:(1)“+”:连接符两旁若一个为数字字符型或逻辑型,另一个为数值型,则自动转换为数值型,然后进行算术加运算;若一个为非数字字符型,另一个为数值型,则出错。
(2)“&”:连接符两旁的操作数不管是字符型还是数值型,则在进行连接操作前,系统先将操作数转换成字符型,然后再连接。
3.比较运算符与表达式比较运算符用来表示两个或多个值或表达式之间的关系,结果为逻辑常数。
《程序设计基础—VB程序实验》
![《程序设计基础—VB程序实验》](https://img.taocdn.com/s3/m/727f8cb3a76e58fafbb00331.png)
《程序设计基础—VB程序实验》说明:实验1和实验2均为电子实验报告,后面8个实验是纸制实验报告。
实验1 计算机基本操作实验目的⑴熟悉计算机,能够正确进行开、关机操作。
⑵熟悉键盘,掌握键盘上所有字符的输入,掌握正确的指法,能够进行中、英文切换。
⑶理解操作系统概念,掌握Windows XP的基本操作,能够利用“控制面板”进行一些参数的设置。
⑷知道“回收站”的功能,学会有关文件、文件夹的基本操作。
⑸学会在计算机上搜索或查找相关的文件或文件夹,掌握通配符的使用。
实验内容⑴熟悉上机实验的计算机,熟悉键盘,学会中、英文输入方式的转换。
⑵学会用正确的指法进行输入,知道键盘上所有字符的输入。
⑶利用“控制面板”修改系统时间、桌面背景、鼠标属性。
⑷在桌面上新建一个文件夹,该文件夹以学生自己的名字+班级+学号的后3位命名。
⑸用文本方式或Word文档,写一段字数不少于300字的自我介绍,以1.doc命名并保存到上述文件夹中。
⑹将上述文件夹复制到ftp://10.10.9.222上。
实验2 常用软件的基本操作实验目的⑴了解Word功能,掌握Word的基本操作,包括页眉/页脚的设置、分栏、页面设置、添加底纹等。
⑵学会文件的保存与打开、打印预览、段落的间隔、首字符位置改变等,能够在Word中插入图片、表格、艺术字、特殊符号等。
⑶了解Excel的功能,掌握Excel的基本操作,包括单元格属性的设置、数字的几种填充形式、单元格的合并与恢复、边框的设置等。
⑷掌握Excel的基本公式的使用,能够用公式进行基本计算。
掌握Excel中的图形制作方法,能够根据表格做出图形。
实验内容⑴将ftp上自己文件夹中的1.doc文件复制到桌面上,然后做如下处理:①将标题“自我介绍”居中;②将文章中第二段的内容进行分栏,要求中间有分割线;③插入一个4行4列的表格,内容为学号、姓名、某门课的成绩;④任意插入一张图片;⑤在文章中的任意位置加底纹。
将做好的文档以2.doc命名并保存。
VB程序设计教程 第四版 第6章
![VB程序设计教程 第四版 第6章](https://img.taocdn.com/s3/m/b6eb7d02ff00bed5b9f31d4d.png)
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 设断点演示过程
调用形式:函数过程名([参数列表])
参数列表(称为实参或实元):必须与形参个数相同,位置与 类型一一对应。可以是同类型的常量、变量、表达式。
vb最基础入门教程从零开始
![vb最基础入门教程从零开始](https://img.taocdn.com/s3/m/ea232a3dcbaedd3383c4bb4cf7ec4afe05a1b154.png)
vb最基础入门教程从零开始目录一、基础知识篇 (3)二、编程基础篇 (5)2.1 界面设计 (6)2.1.1 创建窗体 (8)2.1.2 添加控件 (8)2.1.3 设置属性 (9)2.2 事件处理 (11)2.2.1 捕获事件 (12)2.2.2 事件处理程序 (13)2.3 调试与错误处理 (14)2.3.1 调试工具 (15)2.3.2 错误类型 (17)2.3.3 错误处理语句 (18)三、进阶知识篇 (19)3.1 数组与集合 (21)3.1.1 数组的创建与使用 (21)3.1.2 集合的使用 (22)3.2 文件操作 (24)3.2.1 读取文件 (25)3.2.2 写入文件 (25)3.2.3 文件路径与名称操作 (27)3.3 数据库操作 (27)3.3.1 连接数据库 (29)3.3.2 执行SQL查询 (30)3.3.3 处理数据库结果 (31)四、实战项目篇 (32)4.1 计算器 (33)4.1.1 项目需求分析 (34)4.1.2 项目设计 (35)4.1.3 项目实现 (35)4.2 图书管理系统 (37)4.2.1 项目需求分析 (38)4.2.2 项目设计 (39)4.2.3 项目实现 (40)4.3 学生管理系统 (41)4.3.1 项目需求分析 (41)4.3.2 项目设计 (42)4.3.3 项目实现 (43)五、总结与展望 (44)5.1 课程总结 (45)5.2 学习建议 (46)5.3 VB未来发展展望 (47)一、基础知识篇在开始学习Visual Basic(VB)编程之前,我们需要了解一些基础知识,以便更好地理解VB的概念和编程技巧。
Visual Basic是一种由微软开发的事件驱动的编程语言,它使用简单的文本来创建强大的应用程序。
VB广泛应用于Windows应用程序开发,尤其是桌面应用程序。
由于其简洁的语法和丰富的功能,VB成为了初学者学习编程的理想选择。
教案(11)VB-参数传递(11)
![教案(11)VB-参数传递(11)](https://img.taocdn.com/s3/m/75d1a006ff00bed5b9f31d23.png)
个数、类型、位置、次序一一对应。
形参是值传递,对应实参可以是表达式、常量、数 组元素。 形参是地址传递,对应实参只能是简单变量。 数组、记录类型、对象只能是地址传递。
3Байду номын сангаас3
参数的传递
Visual Basic中不同模块(过程)之间数据的 传递有两种方式: • 通过过程调用实参与形参的结合实现; • 使用全局变量来实现各过程中共享数据。
9 9
按值传递和按地址传递
2.按地址传递 按地址传递即指将实参的地址传给形参,使形参 和实参具有相同的地址,即形参与实参共享同一存 储单元。当实参为变量或数组时,形参使用关键字 ByRef定义(或省略),表示要按地址传递。 当参数是数组时,数组名之后必须使用一对空的圆 括号。 按地址传递可以实现调用过程与子过程之间数据的 双向传递。
12
使用过程注意事项
1. 确定自定义的过程是子过程还是函数过程 函数过程名有值,子过程名无值。 2.过程中形参的个数和传递方式的确定 过程中参数的作用是实现过程与调用者的数据通信。 (1)从主调程序获得初值,值传递。 (2)将结果返回给主调程序,地址传递。 3. 实参与形参结合时对应问题 个数、类型、位置、次序一一对应。 形参是值传递,对应实参可以是表达式、常量、数组元素。 形参是地址传递,对应实参只能是简单变量。 数组、记录类型、对象只能是地址传递。
10
10
数据传递的几点说明
1.参数的数据类型 2.按值传递参数 形参是实参的一个副本 3.按地址传递参数 形参实参公用内存单元 4.子过程执行一系列操作,函数过程返回一个值
注意:如果实参是常量(系统常量、符号常量)或者 表达式,则无论定义时使用值传递还是地址传递, 都是按值传递将常量或者表达式的计算值传递给形 参。
第三章 VB基本语法
![第三章 VB基本语法](https://img.taocdn.com/s3/m/c7407210b52acfc789ebc99d.png)
Dim a(10) As Integer
2、多维数组
如:student.strname表示学生姓名
3.3 变量与常量 命名规则: (1)必须以字母或汉字开头,由字母、汉字、 数字或下划线组成,长度小于255个字符; (2)不能用VB中关键字; (3)不区分大小写字母; (4)最好在变量名前加可以用来表明变量数据 类型的前缀。
1、变量: 在程序运行的过程中可以变化的量。 声明方式: (1)用Dim语句 Dim 变量名 [As 类型] 注意: 若省略“As 类型”,则为变体类 型 变量名后可以加类型符来代替“As 类型” 一条Dim语句可以同时定义多个变量。
5、Select Case语句(情况语句)
Select Case 变量或表达式 Case 表达式列表1 语句块1 语句块2 · · · · · · · · · · · · · · [Case Else 语句块n+1] End Select
可以是数值 型或字符型
用逗号分隔的枚举表达式;
Байду номын сангаас
Case 表达式列表2 表达式1 To 表达式2; Is 关系运算符表达式。
所有的变量都具有数据类型,变量的数据类型 决定了如何把变量的值存储到计算机的内存中。 3.2.1 标准数据类型 3.2.2 自定义类型 定义正确数据类型的意义: 1、减少错误发生
2、节省内存
1、数值数据类型
Visual Basic 的数值型数据分为整型数和浮点数 两类。其中整型数又分为整数和长整数,浮点 数分为单精度浮点数和双精度浮点数。 (1)整型数(integer): 不带小数点和指数符号的数。
Else
<语句块2>
语句块1
vb6.0代码
![vb6.0代码](https://img.taocdn.com/s3/m/60109fe881c758f5f61f67cd.png)
Chr(asc):转换ASCII为字符 Enter:Chr(13)&Chr(10)
Filter(数组名称,关键字符串,[,包含][,比较方法]):
将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false则取不包含的元素
oin(ArrayName):将数组中元素连成字符串
date:取系统当前日期
time:取系统当前时间
now:取系统当前时间及日期值 Datetime类型
timer:取当前时间距离零点秒值,计时器,可计算时间差
DateAdd(间隔单位,间隔值,日期):推算相邻日期
DateDiff(间隔单位,日期一,日期二):计算时间差 日期二-日期一
Datepart(间隔单位,日期):计算日期的间隔单位值
3.数据类型转换函数:
Cint(str):转换正数 True -1;False 0;日期 距离1899/12/31天数;时间 上午段 0;下午段 1;
Cstr(str):日期 输出格式 yyyy/mm/dd;时间 输出格式 Am/Pm hh:mm:ss
Clng(str):与Cin()类似
Cbool(num):num不为零 True;反之 False
Cdate(str):转换日期格式 0:#Am 12:00:00#;正数 距离1899/12/31天数的日期;浮点数 日期+小数时间
Cbyte(num):num<255 转换为字节
Csng(str):转换为单精度数值
Cdbl(str):转换为双精度数值
Ccur(str):转换为现金格式
4.时间函数:
VB15
![VB15](https://img.taocdn.com/s3/m/3326e0cfda38376baf1fae4c.png)
设计方法:
&字母
下拉式菜单事件菜单项编写单击事件代码。
单击菜单项,在代码窗口输入各菜单项 功能代码
Private Sub ………… 菜单项名_Click()
End Sub
快捷菜单(弹出式菜单)
• 设计一个两层菜单 • 可设顶层菜单项为不可见
• 通过某个事件过程(一般是右击鼠标)
类型。如 Word文挡|*.DOC|文本文件|*.txt|所有文件|*.* 4. InitDir(初始化路径)属性:该属性用来指定打开对话 框中的初始目录,若不设置,系统则默认为“C:\My Documents\”。
例:设计一个简单的图片浏览程序, 可以加载显示图片,也可保存图片。
VB程序中复制文件的语句:
整个数组只能是地址传递。 3. 变量的作用域问题 Call test(a, b + 3, 5,c(4))
局部变量、全局变量特点、作用
应用程序的构成
应用程序
工程文件(.VBP) 窗体模块 (.FRM) 类模块 (.CLS) 标准模块 (.BAS)
子过程 (Sub) 函数过程 (Function)
函数过程 子过程 事件过程 (Function) (Sub) (Sub)
插入(Insert)按钮:插入菜单项
删除(Delete)按钮:删除菜单项
↓和↑按钮:
改变菜单项位置。
例:制作一个编辑器,中间是文本框,菜单 如下所示,对清除、退出、绿色、红色、 查找菜单编写程序代码。
两个框中的子菜单 分别作成控件数组
连续的、相同级别的 子菜单才可以成为控 件数组
编辑菜单步骤
•逐条输入菜单项标题、名称(控件 名,不可少),设置层次关系、相 对位置等。 •下拉菜单分隔线,标题设为“-”
VBA 中如何创建自定义函数与子过程
![VBA 中如何创建自定义函数与子过程](https://img.taocdn.com/s3/m/01a5914fbb1aa8114431b90d6c85ec3a87c28be5.png)
VBA 中如何创建自定义函数与子过程在VBA(Visual Basic for Applications)中,我们可以使用自定义函数和子过程来扩展Excel的功能和自动化任务。
自定义函数允许我们在Excel中使用自己定义的函数,并将其应用于单元格或其他VBA代码中。
子过程则是一段可以重复使用的代码块,可以在VBA程序中被多次调用。
本文将介绍如何在VBA中创建自定义函数和子过程,以及它们的用法和注意事项。
1. 创建自定义函数在VBA中,创建自定义函数使用Function关键字,并在函数名称后面跟上函数的参数列表以及返回值类型。
以下是一个简单的示例:```Function MyFunction(x As Integer, y As Integer) As IntegerMyFunction = x + yEnd Function```在这个简单的示例中,我们定义了一个名为"MyFunction"的函数,它有两个整数类型的参数x和y,并返回一个整数类型的值。
函数的主体部分包含了将x和y相加并将结果赋值给函数的名称,从而返回函数的结果。
要在Excel中使用这个自定义函数,只需在单元格中输入`=MyFunction(2, 3)`即可得到结果5。
2. 创建子过程与创建自定义函数类似,创建子过程使用Sub关键字,并在子过程名称后面跟上参数列表(如果有)和子过程的代码块。
以下是一个简单的示例:```Sub MySub(x As Integer, y As Integer)MsgBox "The sum is: " & (x + y)End Sub```在这个示例中,我们定义了一个名为"MySub"的子过程,它有两个整数类型的参数x和y。
在子过程的主体部分,我们使用MsgBox函数弹出一个消息框,显示x和y的和。
要执行这个子过程,我们可以直接调用它,例如`MySub(2, 3)`。
VB递归算法讲解
![VB递归算法讲解](https://img.taocdn.com/s3/m/1e1100cd360cba1aa811da7c.png)
递归法的归纳2:
递归算法所体现的“重复”一般有三个要求: 一是每次调用在规模上都有所缩小(通常是减半); 二是相邻两次重复之间有紧密的联系,前一次要为 后一次做准备(通常前一次的输出就作为后一次的 输入); 三是在问题的规模极小时必须用直接给出解答而不 再进行递归调用,因而每次递归调用都是有条件 的(以规模未达到直接解答的大小为条件),无条 件递归调用将会成为死循环而不能正常结束。
程序实现
• • • • • • • • • • • • • • • • • 这个问题如果不用递归法解决,其参考代码如下: Private Function Hares(ByVal intMonth As Integer) As Integer Dim i As Integer Dim intCurMon As Integer '当前月新生兔子对数 Dim intPreMon1 As Integer '前一个月新生兔子对数 Dim intPreMon2 As Integer '前两个月新生兔子对数 '前两个月分别为1对 intPreMon1 = 1 intPreMon2 = 1 '从第3月起,新生兔子为前两月之和 For i = 3 To intMonth intCurMon = intPreMon2 + intPreMon1 intPreMon1 = intPreMon2 intPreMon2 = intCurMon Next Hares = intCurMon End Function
子过程的定义
自定义函数:
•Public Function s(n As Integer) As Long • If n = 1 Then • s =1 • Else • s =s(n-1)*n • End If •End Function
vb程序设计教程课后答案 第三版
![vb程序设计教程课后答案 第三版](https://img.taocdn.com/s3/m/11f1d737905f804d2b160b4e767f5acfa1c78302.png)
vb程序设计教程课后答案第三版vb程序设计教程课后答案第三版vb程序设计教程课后答案(第三版)答案在教材上开。
1.对象指现实世界中的实体。
每个对象有自己的特征(属性)、行为(方法)和发生在该对象上的活动(事件)。
类就是对同一种对象的子集与抽象化。
类涵盖所创建对象的属性数据,以及对这些数据展开操作方式的方法。
PCB和暗藏就是类的关键特性,将数据结构和对数据的操作方式PCB在一起,类的内部同时实现细节对用户来说就是透明化的。
vb工具箱中的可视图标是vb系统设计好的标准控件类。
通过将控件类实例化,得到真正的控件对象。
在窗体上画一个控件,就将类转换为对象,创建了一个控件对象。
vb中常用的对象就是控件。
此外,vb还提供更多了系统对象。
窗体就是个特例,它既就是类也就是对象。
当向一个工程嵌入一个崭新窗体时,实质就由窗体类建立了一个窗体对象。
对象的三要素:属性、事件和方法。
属性:放置对象的数据(同意对象外观及功能)对象属性的设置方法:在设计阶段,利用属性窗口轻易设置属性值;程序运行时,通过语句[对象名.]属性名=属性值。
若属性就可以在设计阶段设置,在程序运行阶段不容发生改变,称作所读属性。
事件:出现在对象上的事情。
同一事件,对相同的对象,可以引起相同的反应。
事件过程:应用程序处理事件的步骤。
应用领域程序设计的主要工作就是为对象撰写事件过程的代码。
方法:面向对象的程序设计语言,为程序设计人员提供了一种特殊的过程和函数。
方法是面向对象的,调用时一定要指明对象。
2.窗体和控件具备的基本属性“(1)name属性:名称所建立的对象名称,在程序中提及。
(2)caption属性:标题该属性同意了对象上表明的内容。
(3)height、width、top和left属性同意对象的大小和边线。
(4)enabled属性:对象是否允许操作(5)visible属性:对象与否可知(6)font属性组:文本的外观fontname字体、fontsize大小fontbold粗体、fontitalic斜体fontstrikethru删掉线fontunderline下划线(7)forecolor属性:前景颜色(8)backcolor属性:背景颜色(9)mousepointer属性:鼠标指针类型,设置值范围0~15,由系统选定。
vb编程代码大全
![vb编程代码大全](https://img.taocdn.com/s3/m/9a0df443a216147917112880.png)
vb编程代码大全1、数值型函数:abs(num): 返回绝对值sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回十六进制值直接表示:&Hxx 最大8位oct(num): 返回八进制值直接表示:&Oxx 最大8位sqr(num): 返回平方根num>0int(num): 取整int(99、8)=99; int(-99、2)=100fix(num): 取整fix(99、8)=99; fix(-99、2)=99round(num,n): 四舍五入取小数位round(3、14159,3)=3、142 中点数值四舍五入为近偶取整round(3、25,1)=3、2log(num): 取以e为底的对数num>0exp(n): 取e的n次幂通常用num^nsin(num): 三角函数,以弧度为值计算(角度*Pai)/180=弧度con(num); tan(num); atn(num)2、字符串函数:len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen):从左边起截取nlen长度子字符串right(str,nlen):从右边起截取nlen长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成大写trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测就是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测就是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选3、数据类型转换函数:Cint(str):转换正数True -1;False 0;日期距离1899/12/31天数;时间上午段0;下午段1; Cstr(str):日期输出格式yyyy/mm/dd;时间输出格式Am/Pm hh:mm:ssClng(str):与Cin()类似Cbool(num):num不为零True;反之FalseCdate(str):转换日期格式0:#Am 12:00:00#;正数距离1899/12/31天数的日期;浮点数日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为单精度数值Cdbl(str):转换为双精度数值Ccur(str):转换为现金格式4、时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值Datetime类型timer:取当前时间距离零点秒值,计时器,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)Datevalue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5、其它函数:Array(unit,、、):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false则取不包含的元素oin(ArrayName):将数组中元素连成字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0Randmize n:启动随机数种子Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A与B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序与自定义函数Sub StrSubName Function StrFunName(arg[1],、、)子程序体函数体Exit Sub 中途跳出Exit Function 中途跳出End Sub StrFunName=value 返回值End Function[call] StrSubName 引用子程序Var=StrFunName(arg[1],、、) 引用函数。
vb编程代码大全
![vb编程代码大全](https://img.taocdn.com/s3/m/0c13f2d5ddccda38376bafe3.png)
vb 编程代码大全1.数值:abs(num): 返回sgn(num): num>0 1; num=0 0; num<0 -1; 判断数值正负hex(num): 返回值直接表示:&Hxx 最大8 位oct(num): 返回值直接表示:&Oxx 最大8 位sqr(num): 返回num>0int(num): 取整int=99; int=100fix(num): 取整fix=99; fix=99round(num,n): 四舍五入取小数位round,3)= 中点数值四舍五入为近偶取整round,1)=log(num): 取以e 为底的num>0exp(n):取e的n次幕通常用num A nsin(num):,以为值计算(角度*Pai)/180=弧度con(num); tan(num); atn(num) len(str) :计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen) :从左边起截取nlen 长度子字符串right(str,nlen) :从右边起截取nlen 长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成trim(str) :去除字符串两端空格Ltrim(str) :去除字符串左侧空格Rtrim(str) :去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符1;替代次数不限;比较方法区分大小写( 0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符可选参数需同时选转换函数:Cint(str) :转换正数True -1;False 0;日期距离1899/12/31 天数;时间上午段0;下午段1;Cstr(str):日期yyyy/mm/dd ;时间输出格式Am/Pm hh:mm:ssClng(str):与Cin()类似Cbool(num): num 不为零True;反之FalseCdate(str):转换日期格式0: #Am 12:00:00# ;正数距离1899/12/31天数的日期;日期+小数时间Cbyte(num) : num<255 转换为字节Csng(str):转换为数值Cdbl(str):转换为数值Ccur(str):转换为现金格式4.时间函数:date :取系统当前日期time :取系统当前时间now:取系统当前时间及日期值Datetime类型timer :取当前时间距离零点秒值,,可计算时间差DateAdd(间隔单位侗隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date) :输出日期值(按序列计算)Timeserial(time) :输出时间值(按序列计算)Datevalue(datetime) :取出字符串中日期值Timevalue(datetime) :取出字符串中时间值weekday(date) :计算星期几MonthName(date) :输出月分名year(datetime) :截取年份month(datetime) :截取月份day(datetime) :截取日hour(datetime) :截取小时minute(datetime) :截取分钟second(datetime) :截取秒5.其它函数:Array(unit,..) :动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认)[包含]为false 则取不包含的oin(ArrayName):将数组中元素字符串Ubound(ArrayName[, 维数]):取得数组相应维数的上界Lbound(ArrayName[, 维数]):取得数组相应维数的下界一般为0Ran dmize n:启动Rnd(n):取得,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A)条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出Exit Function 中途跳出End Sub StrFunName= value 返回值End Function引用函数[call] StrSubName 引用子程序Var=StrFunName(arg[1],..)。
VB编程常用代码大全(精品)
![VB编程常用代码大全(精品)](https://img.taocdn.com/s3/m/21e9008c3b3567ec112d8a71.png)
VB编程常用代码大全VB编程常用代码大全1.数值型函数:abs(num):返回绝对值sgn(num): num>01; num=0 0; num<0 -1;判断数值正负hex(num):返回十六进制值直接表示:&Hxx 最大8位oct(num): 返回八进制值直接表示:&Oxx 最大8位sqr(num): 返回平方根num>0int(num): 取整 int(99.8)=99; int(-99.2)=100 fix(num): 取整fix(99.8)=99; fix(-99.2)=99 round(num,n):四舍五入取小数位round(3.14159,3)=3.142中点数值四舍五入为近偶取整 round(3.25,1)=3.2log(num): 取以e为底的对数 num>0exp(n): 取e的n次幂通常用 num^nsin(num): 三角函数,以弧度为值计算 (角度*Pai)/180=弧度 con(num); tan(num); atn(num)2.字符串函数:len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen):从左边起截取nlen长度子字符串right(str,nlen):从右边起截取nlen长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成大写trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符 1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选3.数据类型转换函数:Cint(str):转换正数 True -1;False 0;日期距离1899/12/31天数;时间上午段0;下午段 1;Cstr(str):日期输出格式yyyy/mm/dd;时间输出格式 Am/Pm hh:mm:ssClng(str):与Cin()类似Cbool(num):num不为零 True;反之 FalseCdate(str):转换日期格式0:#Am 12:00:00#;正数距离1899/12/31天数的日期;浮点数日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为单精度数值Cdbl(str):转换为双精度数值Ccur(str):转换为现金格式4.时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值Datetime类型timer:取当前时间距离零点秒值,计时器,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)Datevalue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5.其它函数:Array(unit,..):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符 Enter:Chr(13)&Chr(10) Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false则取不包含的元素oin(ArrayName):将数组中元素连成字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0Randmize n:启动随机数种子Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出 Exit Function 中途跳出End Sub StrFunName=value 返回值End Function[call] StrSubName 引用子程序Var=StrFunName(arg[1],..) 引用函数...内容来自网络 ...。
VB知识点总结
![VB知识点总结](https://img.taocdn.com/s3/m/0e84e321453610661ed9f4b3.png)
第1章Visual basic概述一、VB是在Windows平台下,用于开发和创建具有图形用户界面的应用程序的工具。
二、VB是面向对象的程序设计语言;工作方式为事件驱动/消息驱动。
1.对象对象是动作体的逻辑模型,是人们可控制的某种东西,应用程序的每个窗体和窗体上的种种控件都是VB的对象2.属性属性指对象的特性。
3.方法方法指对象可以进行的动作或行为。
4.事件事件是指能被对象所识别的动作。
5.事件驱动只有在事件发生时程序才会运行。
6.工程工程是应用程序文件的集合,一个工程一般会包含下列文件,如表1—l所示。
表1—1 应用程序文件类型第2章创建用户界面1.用户界面用户界面是应用程序中最重要的部分,是程序与用户进行交互的桥梁,标准的Windows 应用程序界面都是由窗口、菜单条、各种按钮、文本框、列表框等对象构成的。
2.窗体窗体是包容用户界面或对话框所需的各种控件对象的容器。
在创建一个新的工程时,默认的第一个窗体即为启动窗体。
3.控件控件是与用户进行交互的可视化部件,向窗体上添加控件应在窗体编辑器中进行。
4.命令菜单命令菜单是应用程序窗口的基本组成元素之一,它由菜单条、菜单、菜单项、子菜单、弹出式菜单组成,可以通过VB提供的菜单编辑器创建程序菜单。
(1)连字符(—)(2)&书P325.设计用户界面的步骤(1)确定窗体的大小和位置。
(2)根据程序的功能和要求,添加所需的控件。
(3)合理地分布控件的位置与大小。
(4)设置各个对象的属性。
6.窗体及常用控件的常用属性、事件、方法熟悉各对象的常用属性、事件和方法,对于创建应用程序有着举足轻重的作用,表2—1给出了窗体及常用控件的常用属性、事件以及方法使用说明。
注:加*号的属性为只能通过代码设置的属性(即在属性窗口中没有显示7、Print 方法第3章语言基础3.1知识点概括一个应用程序就是一个工程,在一个工程中可以包含若干个文件,应用程序的基本组成如图3—1所示。
第四讲:函数与过程
![第四讲:函数与过程](https://img.taocdn.com/s3/m/923aa455be23482fb4da4cf4.png)
窗体/模块级变量
窗体 / 模块级变量:在 “ 通用声明 ” 段 中用 Dim 语句或用 Private 语句声明的变量, 可被本窗体 /模块的任何过程访问。但其他模 块却不能访问该变量。 例如:在“通用声明”段声明如下变量: Private s As String Dim a As Integer Private Sub From_Click() Print “n=“;n End Sub 例: Dim n% Private Sub Form_Load() n= 10 End Sub
Sub Swap2(x%, y%) Dim Temp% Temp = x: x = y: y = Temp End Sub
过程之间参数的传递
Sub Swap1(ByVal x%, ByVal y%)
Dim Temp% Temp = x: x = y: y = Temp Sub Swap2(x%, y%) Dim Temp% Temp = x: x = y: y = Temp End Sub
例4.7 对一个数组求其最大值的位置; 使用选择排序法对数组进行排序。用过程 实现。
代码
Private Function pmax(a() As Integer, start As Integer) Dim p As Integer, i As Integer p = start For i = start + 1 To UBound(a) If a(i) > a(p) Then p = i Next i pmax = p End Function Private Sub sort(a() As Integer) Dim i As Integer, p As Integer, temp As Integer For i = LBound(a) To UBound(a) - 1 p = pmax(a, i) If i <> p Then temp = a(i): a(i) = a(p): a(p) = temp End If Next i End Sub
fyg VB过程与自定义函数 pptx
![fyg VB过程与自定义函数 pptx](https://img.taocdn.com/s3/m/4c12f252a26925c52cc5bfd9.png)
第14课 第(3)题 P87
14
of
22
14
解析 : 1 )解析法是通过分析找出表示问题的前提条件与结果之间 关系的数学表达式,并通过表达式的计算来实现问题求解的方法。 本题中主要是通过分析根据已知条件,找出求解模 y 的数学表达式, 再根据已知条件C中对应表找出对应的校验码,所以是解析算法。 2 )①处是函数的调用点,是要调用判断身份证号码是否正确的程 序段自定义函数,变量用jieq函数名是jy(参数),此处的参数是 第14课 正要检测的第 i 个身份证号码,即数组 sfz 的第 i 个元素,故此处填 第(3)题 P87 jy(sfz(i))。 ②处的循环是逐个提取身份证号码中的数字并乘以加权因子,因为 加权因子存放在jq数组中,故此处填jq(i)。 ③y是取模的结果,其值必定位于区间[0,10],校验码位于字符 串变量jym中,若y=0,刚好对应于jym中第1个位置的1,因此取jym 的子串时,位置要加1,故此处填Mid(jym, y + 1, 1)。
第14课 第(3)题 P87
13
of
22
13
Function jy(sfz1 As String) As String ′ 对身份证的校验码进行校验 Dim s As Integer, y As Integer, r As Integer Dim djym As String jym = "10X98765432" For i = 1 To 17 r = Val(Mid(sfz1, i, 1)) * ② jq(i) s=s+r Next i y = s Mod 11 djym = ③ Mid(jym,y + 1,1) If djym = Mid(sfz1, 18, 1) Then jy = "正确!" Else jy = "错误!" End If End Function
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.2 自定义函数过程
8.2.2 函数过程的定义
函数过程在被调用前,一定要先定义,函数定义的方式一般 有两种: 1.利用“添加过程”对话框定义
打开窗体或模块的代码窗口,单击“工具”菜单,选 择“添加过程”命令,即可打开“添加过程”对话框。
8.2 自定义函数过程
在“添加过程”对话框中输入并选择相应的内容和 项目即可。在“名称”文本框内输入待定义函数过程的名称, 在“类型”选项组中选择“函数”单选按钮。
Print "Va="; Va, "Vb="; Vb
'输出原始值
Call Cp(Va, Vb)
Print "在主调过程中调用子过程后的值"
'输出经子
过程处理过后的返回值
Print "Va="; Va, "Vb="; Vb
End Sub
运行结果:
程序运行后,单击窗体以触发Form_Click()事件过 程,运行结果如下图所示。
For K = 3 To N / 2
'第一个数的取值区间折半
If prime(K) And prime(N - K) Then ‘二次调用结果都是
素数输出
Print I; ":"; N; "="; K; "+"; N - K
Exit For
'退出k循环
End If
Next K
I=I+1
Next N
End Sub
⑤④
3)x和y获得初值后,即可执行函数过程中的程序 ①
代码并给函数过程名赋值,该值即为整个函数过程
②
的返回值;
③
4)函数执行结束后,函数的返回值将赋给主调事 件过程的变量s;
⑤④
5)变量s得到赋值后,接着执行调用函数过程后面
的剩余语句。
8.3 子过程的定义和调用
引例 调用函数后,将得到函数的返回值,但是,在有些问
例8.2 设计一个程序统计字符串中西文字符个数。
算法:汉字的Asc()函数的返回值小于0;西文字符的Asc()函数
的返回值大于0。
Function CountXw%(ByVal S$)
Dim I%, T%, K%, C$
For I = 1 To Len(S)
C = Mid(S, I, 1)
'逐个地取出字符
说明
3)[(<形参列表>)]:该项中的参数为形式参数,又称哑元, 可以是变量名或数组名,当参数为数组名时,形参和实参在 参数声明时应省略其维数,但括号()不能省略。当参数有多 项时,参数间要用逗号分隔开。使用格式为[ByVal|ByRef]< 变量名>[As<数据类型>] 4)ByVal:表示调用时参数为值传递方式,实参的值不随形 参值的变化而变化;
第八章 自定义函数与子过程
几个概念
一、VB程序的基本构成是过程。 二、VB6.0中过程有两大类:内部过程和外部过程。 1、内部过程:系统提供的,不需要用户编写,如内部函数。 2、外部过程:用户根据需要定义的,供调用的程序段,外部 过程分为子过程、函数过程。
几个概念
三、在VB中使用过程编程有两个优点: 1、过程可使程序划分成离散的逻辑单元,每个单元都比没有 使用过程的整个程序容易调试。 2、一个程序中的过程,往往不必修改或只需稍作改动,便可 以成为另一个程序的构件。 四、Visual Basic 的两类过程: 1、Sub 过程(子过程),不返回值或多个返回值。 2、Function 过程(函数过程),有一个返回值。
例如: Private Sub Command1_Click()
a=”Visual Basic” b= “6.0” Call Link(a,b) End Sub
此时,将输入的值a和b作为实参调用Link子过程, 通过调用将两个实参传递给形参,然后在过程中计算。
6.2 子过程的定义和调用
例:分别计算两个数的和与差,而当两个数的值均 为0时则不进行任何计算。
Sub Operation(x As Integer , y As Integer) Dim t1 as Integer, t2 as Integer If x =0 and y=0 Then Exit Sub End If t1=x+y t2=x-y Print “t1=”;t1; “t2=”;t2
‘ 调用CountXw函数
Picture1.Print Text1 ' 在Picture1中显示统计的结果
Picture1.Print "有"; C1; "个西文字符数"
End Sub
8.2 自定义函数过程
8.2.3 函数过程的调用
1.函数调用的形式 其调用形式如下:
变量=函数过程名(实参列表)
其中,实参列表中的实参是传递给被调用过程的变量或表达式。 例题8.2中的C1 = CountXw(Text1.Text) 就是一次函数调用。
从程序中可以看到,Va和Vb的初值分别是45和23, 而在窗体中输出时Va和Vb的值分别是23和45,达到了两个数 交换的目的。
8.3 子过程的定义和调用
8.3.1 子过程的定义
子过程以过程名来标识,被其它过程调用。子过程与 事件过程有一定区别,事件过程可以在该事件触发或调用时 执行,而用户自定义的子过程只有在被其它过程调用时才能 执行。
[<语句块1>] [函数名=<表达式>] [Exit Function] [<语句块2>] [函数名=<表达式>] End Function
说明
1)[Public或Private]:表示函数是“公有的”或“私有的”。 Public表示该函数为公有过程,定义后整个程序范围内均可调 用该函数,但调用时必须加上该函数所在的窗体或标准模块作 为前辍,而Private表示私有子过程,用它定义的函数只能在本 窗体或模块中被调用。缺省默认是公有的。 2)[Static]:表示函数中的局部变量是静态变量,在函数被调 用后,其值仍然被保留;
题的中,过程执行结束后不需要返回值,用函数过程实现就会 非常困难,而应该使用子过程的形式。
例8.3 试编写一个将两个数进行交换的过程供其它过 程多次调用。
分析:先编写一个具有将两个数进行交换的子过程,需 要进行两数交换时,调用该子过程,同时将待交换的两个数传 送到该子过程中,在子过程实现两数交换。子过程执行结束后, 将被交换后的两个数返回到主调过程中。
If Asc(C) > 0 Then K = K + 1 '字符ASCII码大于
0,则个数累加1
Next I
CountXw = K '返回函数值
End Function
例8.2 设计一个程序统计字符串中西文字符个数。
Private Sub Command1_Click()
Dim C1%
C1 = CountXw(Text1.Text)
'函数取值False,则x不是素数
Exit Function
'函数结束
End If
Next I
End Function
8.2 自定义函数过程
‘在事件过程中调用以上定义的函数,得到结果。
Private Sub Form_Click()
Dim I%, N, K%
I=1
'计数
For N = 50 To 100 Step 2 '取偶数
个过程时的流程如下图所示。
Function Hypotenuse( x%,y%)
Hypotenuse = Sqr (x ^ 2 + y ^ 2) ①
②
End Function
Private Sub Command1_Click()
③
…… s = Hypotenuse(a,b)
⑤④
……
End Sub
函数过程调用的执行流程图
子过程的定义跟函数过程的定义相类似,在代码窗口 中输入Sub及子过程名即可,系统会自动加上End Sub与子过 程名后的一对括号(),然后即可在子过程的框架中输入程 序代码。
子过程的定义格式: [Private|Public][Static] Sub <过程名>[(<参数列表>)]
[<语句块1>] [Exit Sub] [<语句块2>] End Sub ——————————— 说明: [Public]|[Private]与[Static]:它们的含义和作用与函数 过程中相应的这些关键词相同。 [(<参数列表>)]:该项中参数的形式和调用方法也与函数过 程相同。 [Exit Sub]:退出过程,该项一般嵌套在if结构中使用,在 满足if条件时退出该过程。
说明
5)ByRef:参数默认选项,表示参数为地址传递方式,实参 的值随形参值的改变而改变,数组只能以传地址的方式引用;
6) As <类型>表示函数返回值的类型,默认为变体型。在 函数体内至少应对对函数名赋值一次。
7) [函数名=<表达式>],用于函数运行后返回一个值。如 在定义中未对函数名赋值,则将返回一个默认值。其中,数 值型为0,字符型为“”,变量型为Empty。 8) [Exit Function]用于退出函数过程,该项一般嵌套在 if结构中使用,在满足if条件时退出该函数过程。
End Subຫໍສະໝຸດ 6.2 子过程的定义和调用
在Sub 过程与Function 过程之间的区别:
1)子过程名无类型说明,在子过程中不能对子过程
名进行赋值。
2) 子过程的形式参数没有具体的值,只代表