实验任务5
课程名称:程序设计基础VB
实验名称——实验五Visual Basic程序设计基础(1)
一、实验目的:
1.掌握变量的定义和赋值
2.掌握各种类型的数据的使用
3.掌握各种运算表达式的值和使用
二、实验内容(包括实验要求(题目)、实验步骤、程序清单、运行情况):
实验1(1) 请分别在窗体的单击事件过程中声明定义如下变量,记录错误类型,并分析出错原因,将出错的变量名进行修改, 使其不再出错。P59
Visual Basic代码中要声明和命名一些元素(变量、常量、数据类型、过程等),命名时必须遵循以下规则:
●必须以字母或汉字开头,由字母、汉字、数字或下划线组成。
●字符必须并排书写,不能出现上下标形式。
●长度小于等于255个字符。
●不可以是系统关键字。
●不可以包含空格、西文标点符号和类型说明符%、&、!、#、@、$。
●在作用域范围内必须唯一。
Private Sub Form_Click()
Dim 5Fg As Integer’错在数字开头,修正为Fg
Dim L*og As Long’错在内部包含*,修正为Log
Dim s-ig As Single’错在内部包含-,修正为sig
Dim dob_ As Double‘正确
Dim _Name As string ’错在_开头,修正为Name_
Dim bln@Frag As Boolean’错在内部包含@,修正为blnFrag
Dim do As Date ’错在是系统关键字,修正为d
End Sub
,并分析出错原因)
运行时,单击窗体会出现“溢出错误”的提示;分析出错原因:32768超出了Integer变量Fg的表示范围
①32768(或-32768、-32769)——对Fg整型变量赋值32768或-32769,运行时,单击窗体会出现“溢出错误”的
提示;分析出错原因:32768和-32769超出了Integer变量Fg的表示范围
②32768(或-32768、-32769) ——对Log长整型变量赋值,运行时,单击窗体会正常显示接收的值;分析原因:
32768(或-32768、-32769)都没有超出Long长整型变量Log的表示范围
③1234567.12345678(或123456789.123、1.2345678)——对sig单精度变量赋值1234567.12345678,运行时,单击
窗体会显示1234567;分析原因:在Visual Basic中规定单精度浮点数精度即有效位数为7位,单精度型和双精度型常量的小数形式若超出有效位数,进行小数部分的截取;对sig单精度变量赋值123456789.123,运行时,单击窗体会显示1.234568E+08;分析原因:在Visual Basic中规定单精度浮点数精度即有效位数为7位,若整数部分超出有效位数,自动转为指数形式表示;对sig单精度变量赋值1.2345678,运行时,单击窗体会显示1.234568;
分析原因:在Visual Basic中规定单精度浮点数精度即有效位数为7位,单精度型和双精度型常量的小数形式若超出有效位数,进行小数部分的截取
④1234567.12345678(或123456789.123、1.2345678)——对dob_双精度变量赋值,运行时,单击窗体会正常显示
接收的值;分析原因:在Visual Basic中规定双精度浮点数精度为15~16位。
⑤"abf"(或"1234"、"123abc")——对Name_字符串变量赋值,运行时,单击窗体会正常显示接收的值;分析原
因:字符串是字符序列,由西文字符、汉字和标点符号组成,在Visual Basic中字符串常量两端用双引号""括起。
⑥True(或False、0、1、-1)——对blnFrag逻辑型变量赋值True(或False,运行时,单击窗体会正常显示接收的
值;分析原因:逻辑数据类型又称布尔类型,用于逻辑判断,只有True和False两种取值;对blnFrag逻辑型变量赋值0、1、-1,运行时,单击窗体会分别显示值False、True、True;分析原因:当赋值时表达式的值的类型并不完全和变量类型相同时,系统根据自动转换的原则将值转换成与变量相同的类型后赋值,非0值转换为逻辑型True,常量0值转换为逻辑型False。
⑦#10/06/2007#(或#Jun 10 2007#、#Jun-10 -2007#、#Jun,10,2007#、#8:20:20 PM#)——对d日期型变量赋值,运
行时,单击窗体会正确显示接收的值;分析原因:上述日期常量都是合法格式的日期数据。
实验2利用Print方法在窗体的单击事件中,验证下面4个表达式的值和合法性,体会&和+的作用和使用特点(对照课本71-72页)
"123" & 456 "123" + 456 "123ab" & 246 "123ab" + 246
&和+的作用和使用特点:
(1)使用运算符“&”时,操作数与“&”之间必须加上一个空格分隔。因为符号“&”还是长整型数据的类型定义符,若操作数与符号“&”连接在一起,Visual Basic系统优先将它作为长整型数据类型符处理,继而就会出现语法错误。
(2)“+”与“&”运算符在使用时的区别如下。
①“&”运算在连接运算前,系统自动先将两边的非字符串类型数据转换成字符串型数据,然后再进行连接操作。
②运算符“+”两边仅当都是字符串类型数据时,才进行字符串的连接操作;否则系统将运算符“+”用作算术运算符,进行求和运算:若其中一个操作数是数值型或逻辑型,另一个操作数是数字字符串或逻辑型,则系统会自动将数字字符串和逻辑型转换为数值型,然后进行算术求和运算;否则系统由于无法自动将操作数转换为数值型,则出现“类型不匹配”的出错信息
"123" & 456 ‘表达式合法,表达式值为”123456”
"123" + 456 ‘表达式合法,表达式值为579
"123ab" & 246 ‘表达式合法,表达式值为”123ab246”
"123ab" + 246 ‘表达式无法正确计算,出现“类型不匹配“错误
实验3请同学参考课本P69介绍的算术运算符的功能,先手工写出以下程序段的运行结果,然后在窗体的Click事件过程中分别添加如下的程序段,运行验证,进一步理解和掌握运算符和表达式的应用。
(1)a$ = "Good" b$ = "Morning" Print a + b
c$ = b$
b$ = a$
a$ = c$
Print a & b (2)
Print -44.5 Mod –2.7 Print 45.5 \ –2.4
Print 45 \ -5
(3)
a% = 300
b% = 20
a = a + b
b = a - b
a = a - b
Print a, b
Print Hex$(a Mod &H10) + b \ &O
12
提示数学中的乘号在VB中不能缺省,必须用*表示,/表示除运算,^表示乘方
实验4 实验书实验4-1先在书本上写出以下程序段的运行结果,然后在窗体的Click事件过程中分别添加如下的程序段,运行验证。(请仔细观察结果)(了解函数的使用p76-82)
(1)程序代码段一:
Print Sgn(15 Mod ?4), 15 Mod ?4
Print Sgn(18 Mod 26),18 Mod 26
Print Asc("P")
Print Chr(80)
Print Asc(Chr(80))
Print Chr(Asc("P") ? 1)
Print String(5, 97), String(5, "Mm")
(2)程序代码段二:
s$ = "abcdefg,123456!ABCDEF"
Print Len(s)
Print Sqr(Len(s) + 1)
Print Lcase(s)
Print Ucase(s)
Print Left(s,8)
Print Right(s,9)
Print Mid(s, 3, 5)
Print Instr(s,"efg")
实验5实验书实验4-2 字符串的插入。要求在图4-3(a)所示界面上输入字符串、插入点位置、插入字符串,单击“插入”按钮进行插入。(注意对象的属性设置)
【分析】插入过程为将字符串中插入点左边和右边的字符串使用Left和Right函数分离,使用字符串连接符按照左边字符串、插入字符串和右边字符串的顺序连接起来,如图4-3(b)所示。
?(a)实验4-2运行时输入界面(b)实验4-2插入后的界面
?图4-3 实验4-2运行界面程序代码如下:
Option Explicit
Private Sub CmdInsert_Click()
Dim S1 As String, S2 As String, Pos As Integer
S1 = TxtStr.Text
Pos = Val(TxtPos.Text)
S2 = TxtInsStr.Text
TxtStr.Text = left(s1,pos) & s2 & right(s1,len(s1)-pos) End Sub
做实验4和实验5,请注意总结和体会一般编程思路都可分为三个步骤且次序不能颠倒
1.接收数据(若无需外界提供数据,则该步骤省略);
2.数据处理;
3.输出结果
三、实验体会(包括对于本次实验的小结,实验过程中碰到的问题等)