VB程序设计代码基础.ppt_第1页
VB程序设计代码基础.ppt_第2页
VB程序设计代码基础.ppt_第3页
VB程序设计代码基础.ppt_第4页
VB程序设计代码基础.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1,第3章,VB程序设计代码基础,本章要点:字符集数据类型常量、变量常用内部函数运算符与表达式,2,命令格式中的符号约定必选参数表示符。如缺少必选参数,则语句发生语法错误。可选参数表示符。如方括号中的内容省略,则VB会使用该参数的缺省值。|多个取一表示符。分隔多个选择项,必须选择其中之一。括起多个选择项。,同类项目的重复出现。省略了在当时叙述中不涉及的部分。,注意:这些专用符号和其中的提示,不是语句行或函数的组成部分,在输入具体命令或函数时,上述符号均不能作为语句的组成部分。,3,3.1字符集,1.字符集使用Unicode字符集,其基本字符集包括:数字:09英文字母:az,AZ特殊字符:空格!#$%?_|等。2.关键字关键字又称为保留字VB自动将关键字的首字母转换为大写字母例如:PRINT5+6转换成Print5+6,4,3标识符,用于标记用户自定义的类型、常量、变量、过程、控件等的名字。标识符的命名规则如下:第一个字符必须是字母。长度不超过255个字符。控件、窗体、模块的名字不能超过40个字符。不可以包含小数点或者内嵌的类型声明字符。不能使用关键字。例如,Sum、Age、Average、stuName等都是合法的标识符。习惯上,将组成标识符的每个单词的首字母大写,其余字母小写。VisualBasic不区分标识符的大小写。例如,标识符A1和标识符a1是等价的。,5,3.2数据类型,基本数据类型:数值型字符串型布尔型日期型对象型可变类型,6,3.2.1数值型数据,Integer(整型)Long(长整型)Single(单精度浮点型)Double(双精度浮点型)Currency(货币型)Byte(字节型),7,1.整数类型,(1)整型(Integer)以2个字节存储十进制表示:由+-号,09组成范围:-3276832767八进制表示:以&O开头,由07组成范围:&O0&O177777十六进制表示:以&H开头,由09,AF组成范围:&H0&HFFFF例:-325056+100&O456&O36&H1AC&H38&H2,8,(2)长整型(Long)以4个字节存储十进制表示:由+-号,09组成范围:-2147483648+2147483647八进制表示:以&O开头,以&结束范围:&O0&O37777777777&十六进制表示:以&H开头,以&结束范围:&H0&HFFFFFFFF&例:453466-34568+1000000&O456&O36&H1AC&H38&H2&,9,2.实数类型浮点数采用IEEE格式,由尾数及指数组成:+|-.E|D+|-,(1)单精度浮点型(Single)以4个字节存储,可以精确到7位十进制数例:3.234E+2表示3.234102-28E9表示-281094.56E-17表示4.5610-17(2)双精度浮点型(Double)以8个字节存储,可以精确到16位十进制数3.234D+2表示3.234102-28D9表示-281094.56D-17表示4.5610-17,e|d,10,(3)货币型(Currency)以8个字节存储用于表示定点数,其小数点左边有15位数字,右边有4位数字。3.字节型(Byte)用一个字节存储数据,其取值范围为0255。,11,3.2.2字符串型数据(String),由双引号括起来的一串符号例:abcABC计算机12.343+2(空串)如果字符串本身包括双引号,可用连续两个双引号表示。例:要打印以下字符串:Youmuststudyhard,hesaid.在程序中需要将该字符串表示成:Youmuststudyhard,hesaid.,12,3.2.3布尔型数据(Boolean),用于表示某个条件的成立或不成立。只有True和False两个值,13,3.2.4日期型数据(Date),用于表示日期和时间格式:#VB接受许多种日期时间格式例:下面的Date/Time值全部有效。#3-6-9313:20#March27,19931:20am#Apr-2-93#14April1993#12/18/1999#3.2.5对象型数据(Object)以4个字节存储,用于引用程序中的对象。3.2.6可变类型数据(Variant)可以包含任何类型的数据。,14,3.2.7枚举类型,用于建立名称与常量数值的关联。枚举类型可以在窗体模块、标准模块或类模块的通用声明部分声明。格式:Public|PrivateEnum=常量表达式1=常量表达式2EndEnum,15,参数:枚举类型名和各成员名应符合标识符的命名规则。成员名用于定义该枚举类型的组成元素的名称。常量表达式:可选项,为各成员所对应的值(为Long类型),可以是其他的枚举类型。Public:为可选项。表示该枚举类型在整个工程中都是有效的。当省略Public和Private时,默认为Public。Private:为可选项。表示该枚举类型只在所声明的模块中是有效的。,16,说明:1)在缺省常量表达式的情况下,枚举中的第一个常量被初始化为0,其后的常量则初始化为比其前面的常量大1的数值。例:PublicEnumDaysSunday初始值为0Monday初始值为1TuesdayWednesdayThursdayFridaySaturdayEndEnum,17,2)可以使用赋值语句显式地给枚举中的常量赋值。所赋的值可以是任何长整数,包括负数。例:PublicEnumWorkDaysSaturday初始化为0Sunday=0被赋值0Monday初始化为1TuesdayWednesdayThursdayFridayInvalid=-1被显式赋值为-1EndEnum,18,3)VB将枚举中的常量数值看作为长整数。如果将一个浮点数值赋给一个枚举中的常量,VisualBasic将该数值取整为最接近的长整数。4)当向一个枚举中的常量赋值时,也可以使用另一个枚举中的常量数值。PublicEnumWorkDaysSunday=0MondayTuesdayWednesdayThursdayFridaySaturday=Days.Saturday6Invalid=-1EndEnum,19,5)声明枚举类型后,就可以声明该枚举类型的变量,然后使用该变量存储枚举常量的数值。例:声明枚举类型的变量DimMyDayAsWorkDaysSaturday的数值为0MyDay=Saturday6)当引用单个常量时,为了避免混淆,应在常量名称前冠以枚举名。Debug.PrintDays.Saturday=&Days.SaturdayDebug.PrintWorkDays.Saturday=&_WorkDays.Saturday7)VB提供了系统定义的枚举vbDayOfWeek,它包括了与星期的七天相对应的常量。,20,3.2.8用户自定义类型,是用户自己定义的类型,这种类型可以包含多个基本类型。使用Type语句定义。Type语句格式:Private|PublicType(下标)AsEndType,21,说明:1)、应遵循标识符的命名规则。可以是VisualBasic系统提供的基本数据类型或已声明的用户自定义类型。缺省Private|Public选项时,默认是Public。2)用户自定义类型必须在窗体模块或标准模块的通用声明段进行声明。在窗体模块中定义用户自定义类型时必须使用Private关键字。3)如果用户自定义类型的元素为数组,则需要使用参数。4)在使用用户自定义类型前,必须先声明用户自定义类型的变量。,22,引用用户自定义类型元素的格式:.例:定义一个Students数据类型,该类型中的每一个数又包含了学生的系、班级、姓名、年龄信息。定义格式为:PrivateTypeStudentsDeptAsString*20系ClassNoAsString*10班级NameAsString姓名AgeAsInteger年龄EndType,23,声明一个用户自定义类型的变量StudDimStudAsStudents给变量的元素赋值Stud.Dept=计算机系Stud.ClassNo=软件2001-1Stud.Name=张三Stud.Age=18输出各元素的值PrintStud.Dept,Stud.ClassNo,PrintStud.Name,Stud.Age,24,5)如果两个变量都属于同一个用户自定义类型,也可以将其中一个变量赋给另一个变量。这种赋值是将一个变量的所有元素赋给另一个变量的对应元素。例:DimStud1AsStudents,Stud2AsStudentsStud2=Stud1,25,6)用户自定义类型可以包含其他的用户自定义类型。例:PrivateTypeAddressAddrAsString地址ZipAsInteger邮政编码PhoneAsString电话EndTypePrivateTypeStudentNameAsString姓名AgeAsByte年龄TosAddrAsAddress声明为Address的变量EndType,26,3.3常量,指在程序运行期间其值不发生变化的量。两种形式:直接常量;符号常量3.3.1直接常量例:欢迎使用VisualBasic字符串常量12345数值型常量True布尔型常量#11/10/2001#日期型常量3.3.2用户自定义符号常量格式:ConstAs=类型:IntegerLongSingleDoubleStringString*nBooleanDateCurrencyByteVariant,27,例:ConstPi=3.14159ConstMaxAsInteger=9ConstBirthDate=#1/1/01#ConstMyString=friend用逗号分隔多个常量声明ConstPi=3.14,Max=9,MyStr=Hello用先前定义过的常量定义新常量ConstPi2=Pi*2表达式中不能使用内部函数Constsinx=Sin(20*3.14/180)使用:在程序中引用如:AREA=Pi*R2在程序中不可修改如:Pi=3.14,28,VB内部已定义,可以直接使用的常量查看内部常量:视图对象浏览器选择库、类、成员如:库VBRUN类ColorConstantsShapeConstants成员VbredvbShapeCircle例:PrivateSubForm_Activate()ConstAAsString=各种常量的使用Form1.BackColor=vbGreenForm1.ForeColor=vbRedForm1.FontSize=14PrintAEndSub,3.3.3系统定义符号常量,29,3.4变量,一个有名称的内存单元称为变量。,1.什么是变量?,程序执行期间,用变量临时存储数值。变量的值可以发生变化。每个变量都有名称和数据类型。,30,2.变量的命名遵循标识符的命名规则,即,第一个字符必须是字母长度不超过255个字符不可以包含小数点或者内嵌的类型声明字符不能使用关键字不能与过程名或符号常量同名例:Student1MyNameintMaxstrName不区分大小写;变量名应便于识别、记忆,31,3.变量的声明(1)显式声明格式:Dim|Private|Public|StaticAs说明:Dim:在窗体模块、标准模块或过程中声明变量。Private:在窗体模块或标准模块中声明变量,使变量仅在该模块中有效。Public:在标准模块中声明全局变量,使变量在整个应用程序中有效。Static:在过程中定义静态变量,即使该过程结束,也仍然保留变量的值。,32,例:DimSumAsLongDimAddressAsStringDimNoAsString*8PrivatebAsIntegerDimNum,TotalAsIntegerNum为可变类型PublicAverageAsSingleStaticAAsLong(2)隐式声明可变类型。易出错、浪费空间(3)强制显式声明在模块的声明段中使用语句:OptionExplicit如果设置:工具选项编辑器要求变量声明则在后续模块中自动插入OptionExplicit,33,例:窗体模块和过程中使用Dim语句的区别。设在窗体中放置按钮Command1和Command2DimaAsIntegerPrivateSubCommand1_Click()a=a+10PrintaEndSubPrivateSubCommand2_Click()a=a+15PrintaEndSub观察程序运行结果将DimaAsInteger放到过程内,观察运行结果。,34,例:Static的作用。设在窗体中放置按钮C1,PrivateSubC1_Click()StaticaAsIntegera=a+10PrintaEndSub,PrivateSubC1_Click()DimaAsIntegera=a+10PrintaEndSub,运行时,多次单击命令按钮C1,比较以上两个事件过程的执行效果,35,3.5常用内部函数,函数形式:函数名()参数:常量、变量或表达式。若有多个参数,参数之间以逗号分隔。函数值:也叫“返回值”函数的使用:函数在表达式中被调用。,36,例:Fix(45.67)结果为45Int(45.67)结果为45Fix(-2.89)结果为-2Int(-2.89)结果为-3Abs(-4)结果为4Log(10)结果为2.30258509299405Sgn(3)结果为1Sgn(-6)结果为-1Sgn(0)结果为0例:求sin300Sin(30*3.14/180)参数以弧度为单位,3.5.1数学函数,37,例:判断一个整数Y能否被另一个整数X整除如果Int(Y/X)=Y/X则整除例:常用对数log10X的求法用换底公式:,即:Log(X)/Log(10)例:求e3正确:Exp(3)错误:e3(错),38,例:LTrim(ABC)结果为ABC,表示空格,RTrim(ABC)结果为ABCTrim(ABC)结果为ABCLeft(ABCDE,2)结果为ABRight(ABCDE,2)结果为DEMid(ABCDE,2,3)结果为BCDMid(ABCDE,2,6)结果为BCDELen(ABCDE)结果为5String(3,ABC)结果为AAAString(3,65)结果为AAAInStr(ABCDECDE,DE)结果为4InStr(5,ABCDECDE,DE)结果为7UCase(Abc)结果为ABCLCase(ABc)结果为abc,3.5.2字符串函数,39,1.随机函数Rnd(x)产生0,1)之间的单精度随机数。x0:以上一个随机数作种子,产生序列中的下一个随机数。x=0:产生与最近生成的随机数相同的数。省略x:同x02.Randomize语句初始化随机数发生器,格式:Randomizenn:种子,省略时以系统时间作为种子,3.5.3随机函数,40,生成a,b范围内的随机整数Int(b-a+1)*Rnd+a)例:生成1,99之间的随机整数的表达式为:Int(99*Rnd+1)例:生成(1,99)之间的随机整数的表达式为:Int(97*Rnd+2),41,例:Asc(A)结果为65Asc(ABC)结果为65Chr(65)结果为AStr(123)结果为123Str(-123)结果为-123Val(123)结果为123Val(123AB)结果为123Val(.123AB)结果为.123Val(a123AB)结果为0Val(12E2ABC)结果为1200,3.5.4转换函数,42,Hex(27)结果为1BHex(45.7)结果为2EOct(27)结果为33Oct(45.7)结果为56CInt(5.3)结果为5CInt(-5.7)结果为-6CInt(32766.6)结果为32767CInt(32767.8)溢出错误CInt(0.5)结果为0CLng(10.5)结果为10CSng(123.56789)结果为123.5679CDbl(123.56789)结果为123.56789,43,CCur(123.56789)结果为123.5679CBool(5.8*4)结果为TrueCBool(-5.8)结果为TrueCBool(0)结果为FalseCBool(12)结果为TrueCBool(0)结果为FalseCBool(abc)出错,44,3.5.5日期和时间函数,Now:返回系统日期和时间。Date:返回系统日期。Time:返回系统时间。Day(d):返回参数d中指定的日期是月份中的第几天。WeekDay(d):返回参数d中指定的日期是星期几。Month(d):返回参数d中指定日期的月份。Year(d):返回年份。,返回系统的日期和时间、或返回指定日期和时间的一部分。,45,Hour(d):返回小时(023)。Minute(d):返回分钟(059)。Second(d):返回秒(059)。Timer:返回从午夜开始到现在经过的秒数。,46,例:Format(123.45,0000.000)结果为0123.450Format(123.45,0.0)结果为123.5Format(123.45,#.#)结果为123.45Format(123.45,#.#)结果为123.5Format(0.123,.#)结果为.12Format(0.123,0.#)结果为0.12Format(HELLO,)结果为THISISIT注:经Format函数格式化后的结果为字符串类型例:Format(123)+Format(456)结果为123456区别:Str(123)+Str(456)结果为123456,3.5.6格式输出函数,47,Shell函数用于调用Windows下的应用程序。格式:Shell(,)参数::要执行的可执行文件名,包含路径。:决定程序运行时窗口的样式。如果省略,则程序以具有焦点的最小化窗口执行。取值见P54表3-1。,3.5.7Shell函数,例:运行时单击窗体,打开计算器:PrivateSubForm_Click()Shellc:winntsystem32calc.exe,vbNormalFocusEndSub这里Shell函数以语句形式出现,没有返回值。,48,3.6运算符与表达式,操作数:常量、变量、函数、对象运算符:圆括号算术运算符(算术表达式)字符串运算符(字符串表达式)关系运算符(关系表达式)布尔运算符(布尔表达式),49,3.6.1算术运算符与算术表达式,书写:一条线、无、无,50,例:将以下表达式写成VB合法的表达式,(xy)z,a1+a2,a-b+a(-b),a1+a2,a(-b)+a*(-b),(xy)z,a(1/n),y/(-x)+x/(-y),A/(4+(8/(3+B),51,1.乘方运算例:10210的平方,结果为10010(-2)10的平方的倒数,结果为0.01223运算顺序从左到右,结果为64(-8)(-1/3)错误,当底数为负时,指数应为整数2.整数除法例:104结果为225.686.99先四舍五入再整除,结果为33.取模运算例:10Mod4结果为225.68Mod6.99先四舍五入再求余数,结果为511Mod4结果为3-11Mod5结果为-1-11Mod-3结果为-2,结果符号同第一个操作数,52,字符串运算符有两个:&+&:自动将两侧的操作数作为字符进行连接例:Hello&World结果为HelloWorldCheck&123结果为Check123123&456结果为123456123&456结果为123456:仅当两侧操作数都为字符串时才做字符串连接123+456结果为579123+456结果为579123+456结果为123456Check+123错误,3.6.2字符串运算符与字符串表达式,53,1.关系运算符(比较运算符)(大于)=(大于或等于)=(等于)(不等于)2.关系表达式:例:XY+ZA=5StudNameShelly,3.6.3关系运算符与关系表达式,54,3.如何比较数值比较按数值大小单字符比较在模块的通用声明部分使用语句Opti

温馨提示

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

评论

0/150

提交评论