Visual Basic 程序设计 清华大学出版社 第三章_第1页
Visual Basic 程序设计 清华大学出版社 第三章_第2页
Visual Basic 程序设计 清华大学出版社 第三章_第3页
Visual Basic 程序设计 清华大学出版社 第三章_第4页
Visual Basic 程序设计 清华大学出版社 第三章_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章函数与表达式,Whatpainsustrainsus.-使我们痛苦的东西在真正锻炼我们。,3.1编码规则,(1)代码中字母不区分大小写。(2)在同一行上可书写多条语句,但相互之间要用冒号分隔(3)若一条语句比较长,一行放不下,可用用续行符“_”连接下一行。“_”前要有空格。一行上的字符数小于等于255。续行符后不要写任何代码,即使是注释也不可以。,出错指数:,3.1编码规则,(4)以Rem或撇号开头的部分是语句的注释。以Rem开头的注释要另起一行书写。撇号引导的注释可直接放在语句后面。(5)使用编辑工具栏中的“设置/取消注释块”命令,可将若干行语句或文字设置/取消为注释块。,出错指数:,(真题)下列正确的VisualBasic注释语句是()A)Dima(10)AsIntegerRem这是一个VB程序B)Rem这是一个VB程序PrivateSubCommand1_Click()C)a=1:b=2:_Rem这是一个VB程序:c=3D)IfShift=6AndButton=2ThenPrint“Hello”Rem这是一个VB程序EndIf,B,(真题)下列叙述不正确的是()A)注释语句是非执行语句,仅对程序的有关内容起注释作用,它不被解释和编译B)注释语句可以放在代码中的任何位置C)注释语句不能放在续行符的后面D)代码中加入注释语句的目的是提高程序的可读性,B,3.2标准数据类型,整数是没有小数点和指数符号的数。按其数值范围划分成:1.整型:关键字是Integer类型符是%内存中占2个字节共16位能表示的整数范围为:-3276832767789、-78、+56、96%都是整型数2.长整型:关键字是Long类型符是类型符;内存中占据8个字节123.451234都是正确的货币型数据字节型用于存储二进制数。关键字Byte;无类型符;在内存中占据1个字节表示范围0255;没有负数,3.2.4字符数据类型,字符型数据是用双引号括起来的一串字符,例“book”字符型数据的内部表示是字符的Unicode代码(以二进制形式)一个英文字符和一个汉字都占2个字节。没有放入任何字符的一对双引号“”是空字符串。,出错指数:,3.2.4字符数据类型,空格是有效的字符。字符串中的双引号用连续两个双引号表示,如:字符串“book”name”应该写成“book”name”字符型关键字String;类型符$;占据的字节数要根据字符串的长度来计算。字符型数据类型有定长和变长两种,定长字符串最长不超过65535个字符。变长字符串最长不超过231个字符,出错指数:,3.2.4字符数据类型,VB中每个英文字符和汉字都占两个字节,这与编码方式有关ASCII编码:英文字符可以使用ASCII编码,每个字符占一个字节。Windows采用DBCS(DoubleByteCharacterSet)编码,即英文采用ASCII编码,是单字节;中文以两字节编码。VB采用Unicode(国际标准化组织(ISO)字符标准)编码,英文和汉字每个都占两个字节。为了保持与ASCII码的兼容性保留ASCII,仅将其字节数变为两个,增加的字节以零填入,3.2.5逻辑数据类型,逻辑型数据只有真(True)和假(False)两个量.关键字Boolean,无类型符。真(True)和假(False)在内存中都占2个字节。真(True)对应16位1;假(False)对应16位0.将逻辑性数据转化为整数值时真(True)对应-1;假(False)对应0。当将其他类型数据转换成逻辑数据时,非0为真(True);0为假(False)。,出错指数:,3.2.6日期数据类型,日期型数据是按8个字节的浮点数存储的。关键字Date/Time,无类型符。范围从公元100年1月1日到9999年12月31日;时间范围从0:00:00到23:59:59表示方法有两种:1)以任何字面上可以被认作日期和时间的字符两端加上#,例如:#January1,2000#1Jan,00#2000-6-2512:30:00PM#,3.2.6日期数据类型,2)以数字序列表示:小数点左边的数字代表日期,小数点右边的数字代表时间,0为午夜,0.5为中午12点;负数代表的是1899年12月31日之前的日期和时间。例如:将数值-2.6转换成日期代表的是1899-12-2914:24:00,3.2.7对象数据类型,关键字Object;无类型符;在内存中占据4个字节。Object变量作为4个字节地址来存储,该地址可引用应用程序中的对象。可以用Set语句指定一个被声明为Object的变量去引用应用程序所识别的任何实际对象。,3.2.8变体数据类型,变体数据类型关键字Variant;无类型符;是一种特殊的数据类型,为VB的数据处理增加了智能性,是所有未定义的变量的缺省数据类型,它对数据的处理完全取决与程序上下文的需要。要检测变体型变量中保存的数值是什么类型,可用VarType函数进行检测,根据函数的返回值(见下表)判断变体型变量中保存的数值是什么类型。例如:VarType(123)的返回值为2,表示为整型。,VarType函数数据类型,3.2.9自定义数据类型,复合数据类型是以基本数据类型为基础,用特定的方法组成的比较复杂的数据类型。类似于C语言中的结构类型、Pascal中的记录类型。自定义类型通过Type语句来实现。,3.3常量与变量,3.3.1常量在程序运行过程中,值无法改变的量成为常量。常量有三类:普通常量用户自定义常量系统常量,1.普通常量,字符型常量:“12345”逻辑性常量:True和False整型常量:1234(十进制)、&O123(八进制)、&H12A(十六进制)长整型常量:1234&(十进制)、&O123&(八进制)、&H12A&(十六进制)单精度常量:12.3!、123!、123.45E-5!双精度常量:123#、123.45D-5、123.45E-5#日期时间常量:#12/27/2000#、#13:30:45#,2.用户自定义常量,用户可以自定义一个符号来代替一个常量,该符号就称为用户自定义常量。符号的命名与变量相同,通常(非强制)全部字母大写。语法形式:Const常量名As类型=常量表达式例如:ConstPI=3.14159As类型:可省略。省略后常量的数据类型由表达式决定。,出错指数:,2.用户自定义常量,PrivateSubCommand1_Click()ConstF=3+5Dimz%z=2*FForm1.PrintzEndSub,运行结果:16,3.系统常量,系统常量由系统提供,可使程序容易阅读和编写。,(1)变量的命名规则(2)变量的声明(3)变量的初值,3.3.2变量,变量名以字母或汉字开头,由字母、汉字、数字、下划线组成,长度小于等于255个字符、不能使用系统中的关键字命名变量,不区分变量名中字母的大小写。china_beijingshanghai123数码_01123happyprog%testinteger,1.变量的命名规则,(真题)下述说法不正确的是()A)变量名的长度不能超过255个字符B)变量名可以包含小数点或者内嵌的类型声明字符C)变量名不能使用关键字D)变量名的第一个字符必须是字母或汉字(真题)下列可作为VisualBasic变量名的是()A)FilenameB)A(A+B)C)A%DD)Print,B,A,(1)显示声明:Dim变量名As类型,变量名As类型.或者:Dim变量名类型符,变量名类型符.例如:DimBookAsSingle,PenAsDouble等价于DimBook!,Pen#注意:变量定义为没有类型符的数据类型时,要用关键字声明。DimxAsBoolean,2.变量的声明,字符类型的变量有定长和变长两种:DimStr1AsString声明变长字符变量DimStr2AsString*10声明定长字符变量,放10个字符少于10个字符则右补空格,多于10个则把多余的删除用Static声明的是静态变量;Public声明的是全局变量;Private声明的是局部模块变量。StaticXAsInteger声明静态的整型变量,(2)隐式声明在VB中变量可以不经声明直接使用,因为系统已经自动进行了隐式声明,且数据类型为变体型。例如:PrivateSubForm_Click()A=5A由系统隐式声明为变体型B=4PrintA+BEndSub,(3)强制声明变量“先声明后使用”是一个良好的编程习惯。若想在VB编程中用到的所有变量没有声明直接使用报错,方法有:在窗体模块、标准模块、类模块的通用声明段加入语句:OptionExplicit执行“工具”-“选项”,在编辑器选项卡中选择复选项“要求变量声明”,变量声明后,系统根据其类型给予不同的默认初值:整型、长整型、单精度、双精度、货币型、字节型的默认初值为0字符型的默认初值为空字符串“”逻辑性的默认初值为False日期型的默认初值为0/0/0对象型的默认初值为Nothing,3.变量的初值,(真题)下列叙述中正确的是()A)在窗体的Form_Load事件过程中定义的变量是全局变量B)局部变量的作用域可以超出所定义的过程C)在某个Sub过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但其作用域只限于该过程D)在调用过程时,所有局部变量被系统初始化为0或空字符串,C,(1)算术运算符(2)字符串运算符(3)关系运算符(4)逻辑运算符,3.4运算符及优先级,运算符的优先级优先级用来标志运算符在表达式中的运算顺序。优先级高的先运算,优先级低的后运算。如:x-y*z相当于x-(y*z)运算符的结合性在优先级相同情况下,表达式的计算顺序由结合性来确定。大多数运算符的结合性是从左至右,单目结合性是从右至左的如:a+b-c(a+b)+c,1.算术运算符,算术运算符中有乘方()、负号(-)、乘(*)、除(/)、整除()、取模(求余)(Mod)、加(+)、减(-)。其中负号是单目运算符。算术运算符之间的优先级为:乘方负号乘、除整除取模加、减,高,低,1.算术运算符,设:变量a为整型,值为3,1.算术运算符,注意:在算术运算中,如果操作数具有不同的数据精度,则VB规定运算结果的数据类型采用精度高的数据类型。即IntegerLongSingle99报错,Like运算符用于判断两个字符串之间的包含关系格式为:Like若包含于结果为True,反之为False注意:在中可以使用以下通配符:?通配一个字符,“12”Like“?23”结果为True*通配一串字符,“123456”Like“*”结果为True#通配一个数字,“123456”Like“#4”结果为False字符列表通配字符列表中的一个字符,“7”Like“1-9”结果为True写成“7”Like“1,2,3,4,5,6,7,8,9”也可以,结果为True!字符列表通配字符列表以外的一个字符,“7”Like“!1-9”结果为False写成“7”Like“!1,2,3,4,5,6,7,8,9”也可以,结果为False,(真题)以下关系表达式中,其值为True的是()A)”XYZ”XYz”B)”VisualBasic”visualbasic”C)”the”=”there”D)”Integer”Int”,B,4.逻辑运算符,逻辑运算符中有逻辑非(Not)、逻辑与(And)、逻辑或(Or)、逻辑异或(Xor)、逻辑等于(Eqv)、逻辑蕴含(Imp)。其中逻辑非是单目运算符。逻辑运算符的优先级低于关系运算符。逻辑运算符之间的优先级为:NotAndOr、XorEqvImp,高,低,4.逻辑运算符,4.逻辑运算符,注意:如果逻辑运算符的运算数中有数值,那么是以数字的二进制逐位进行逻辑运算。例如:7AndTrue结果是:70000000000000111And11111111111111110000000000000111例如:10Or7结果是:150000000000001010Or00000000000001110000000000001111,(真题)设a=2,b=3,c=4,d=5,则表达式Notaa+c的值是()A)-1B)1C)TrueD)False(真题)表达式4EqvTrue的结果为()表达式4EqvFalse的结果为(),D,4,-5,(真题)在VisualBasic中,下列优先级最高的运算符是()A)*B)C)D)Not,A,3.5表达式,表达式是由变量、常量、运算符、函数和圆括号等有机组成的、有一定意义的式子。表达式书写规则:从左到右在一行上书写,无高低区分。的写法出错乘号不能省略。例如:x*y不能写成xy表达式中可以用圆括号括起,以改变运算的优先级。不能使用方括号或花括号,圆括号可以嵌套,但要注意配对。在算术表达式中,若出现不同的数据类型,应向精度高的数据类型转换。IntegerLongSingleDoubleCurrency但注意例外情况,x+yx-y,3.5表达式,日期型数据之间的运算比较特殊,只能进行加减运算1.两个日期型数据可以相减,结果是所差的天数,为数值型数据#12/12/2009#-#12/11/2009#结果是12.一个日期型数据加上一个数值,结果为日期型#12/12/2009#+1结果为2009-12-133.一个日期型数据减去一个数值,结果为日期型#12/12/2009#-1结果为2009-12-11,出错指数:,3.5表达式,例:写出闰年的判断条件,y为整型变量,存放的是待判断的年份满足以下两个条件之一即为闰年:能被4整除,但不能被100整除能被400整除yMod4=0AndyMod1000OryMod400=0若表达式结果为True,则y为闰年,否则为非闰年。,3.6常用函数,VisualBasic中的函数有内部函数(标准函数)和用户自定义函数两类。内部函数又称标准函数、或者库函数,是系统为方便实现一些功能而设置的内部程序,包括有数学函数、字符串函数、日期和时间函数、转换函数和格式函数等。函数的调用方法为:函数名(自变量)或者对象.属性值=函数名(自变量),1.数学函数,注意:三角函数的自变量单位为弧度。Atn函数返回值的单位也是弧度。例如:Sin48。应写为Sin(48*3.14/180)Rnd(N)返回一个随机数,小于1但大于或等于0的值。如果N的值小于0每次都得到相同的随机数。大于0或省略产生下一个随机数。等于0返回最近一次生成的随机数。默认情况下Rnd函数每次运行产生相同的随机数序列,可以使用Randomize语句产生不同序列的随机数。RandomizeInt(Rnd*101)+200产生200,300区间的随机数,2.字符串函数,注意:可选参数Q表示查找的起始字符位置可选参数M表示是否区分大小写,0区分;1不区分;省略为区分大小写。StrComp(”AB”,”ab”,0)结果为-1,表示”AB”ab”StrComp(”AB”,”ab”,1)结果为0,不区分大小写InStr(”1234ABCD”,”ab”)结果为0,找不到,默认区分大小写InStr(2,”1234ABCD”,”ab”,1)结果为5,不区分大小写,3.转换函数,出错指数:,3.转换函数,出错指数:,3.转换函数,注意:比较Cint(),int(),fix(),round()的区别Cint小数部分超过0.5的部分都进位,不分正负例如:Cint(2.51)=3Cint(-2.51)=-3小于0.5的部分都舍去,不分正负;等于0.5的部分按取双方式取整例如:Cint(2.49)=2Cint(-2.49)=-2Cint(3.5)=4Cint(-2.5)=-2Int取到的是小于等于这个数的最大整数例如:Int(2.49)=2Int(2.50)=2Int(2.51)=2Int(-2.49)=-3Int(-2.50)=-3Int(-2.51)=-3,注意:比较Cint(),int(),fix(),round()的区别Round确定好保留的位数后,后面的直接四舍六入五取双例如:Round(2.459,2)=2.46Round(2.445,2)=2.44Round(2.455,2)=2.46Round(2.454,2)=2.45Round(-2.459,2)=-2.46Round(-2.455,2)=-2.46Round(-2.454,2)=-2.45Fix省略小数位,即直接截走小数位例如Fix(2.51)=2Fix(2.49)=2Fix(-2.49)=-2Fix(-2.51)=-2,注意:Chr和Asc函数互为反函数,如Chr(Asc(34)的结果是3非负数值用Str函数转换成字符型值后,会在生成的字符串左边增加空格,留作符号位Str(645)结果为”645”字符串645之前有一个空格Val将由数字组成的字符串转换成数值,直到出现非数字符号Val(“-7.8E-2”)结果是-7.8因为E不是数字,所以从E开始不转换Val(“ab”)结果是0,出错指数:,4.日期函数,日期形式:,(真题)表达式Left(howareyou,3)的值是()A)howB)areC)youD)howareyou,A,(真题)设有如下声明:DimxAsInteger如果Sgn(x)的值为-1,则表示x的值是()A)整数B)大于0的整数C)等于0的整数D)小于0的数,D,(真题)语句PrintSgn(-62)+Abs(-62)+Int(-62)的输出结果是()A)-36B)1C)-1D)-72,C,(真题)执行以下程序段a$=”VisualBasicProgramming”b$=”C+”c$=Ucase(left$(a$,7)&b$&Right$(a$,12)后,变量c$的值为()A)VisualBasicProgrammingB)VISUALC+ProgrammingC)VisualC+ProgrammingD)VISUALBASICProgramming,B,3.6.5Shell函数运用Shell函数可调用其它的应用程序,函数格式为:Shell(应用程序文件及路径,运行窗口类型)例如:k=Shell(“C:programfilesmicrosoftofficeoffice10winword.exe”,1),1.变量类型要分别声明Dimx,y,zAsInteger实际上z为整型,x、y为变体型应写为:DimxAsInteger,yAsInteger,zAsInteger2.不要用系统保留字作为变量名DimtanAsIntegerTan是标准函数名,这样写会导致Tan函数无效。系统认为Tan是数组名。,3.7错误和难点,出错指数:,3.注意逻辑错误逻辑错误是比较难发现的错误,要求编程人员细心例如:3=x=10不管x的值为多少,该式子永真。因为先计算3=x,结果为真或假两个逻辑值。逻辑值与数值进行算术运算,则将逻辑值转换为数值。True为-1,False为04.标准函数名输入错误函数名写错时,系统会显示“子程序或函数未定义”诀窍:语句写完后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论