第五章常用内部函数教学目的及要求:使学生掌握函数的概念,函数的调用格式,VB中的常用内部函数。
重点与难点:1、学会调用内部函数进行各种运算。
2、掌握调用各种函数时需要的参数、函数的参数类型和函数返回值类型,这也是本章的难点。
主要外语词汇:ANSI 、function randomize、 format授课内容:1、函数的分类:(1)内部函数(2)外部函数(用户自定义函数、函数过程)2、VB常用的内部函数有:数学函数、字符串函数、转换函数、日期与时间函数、其他函数。
3、函数的一般调用格式为:函数名([参数表])注:参数的类型和个数。
若参数类型或个数不匹配,则提示出错信息。
4、方法与函数的区别:(1)方法可以单独作为语句使用,函数不可以。
(2)方法没有返回值,函数有返回值。
(3)方法的格式:[对象名.]方法 [参数列表]函数的格式:①变量名=函数名([参数列表])②[对象名.]属性=函数名([参数列表])5、一般将函数值进行输出或赋值给某个变量。
第一节常用函数一、数学函数:1、利用Log(N)/Log(10)得到Lg(N)的值。
2、注意函数Int(N)、Fix(N)、Cint(N)和Round(N)之间的区别。
例1:05_1.vbp二、字符串函数:1、常用的字符串函数:(1)Len(S):测试字符串S的字符个数,中西文字符均算1个字符。
(2)LenB(S):测试字符串S的字节数,中西文字符均占2个字节。
LenB(S)=2*Len(S)(3)Ucase(S):将字符串S中的小写字母改为大写字母。
(4)Lcase(S):将字符串S中的大写字母改为小写字母。
(5)String(N,S):重复输出N个S单个字符例:Print String(5,“a”)Print String(5,“abcd”) 结果相同2、在字符串函数名后面可以加“$”符号。
例:Print String(5,“*”)Print String$(5,“*”) 等价3、字符串的编码方案:(1)ANSI方式:美国国家标准协会制定,西文字符占用1个字节,汉字占用2个字节。
(2)UniCode方式:国际标准化组织ISO制定,西文字符和汉字统一进行编码,占用2个字节。
VB6.0内部采用UniCode编码形式来存储字符串。
4、字符处理函数:针对字符数,中西文字符均算1个字符。
字符处理函数+B:针对字节数,中西文字符均占2个字节。
5、StrConv函数:格式:StrConv( S,指定格式 )(1)S:要转换的字符串表达式。
(2)指定格式:① vbUnicode(64):ANSI格式 -> UniCode格式② vbFromUnicode(128):UniCode格式 -> ANSI格式③ vbUpperCase(1):将字符串S文字转换成大写④ vbLowerCase(2):将字符串S文字转换成小写⑤ vbProperCase(3):将字符串S每个字的开头字符转换成大写总结:1、小写 -> 大写2、大写 -> 小写(1)UCase(S) (1)LCase(S)(2)StrConv(S,vbUpperCase) (2)StrConv(S,vbLowerCase)例:Private Sub Command1_Click( )Dim x As String ,y As Stringx = Text1.Texty = UCase(x) ‘ y = StrConv(x,vbUpperCase)Text2.Text = yEnd Sub三、转换函数:1、Asc(S):给出字符串S的首字符的ASCII码值。
2、Chr(N):给出ASCII码值是N的字符。
N:0-127例:Chr(13):回车 Chr(10):自动换行3、Str(N):将数值N转换为字符型。
4、Val(S):将数字字符串S转换为数值型。
在S中只要遇到第一个非数字字符就视为结束。
VB中的数字和只包含数字的字符串可以方便地互换类型,例:(1)隐式转换:Private Sub Command1_Click( )Dim x As Integer,y As String x必须定义类型y = “100.23”:x = y‘隐式转换Print xEnd Sub(2)显式转换字符型 -> 数值型:利用Val函数:Private Sub Command1_Click( )Dim x As Integer x可以不用定义类型Text1.text = “100.23”x = Val(Text1.text)‘显式转换Print xEnd Sub(3)显式转换数值型 -> 字符型:利用Str函数:Private Sub Command1_Click( )Dim x As Integer,y as String y可以不用定义类型x = 100.23y = Str(x)‘显式转换End Sub注:显式转换时可以事先不用定义数据类型,但隐式转换时一般需要事先定义数据类型。
例:Text3.Text=CDate(Text1)-CDate(Text2) 正确Text3.Text=Text1-Text2 错误一般可以隐式转换的函数有:Str、Val、CCur、CDbl、CLong、CSng、CDate等。
四、日期和时间函数:1、常用日期和时间函数:函数Now()、Time()、Date()可以省略(),写成Now、Time、Date。
2、DateDiff( ):格式:Da teDiff(“日期单位”,日期1,日期2)返回两个指定日期间的时间间隔数目。
例:DateDiff(“d”, #1-1-2001#, #2002-1-1#)第二节其他函数一、随机函数Rnd和Randomize:1、Rnd函数:格式:Rnd[(N)],N称为“种子”(基数),一般省略可选项N。
作用:可以产生[0,1)的双精度(Double)随机数。
参数N:(1)N<0:产生相同的随机数,该随机数与N有关,不可取。
(2)N>0:产生不同的随机数,该随机数与N无关。
默认值,即取任意一个>0的值作为“种子”与不取可选项是一样的。
都是把上一个随机数作为下一个随机数的“种子”,可产生不同的随机数。
尽管所产生的每个随机数不同,但每次运行所产生的随机数都是一样的。
(3)N=0:产生相同的随机数,该随机数与N无关,与最近生成的随机数相同,不可取。
常用形式:Rnd该函数的缺点:“种子”固定,缺少随机性。
2、若要产生[n,m]之间的整数,可以用公式:Int(Rnd*(m-n+1))+n 或 Int(Rnd*(m-n+1)+n)若要产生[1,m]之间的整数,可以用公式:Int(Rnd*m)+1 或 Int(Rnd*m+1)3、Randomize函数:格式:Randomize[(N)],一般省略可选项N。
作用:生成一个随机的“种子”,初始化随机数生成器。
常用形式:Randomize该语句要用在Rnd函数之前。
例1:05_2.vbp二、Shell函数:格式:Shell(“命令文件名”[,窗体模式])作用:执行一个可执行文件(.COM. EXE. BAT)。
1、命令文件名:必要参数,绝对路径,要执行的程序名。
2、窗体模式:可选参数,表示程序运行时窗口的样式。
值常量说明0 vbHide 窗口被隐藏,且焦点会移动到隐式窗口1 vbNormalFocus 窗口具有焦点,且会还原到原来大小和位置2 vbMinimizedFocus 窗口会以一个具有焦点的最小化图标来显示,默认值3 vbMaximizedFocus 窗口是一个具有焦点的最大化窗口4 vbNormalNoFocus 窗口会被还原到最近所使用的大小和位置,而当前活动的窗口仍然保持活动6 vbMinimizedNoFocus 窗口最小化为图标,而当前活动的窗口仍然保持活动3、函数的返回值:任务ID号(成功)或0(不成功)任务ID号是一个唯一的数值,用来指明正在运行的程序。
一般不关心返回值。
附:Shell语句:格式:Shell “命令文件名”[,窗体模式]参数同上不用写小括号,没有返回值,可以单独作为一个语句来使用。
三、格式输出函数Format:格式:Format(表达式[,“格式字符串”])若不选可选项,则按原来表达式的值不作任何修饰输出。
例:Dim a As Singlea=0.5Print aPrint Format(a) 等价Print Format(a,“0.00”)1、数值格式符:表5-6若实际数值的整数部分的位数多于格式化字符串规定的位数,则按实际输出,小数部分按四舍五入保留到格式化字符串规定的位数。
2、日期和时间格式符:表5-73、字符串格式符:表5-8若实际字符串所包含的字符个数多于格式化字符串规定的个数,则按实际输出。
总结:1、小写 -> 大写2、大写 -> 小写(1)UCase(S) (1)LCase(S)(2)Format(S,“>”) (2)Format(S,“<”)例:Private Sub Command1_Click( )Dim x As String ,y As Stringx = Text1.Texty = UCase(x) ‘ y = Format(x,“>”)Text2.Text = yEnd Sub四、数据类型测试函数VarType:系统提供的默认初始值:(1)数值型:0 (2)货币型:0 (3)字符型:空字符串(4)逻辑型:False (5)日期型:0:00:00(6)可变型:Empty (7)对象型:Nothing1、Empty:表示未指定的数据。
2、Null:表示数据不合法。
3、Error:指出过程中出现了一个错误。
4、Nothing:表示数据还没有指向一个具体对象。
格式:VarType(变量名)返回一个Integer,指出变量的类型。
VB常数 VarType返回值数据类型vbEmpty 0 空(Empty)vbNull 1 无效(Null)vbInteger 2 整型(Integer)vbLong 3 长整型(Long)vbSingle 4 单精度(Single)vbDouble 5 双精度(Double)vbCurrency 6 货币型(Currency)vbDate 7 日期型(Date)vbString 8 字符型(String)vbError 10 出错(Error)vbBoolean 11 逻辑型(Boolean)vbVariant 12 可变类型(Variant)vbByte 17 字节型(Byte)例:Private Sub Form_Click( )Dim x,y,zy=133z=“aaaa”Print VarType(x),VarType(y),VarType(z)End Sub辅助教学情况:多媒体课件、Visual Basic 6.0复习思考题、作业题思考当窗体的名称改为form1时,该窗体的对象名是什么。