资源描述
*,*,单击此处编辑母版标题样式,gejinhuan,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第二章 程序设计基础,2025/5/16 周五,2,gejinhuan,2.1,如何学好,Visual Basic,语言规则要熟记,我们只能遵守规则而不能去创造规则。,编程实验对能力提高最重要。,开始以模仿为主,理解熟记常用算法、方法、属性,尝试设计自己的选题,严格按照规定的格式书写程序,2025/5/16 周五,3,gejinhuan,首先注意一下,编码规则,:,VB,代码中,不区分,字母的,大小写,。(自动转化),在同一行上可以书写多条语句,但语句间要用冒号,“,:,”,分割。,若在一行上不能写下一个语句,或在特别需要时,语句可以写在多行上。换行时需要在本行后加入,续行符,“,_,”,,即空格加下划线。,一行最多允许有,255,个字符。,注释以,Rem,开头,也可以使用撇号,“,”,引导内容,用撇号引导的注释内容可以直接出现在语句的后面。,注意,关键字,,如,If,和,For,等,2.2,数据类型、常量与变量,2025/5/16 周五,4,gejinhuan,Private Sub Form_Click(),Dim a As,Integer,Dim b As,Single,Dim c As,String,Dim d As,Double,Dim e As,Boolean,a=10,b=3.5,d=a+b,c=,“,学习,VB,程序设计,“,字符类型的变量,C,e=ba,Print d,Print c,Print e,End Sub,2.2,数据类型、常量与变量,先看一个小程序,2025/5/16 周五,5,gejinhuan,VB,预定义了丰富的数据类型,不同数据类型体现了不同数据结构的特点。,比如数值型、字符型、逻辑型、日期型等,2.2,数据类型、常量与变量,2025/5/16 周五,6,gejinhuan,3.2 VB,的数据类型,数据既是程序处理的基本对象,也是程序的必要组成部分。数据类型是指数据的内在表现形式。,VB,根据数据的不同性质和用途将其分为不同的数据类型。各种数据类型具有不同的存储长度、取值范围和允许的操作。,数据类型总的来说分成四大类:,数值型、字符串型、其它类型、自定义类型,2025/5/16 周五,7,gejinhuan,Integer,、,Long,、,Single,、,Double,、,Currency,、,Byte,数值型数据,:,Integer,:,整型 占用,2,字节,表示范围,-32768,32767,Long,:长整型,4,字节,,-2147483648,2147483647,Single,:,单精度实数型,4,字节,,-3.402823E38,-1.401298E-45,1.401298E-45,3.402823E38 (6,位有效位数,),Double,:双精度,8,字节,,-1.79769313486232E308,-4.94065645841247E-324,4.94065645841247E-324,1.79769313486232E308 (15,位有效位数,),2025/5/16 周五,8,gejinhuan,Integer,和,Long,都用于表示整数。,Integer,的运算速度快、占用内存少,但精确度不够。,Single,和,Double,都用于表示实数。,如果所要处理的均为整数,那就尽量使用,Integer,类型;如果所要处理的包括小数,那么尽量使用,Single,类型。,注意:,2025/5/16 周五,9,gejinhuan,用于计算货币的数量,最多保留小数点右边,4,位和小数点左边,15,位。,Currency,:,8,字节,,-922337203685477.5808,922337203685477.5807,Byte,:,1,字节,用于表示,0,255,范围内的,整数,,无符号。,数值型数据,:,2025/5/16 周五,10,gejinhuan,String:,一个字符占,1,字节,用于存放字符型数据,即用双引号对括起来的字符串,如:,“,123,”,、,“,振兴中华,”,、,“,THANKS,”,等。,字符串型数据,(String),:,每个汉字字符占,2,个字节,注意引号是英文输入状态!,2025/5/16 周五,11,gejinhuan,Boolean,、,Date,、,Object,、,Variant,逻辑型数据,(Boolean),:,2,字节,用于逻辑判断,占两个字节,只有,True,与,False,两种值。,其他数据类型:,2025/5/16 周五,12,gejinhuan,日期型数据(,Date,):,8,字节,日期文字前后必须添加数字符号,“,#,”,,,#1 Jan,97#,#January 1,1999#,#1999-8-1 12:30:12PM#,都是合法的日期。,其他数据类型:,#05/08/2002#-#05/01/2002#,其结果为数值:,7,#05/08/2002#-7,其结果为日期型数据:,#05/01/2002#,2025/5/16 周五,13,gejinhuan,变体型数据(,Variant,):字节按需分配,,是所有未声明的变量的默认数据类型,,它对数据的处理完全取决于程序上下文的需要。,Variant,型变量可以存储数值型、字符型、日期型、对象型等数据,而不必进行数据类型转换,,VB,会自动完成任何必要的转换。,其他数据类型:,对象型数据,(Object),:,4,字节,,可用于引用应用程序中或某些其他应用程序中的对象。,2025/5/16 周五,14,gejinhuan,常量,可以理解为具有固定值的数据,分为,直接常量,和,符号常量,两种,直接常量,包括数值常量、字符串常量、逻辑常量、日期常量。例如:,78,、,1.23,、,“计算机”,、,TRUE,、,FALSE,、,#07/01/2008#,等,都是直接常量。,八进制常量前加,&,O,,如:,&,O,1,、,&,O,567,十六进制常量前加,&,H,,如:,&,H,AF,、,&,H,234,2025/5/16 周五,15,gejinhuan,符号常量,是为了让程序更具可读性而出现的,包括:,(,1,)系统定义的符号常量,例如:,vbRed,、,vbGreen,、,vbBlue,(,2,)用户自定义的符号常量,定义形式为:,Const,常量名,As,类型,=,表达式,Const PI=3.1415,声明常量,PI,代表,3.1415,,单精度型,Const X As Integer=5,声明常量,X,代表,5,,整型,Const R As Double=3.0,声明常量,R,代表,3.0,,双精度型,Const AREA=,PI*R*R,声明常量,AREA,代表,PI*R*R,2025/5/16 周五,16,gejinhuan,变量,在计算机中我们使用变量来存储那些会发生变化的数据,即,变量是数据的载体,。声明一个变量,就会在内存中开辟一块区域来存储其数据。,变量的命名规则,变量的声明,显式声明,隐式声明,2025/5/16 周五,17,gejinhuan,变量的命名规则,:,以字母或汉字开头,由字母、汉字、数字、下划线组成,长度小于等于,255,个字符。,不能和关键字相同,如,Dim,、,For,、,Select,等,且不能包含“,.|”,四种英文符号以及空格。,在一定范围内必须是唯一的,且不能和过程名同名。,不区分大小写字母,如:,XYZ,、,Xyz,、,xyz,都是相同的变量名。,例如:最大值、,lngX_Y,、,count,是正确命名的变量名。,3a,、,Byte,、,k 2,是一些错误的变量名。,2025/5/16 周五,18,gejinhuan,变量的显式声明:,显示声明的格式:,as ,:,Dim,、,Static,、,Public,、,Private,:符合命名规则的变量名称,:,Integer,、,Long,、,Single,、,Double,、,Currency,、,String,、,Byte,、,Boolean,、,Date,、,Object,、,Variant,、自定义类型,2025/5/16 周五,19,gejinhuan,例:,Dim x as Integer,Private strTemp as String,Private dblTotal as Double,Static cWage,(,类型缺省情况下为,Variant,型,),Dim x as Integer,,,strTemp as String,,,dblTotal as Double,(,一条语句声明多个变量是允许的,),变量的显式声明:,2025/5/16 周五,20,gejinhuan,声明变量的类型符,!,单精度浮点数(,Single,),#,双精度浮点数(,Double,),%,整型,变量,(,Integer,),&,长整型数据,(Long),货币型数据,(Currency),$,字符串型数据,(String),2025/5/16 周五,21,gejinhuan,声明变量时可以用,类型符,替代:,Dim x as Integer,Dim x%,虽然使用类型符方便,但使用类型关键字能使程序更具可读性。,变量的显式声明:,Static y as Single,Static y!,Private strTemp as String ,Private strTemp$,Private dblTotal as Double ,Private dblTotal#,2025/5/16 周五,22,gejinhuan,变量的显式声明:,Option Explicit,Private Sub Command1_Click(),Dim temp as Integer,Dim result as Integer,temp=100,result=temp*8,Print result,End Sub,例:,在通用声明段,2025/5/16 周五,23,gejinhuan,显式声明,Option Explicit,Private Sub Command1_Click(),Dim temp as Integer,Dim result as Integer,temp=100,result=temp*8,Print result,End Sub,Private Sub Command1_Click(),temp=100,result=temp*8,Print result,End Sub,隐式声明,(,书上,38,页表达有误,),隐式声明应尽量避免!,变量的隐式声明:,2025/5/16 周五,24,gejinhuan,声明,String,类型变量时的特殊操作:,变长字符串:,如,Private strTemp as String,定长字符串:,如,Private strTemp as String *5,即使不足,5,个字符,也会用空格填满,,若是超出,5,个字符,则会自动截去超出部分。,2025/5/16 周五,25,gejinhuan,关于变量的初始值,在程序中声明了变量之后,Visual Basic,自动将数值类型的变量,赋初值,0,变长字符串被初始化为,零长度的字符串,(,“”,),定长字符串则用,空格,填充,而逻辑型的变量初始化为,False,.,回头看第一个,例子,!,赋值语句和,Print,语句以及本章最后的,InputBox,函数和,MsgBox,函数我们将放在第三章开头讲解,2025/5/16 周五,26,gejinhuan,2.4,运算符和表达式,运算符是表示某种运算的符号。表达式是由变量、常量和运算符等组成的有意义的式子。,运算符按照,优先级从高到低,排列依次为:算术运算符,字符串运算符,关系运算符,逻辑运算符,2025/5/16 周五,27,gejinhuan,算术运算符与算术表达式,例:,5+10 mod 10 9/3+22,结果:,10,假设:,A,5,、,X,2,2025/5/16 周五,28,gejinhuan,整除运算和,Mod,求余运算的一些特殊规则:,整除和,Mod,求余均要求运算符左右两边的操作数都是,整数,;,若操作数是实数,则先“,四舍五入,”转换成整数,再计算;,若操作数是实数,且实数的,小数部分只有一位“,5”,时,,,则遵循:,奇进偶舍,,指的是实数的整数部分是奇,则把“,5”,进上去;是偶,则把“,5”,舍掉。,例:,20.5 7 =2,1.5 1.49 =2,0.5 1.49 =0,0.5001 1.49 =1,15.5 Mod 5.49 =1,2025/5/16 周五,29,gejinhuan,Mod,求余运算时,结果的正负号始终与,第一个,操作数,,即左操作数的符号相同。,例:,20.5 Mod 7 =6,20.5 Mod-7 =6,-20.5 Mod-7 =-6,-20.5 Mod 7 =-6,整除运算和,Mod,求余运算的一些特殊规则:,2025/5/16 周五,30,gejinhuan,字符串运算符与表达式,&,运算符,无论操作对象是数值还是字符,都能进行连接,,结果均为字符串类型,。,使用的时候,前后都必须有空格,!,例:“,123”&“456”,结果为“,123456”,“abc”&123 ,结果为“,abc123”,“Visual Basic”&“6.0”,结果为”,Visual Basic 6.0”,为什么?,2025/5/16 周五,31,gejinhuan,运算符,当,操作对象均为字符,时,与,&,实现相同的连接功能;,一边为,数字的字符串,,一边为,数值,,则自动把数字的,字符串转化为数值,再进行,相加运算,,结果为数值;,一边为,非数字的字符串,,一边为,数值,,则出错;,当两边均为数值时,则进行相加。,例:“,123”,“,456”,结果为“,123456”,“123”,456 ,结果为,579,“abc”,123 ,出错,123,456 ,结果为,579,字符串运算符与表达式,2025/5/16 周五,32,gejinhuan,Private Sub Form_Click(),Dim a As String,Dim b As Integer,Dim c As String,Dim d As String,a=123,b=456,c=a&b,d=a+b,Print c,Print d,End Sub,2025/5/16 周五,33,gejinhuan,关系运算符与表达式,运算符包括,,,=,,,ABRA,结果为,False,不等号,2025/5/16 周五,35,gejinhuan,逻辑运算符中除,Not,是单目运算符外,其余的都是双目运算符,功能是将运算对象进行逻辑比较,,比较结果是逻辑值,True,或,False,。运算按,优先级,顺序进行,同级运算从左到右依次进行。,逻辑运算符与逻辑表达式,2+35 And 53,结果为,False,2+35 Or 53,结果为,True,Not 53 And 6*2=10+2,结果为,True,2025/5/16 周五,36,gejinhuan,常用内部函数,数学的函数:,f(x,1,x,2,x,n,)=y,自变量,因变量,高级编程语言的函数:,参数,返回值,如:,Len(“abc”)=3,2025/5/16 周五,37,gejinhuan,VB,提供了大量的内部函数,),供用户在编程时调用。内部函数按其功能可分为数学函数、转换函数、字符串函数、日期函数、颜色函数、检测函数等。,在以下的,表格,中,我们用,N,表示数值表达式,,用,C,表示字符,串,表达式,,,用,D,表示日期表达式,。,函数名后的,“,$,”,符号表示函数的返回值为字符串,。,2025/5/16 周五,38,gejinhuan,内部函数,数学函数,2025/5/16 周五,39,gejinhuan,需要特别注意的数学函数,Rnd,产生,0,1),范围的,Single,类型的随机数。,(2)Int(N),返回小于等于,N,的最大整数。,(3)Fix(N),返回,N,的整数部分。,产生,上界,下界,之间随机整数的方法:,Int(,上界下界,+1)*Rnd,下界,),,,如:,Int(100 0+1)*Rnd+0),Private Sub Form_Click(),Dim a As Integer,a=Int(100-0+1)*Rnd+0),可以写成,a=Int(101*Rnd),Print a,End Sub,2025/5/16 周五,40,gejinhuan,内部函数,转换函数,转换函数可用于进行数据类型的转换等操作,2025/5/16 周五,41,gejinhuan,需要特别注意的转换函数,(1)Val(C),数字字符串转换为数值。,(2)Str(N),数值转换成字符串。,(3)Asc(C),将字符串的首字母转换成,ASCII,代码。,(4)Chr(N),ASCII,代码转换为字符。,(遇到字母,停止识别;空格跳过),Private Sub Form_Click(),Dim a As Integer,Dim b As String,a=Val(123),b=Str(a),Print a,Print b,Print Asc(123),Print Chr(33),End Sub,2025/5/16 周五,42,gejinhuan,内部函数,字符串函数,字符串函数可对字符串进行取子串、求串长等操作。,2025/5/16 周五,43,gejinhuan,需要特别注意的字符串函数,(1)LTrim(C),、,RTrim(C),、,Trim(C),删除空格字符。,(2)Left(C,N),、,Right(C,N),、,Mid(C,N,N),取子串。,(3)Len(C),判断长度。,2025/5/16 周五,44,gejinhuan,日期和时间函数可对日期和时间数据进行处理。,内部函数,日期和时间函数,2025/5/16 周五,45,gejinhuan,常用的日期时间函数,(1)Now,取得日期和时间。,(2)Date,取得日期。,(3)Time,取得时间。,(4)Timer,从午夜开始到现在经过的秒数。,
展开阅读全文