4.4.2 On-GoTo语句
格式:On 数值表达式 Goto 语句标号|行号
缺点:BS现象
*4.5 闲置循环与DoEvents
*4.6 程序的调试与错误处理(自学)
4.6.1 错误类型
4.6.2 程序调试工具
4.6.3 三种程序模式
4.6.4 使用调试窗口
第五章 常用内部函数
教学目的及要求:
使学生掌握函数的概念,函数的调用格式,VB中的常用内部函数。
重点与难点:
1. 学会调用内部函数进行各种运算。 2. 掌握调用各种函数时需要的参数、函数的参数类型和函数返回值类型,这也是本章的难点。
主要外语词汇:
ANSI 、function randomize、 format
授课内容:
1. 函数的分类:
(1)内部函数(2)外部函数(用户自定义函数、函数过程)
2. VB常用的内部函数有:数学函数、字符串函数、转换函数、日期与时间函数、其他函数。
3. 函数的一般调用格式为:函数名([参数表]) 注:参数的类型和个数。
若参数类型或个数不匹配,则提示出错信息。 4. 方法与函数的区别:
(1)方法可以单独作为语句使用,函数不可以。 (2)方法没有返回值,函数有返回值。
(3)方法的格式:[对象名.]方法 [参数列表]
函数的格式:①变量名=函数名([参数列表])
②[对象名.]属性=函数名([参数列表])
5. 一般将函数值进行输出或赋值给某个变量。
5.1 常用函数
5.1.1 数学函数
1. Sgn(n),符号函数,n=0返回值为0;n>0返回值为1;n<0返回值为-1 2. Sqr(n),平方根函数,n>=0 3. Exp(x),以e为底的指数函数
4. Log(x),以e为底的对数函数,试求以10为底的对数,表示a为正确的VB表达式
5. Int(x),返回不大于x的最大整数,Fix(x)去掉小数函数,CInt(x)四舍五入函数,Round(x)同CInt(x)。
例5-1:查询某年的元旦是星期几 例5-2:求方程ax?bx?c?0的解。
2x5.1.2 字符串函数
1. 常用字符串函数
(1) 过滤空格函数:LTrim(S)、RTrim(S)、Trim(S)
(2) 取子串函数:Left(S,N)、Right(S,N)、Mid(S,N1[,N2])
(3) 查找子串函数:InStr([N1,]S1,S2),在S1中从第N1个字符开始查找S2,若找到,
返回S2第一个字符在S1中的位置,找不到则返回0。省略N1,则从头查找。
(4) 测试字符串长度函数:
1) Len(S):测试字符串S的字符个数,中西文字符均算1个字符。 2) LenB(S):测试字符串S的字节数,中西文字符均占2个字节。 LenB(S)=2*Len(S) (5) 大小写字母转换函数
1) Ucase(S):将字符串S中的小写字母改为大写字母。 2) Lcase(S):将字符串S中的大写字母改为小写字母。 (6) 反序输出函数:StrReverse(S) (7) 字符串生成函数:
1) Space(S):生成N个空格的字符串 2) String(N,S):生成N个S单个字符
例:Print String(5,“a”)
Print String(5,“abcd”) 结果相同 在字符串函数名后面可以加“$”符号。 例:Print String(5,“*”)
Print String$(5,“*”) 等价 2. 字符串的编码方案: (1) ANSI方式:
美国国家标准协会制定,西文字符占用1个字节,汉字占用2个字节。 (2) UniCode方式:
国际标准化组织ISO制定,西文字符和汉字统一进行编码,占用2个字节。 VB6.0内部采用UniCode编码形式来存储字符串。
(3) 字符处理函数:针对字符数,中西文字符均算1个字符。 (4) 字符处理函数+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每个字的开头字符转换成大写
例5-3:反向输出字符串
5.1.3 转换函数
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 x
End Sub
(2) 显式转换字符型 -> 数值型:利用Val函数: Private Sub Command1_Click( )
Dim x As Integer ?x可以不用定义类型 Text1.text = “100.23”
x = Val(Text1.text) ‘显式转换 Print x
End Sub
(3) 显式转换数值型 -> 字符型:利用Str函数:
Private Sub Command1_Click( )
Dim x As Integer,y as String ?y可以不用定义类型 x = 100.23
y = Str(x) ‘显式转换
End Sub 注:显式转换时可以事先不用定义数据类型,但隐式转换时一般需要事先定义数据类型。 例:Text3.Text=CDate(Text1)-CDate(Text2) 正确 Text3.Text=Text1-Text2 错误 一般可以隐式转换的函数有:Str、Val、CCur、CDbl、CLng、CSng、CDate等。 数制转换的函数有Hex(N)、Oct(N)。 例5-4:字符的编码/解码 例5-5:数制的转换
5.1.4 日期和时间函数
1. 常用日期和时间函数:
(1) Day()、Month()、Year()、WeekDay(),参数可以日期型,也可为日期格式的字符型。 (2) 函数Now()、Time()、Date()可以省略(),写成Now、Time、Date。
(3) MonthName()、WeekDayName(),其中参数月份的取值为1-12,星期的取值为1-7 2. DateDiff( ):
格式:DateDiff(“日期单位”,日期1,日期2)
返回两个指定日期间的时间间隔数目。日期单位见表5-5 例:DateDiff(“d”, #1-1-2001#, #2002-1-1#)
5.2 其他函数
5.2.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函数之前。 例5-6:英文打字测试程序
5.2.2 Shell函数
格式:Shell(“命令文件名”[,窗体模式])
作用:执行一个可执行文件(.COM .EXE .BAT)。 (1) 命令文件名:必要参数,绝对路径,要执行的程序名。 (2) 窗体模式:可选参数,表示程序运行时窗口的样式。
值 常量 说明
0 vbHide 窗口被隐藏,且焦点会移动到隐式窗口
1 vbNormalFocus 窗口具有焦点,且会还原到原来大小和位置 2 vbMinimizedFocus 窗口会以一个具有焦点的最小化图标来显示,默认值 3 vbMaximizedFocus 窗口是一个具有焦点的最大化窗口
4 vbNormalNoFocus 窗口会被还原到最近所使用的大小和位置,而当前活动的窗口仍然保持活动
6 vbMinimizedNoFocus 窗口最小化为图标,而当前活动的窗口仍然保持活动
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库VB讲义(7)在线全文阅读。
相关推荐: