




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB程序设计基础,第四章,4.1数据类型,VB提供的数据类型基本数据类型字符串(String)数值整型数浮点数货币(Currency)变体(Variant),其他数据类型字节(Byte)布尔(Boolean)日期(Date)对象(Object)Decimal,用户定义的数据类型枚举类型,4.1.1基本数据类型字符串(String),知识点是一个字符序列,有ASCII字符组成(包括标准的和扩展的)在VB中,字符串是放在双引号内的若干个字符,其中长度为0(即不含任何字符)的字符串称为空字符串。“Hello”“Wearestudents”“”空字符串“大家好!”VB中的字符串分为两种:变长字符串和定长字符串变长字符串的长度是不确定的,可以从0231(约21亿)个字符。定长字符串含有确定个数的字符,最大长度不超过216个字符。,基本数据类型数值,整型数,浮点数,数值,长整数(Long),整数(Integer),单精度浮点数(Single),双精度浮点数(Double),整型数:不带小数点和指数符号的数,在机器内部以二进制补码形式表示。,整数(Integer):整数以两个字节(16位)的二进制码表示和参加运算,取值范围:-3276832767,长整数(Long):以带符号的4个字节(32位)二进制数存储,其取值范围为:-2147483648+2147483647,浮点数:也称为实型数或实数,是带有小数部分的数值。由3部分组成:符号、指数、尾数。单精度浮点数用E或e表示:123.45E3(或E+3)相当于123.45103双精度浮点数用D或d表示:123.45678D3(或D+3)相当于123.45678103格式:尾数+指数,单精度浮点数(Single):以四个字节(32位)存储,其中符号占1位,指数占8位,其余23位表示尾数,此外还有一个附加的隐含位。可以精确到7位十进制数。负数取值范围:-3.402823E+38-1.401298E-45正数取值范围:1.401298E-453.402823E+38,双精度浮点数(Double):以8个字节(64位)存储,其中符号占1位,指数占11位,其余52位表示尾数,此外还有一个附加的隐含位。可以精确到15或16位十进制数。,基本数据类型货币,知识点是为表示钱款而设置的。以8个字节(64位)存储,精确到小数点后4位(小数点前有15位),在小数点后4位以后的数字将被舍去。浮点数中的小数是浮动的,即小数点可以出现在数的任何位置,而货币型数据的小数点是固定的,因此称为定点数据类型。,基本数据类型变体(Variant),知识点是一种可变的数据类型,可以表示任何值,包括:数值字符串日期时间等,Variant型是声明变量时的缺省类型,能够存储所有类型的数据。如果把数据赋予Variant变量,则不必在这些数据的类型间进行转换;VisualBasic会自动完成任何必要的转换。例如:DimSomeValueSomeValue=17SomeValue=SomeValue-15SomeValue=Ua;bintTemp=a:a=b:b=intTemp变量交换EndSubPrivateSubCommand2_Click()Print:Printa和b内容交换后:;a;bEndSub,Public,知识点用来在标准模块中定义全局变量和数组例如:PublictotalasInteger,关于变量定义时应注意的问题,如果一个变量未被显式定义,末尾也没有类型说明符,隐含说明为变体类型变量(Variant)用deftype语句定义的变量只对它所在的模块起作用。类型说明符总是比DefType语句优先起作用在实际应用中,应根据需要设置变量的类型。节省内存空间,提高处理速度用类型说明符定义的变量,在使用时可以省略类型说明符。Dimastr$Astr=“123333”Astr$=“123333”,部分变量存储要求(列表),记录类型变量,记录类型变量的定义与基本数据类型变量的定义没有区别,但必须用“变量.元素”的格式引用记录中的各个成员TypeTypeDemoNum1asdoubleNum2asIntegerVar1asStrring*3EndType则可以用下列语句定义TypeDemo的变量:Staticabcastypedemo以后即可以使用“变量.元素”的格式引用记录中的成员Abc.num1Abc.num2Abc.Var1,注意:一般情况下,记录类型在标准模块中定义;如果在窗体模块中定义,则必须在“Type”关键字前面加上“Private”。,4.3变量的作用域,知识点是指变量的作用范围,明确可以在程序的什么地方可以访问该变量根据变量的定义位置和所使用的变量定义语句的不同,VB中的变量可以分为三类:局部变量(Local)、模块变量(Module)、全局变量(Public),其中模块变量包括窗体模块变量和标准模块变量各种变量位于不同的层次,VB应用程序的构成,应用程序(Application),标准模块(Module),窗体模块(Form),通用过程,声明部分,事件过程(EventProcedure),通用过程(GenaralProcedure),声明部分(Declaration),4.3.1局部变量(过程变量),知识点在过程(事件过程或通用过程)内定义的变量叫做局部变量其作用区域是它所在的过程局部变量通常用来存放中间结果或用作临时变量某一过程的执行只对该过程内的变量产生作用,对于其他过程中相同名字的局部变量没有任何影响。如果需要,则可以通过“过程名。变量名”的形式分别引用不同过程中相同名字的变量。局部变量通过Dim或Static关键字来定义。PrivateSubCommand1_Click()DimaAsIntegerStaticbAsDoubleEndSub,模块变量(窗体变量和标准模块变量),知识点模块变量可用于该模块内的所有过程。当同一模块内的不同过程使用相同的变量时必须定义模块变量。与局部变量不同,在使用模块变量前,必须先声明,也就是说,模块变量不能默认声明。模块变量通过Dim或Private关键字来定义。PrivateaAsIntegerDimbAsString,全局变量(全程变量),知识点全局变量可用于工程的每个模块、每个过程。全局变量必须用Public(或Global)语句声明,不能使用Dim声明,更不能使用Private声明全局变量只能在标准模块中声明,不能在过程或窗体模块中声明。,三种变量的作用域,举例,4.3.2默认声明,知识点对于局部变量来说,可以不用Dim(或Static)定义,在需要时直接给出变量名,变量的类型可以用类型说明符来标识。如果没有类型说明符,VB把该变量指定为变体数据类型。默认声明的变量不需要使用Dim语句,因而比较方便,并能节省代码,但有可能带来麻烦,使程序出现无法预料的结果,而且比较难查出错误。默认了声明只适用于局部变量PrivateSubCommand1_Click()Answer=111111111111111EndSub,4.4常用内部函数,知识点VB提供了大量的内部函数。在这些函数中,有些是通用的,有些与某种操作有关。大体上可以分为:转换函数、数学函数、字符串函数、时间/日期函数、随机函数等五类。每个函数都带有一个或几个自变量可以通过立即窗口试验每个函数的操作直接方式在立即窗口中可以输入命令,命令行解释程序对输入的命令进行解释,并立即响应。可以通过执行“视图”菜单中的“立即窗口”命令或CTRL+G打开立即窗口内部函数的执行比较简单,即给出指定的自变量的值函数将返回相应的值。利用内部函数还可以实现一些特殊的操作。“自变量”是数学中的术语,在高级语言中一般称为参数,对于内部函数,本教程称为自变量。对于用户自己编写的过程,一律称为参数。,部分VB内部函数(转换函数),?cdbl(x)12.44568?csng(x)12.44568x=2.333456789311133466?cdbl(x)2.33345678931113?csng(x)2.333457?cvar(x)?chr(123)2.33345678931113,例x=12.44568?int(x)12?fix(x)12?hex(x)C?oct(x)14y=a?asc(y)97?cint(x)12?ccur(x)12.4457,部分VB内部函数(数学函数),例x=30?sin(x)-.988031624092862?cos(x).154251449887584?tan(x)-6.40533119664628?atn(x)1.53747533091665,y=-2.33?abs(y)2.33?sgn(x)1?sgn(y)-1m=0?sgn(m)0?sqr(x)5.47722557505166?exp(x)10686474581524.5,部分VB内部函数(日期、时间函数),例x=now()?x2005-3-1518:32:19?day(x)15?year(x)2005?month(x)3,?weekday(x)2?hour(x)18?minute(x)32?second(x)19,随机数,Rnd(x)产生一个0-1之间的单精度随机数例x=3?rnd(x).7055475?rnd(x).533424?rnd(x).5795186?rnd(x).2895625,?rnd(x).301948?rnd(x).7747401?rnd(x)1.401764E-02?rnd(x).7607236?rnd(x).81449?rnd(x).7090379,关于内部函数的几点说明,Sin、cos、tan自变量是以弧度为单位,返回数值;Atn的自变量是正切值,返回弧度角度值;1度=/180=3.14159/180(弧度)Rnd(x)可以产生随机数,当一个程序重复不断的使用随机数时,同一序列的随机数会反复出现,用Randomize(x)可以消除这种情况。X为整型数,是随机数发生器的种子数,可以省略。,4.5字符处理与字符串函数,VB的字符处理机制字符串函数VB具有十分丰富的字符处理能力,它提供了字符串变量、字符串数组以及大量的字符串函数,4.5.1VB的字符处理机制,早期的VB单字节处理机制(ANSI方式,字符代码为ASCII码)英文字符采用一个字节进行编码;中文字符采用两个字节进行编码。VB4.0以后采用新的字符处理机制大字符编码方案(UniCode方式,统一编码方式)把英文字符和中文字符作为一个整体进行统一编码,每个字符均用两个字符进行编码;在这种机制下一个英文字符或一个汉字都看作是一个字符,所占用的存储空间均为两个字节。UniCode方式实现了中英文字符的统一编码;但是给中英文混和字符串处理带来了麻烦。,4.5.2字符串函数,知识点VB提供了处理字符串的函数,用这些函数可以实现字符串的截取、长度测试、大小写转换、字符匹配等操作;字符串函数一般以类型说明符$结尾,表明函数的返回值为字符串,在VB6.0中$可以省略;为了与早期版本兼容,VB提供了用于处理ANSI格式的函数,这类函数以B结尾。,删除空白字符函数,空白字符包括空格、tab键LTrim$(字符串)去掉“字符串”左边的空白字符RTrim$(字符串)去掉“字符串”右边的空白字符Trim$(字符串)去掉“字符串”两边的空白字符,举例A$=这里没有空格B$=LTRIM(A)C=RTRIM(A)D=TRIM(A)?B这里没有空格?C这里没有空格?D这里没有空格,字符串截取函数,来用来截取字符串的一部分,可以从字符串的左部、中部和右部截取。Left$(字符串,n)返回字符串的前N个字符。“字符串”可以是:字符串常量、字符串变量、字符串函数或字符串连接表达式Mid$(字符串,p,n)从第P个字符开始,向后截取N个字符。N可以省略,截取到末尾。Right$(字符串,n)返回字符串的后N个字符。,字符串截取函数(举例),a=123456789printleft(a,3)123printmid(a,4,5)45678printmid(a,4)456789printright(a,5)56789,字符串长度测试函数,格式:Len(字符串)Len(变量名)可以测试字符串的长度,也可以测试变量的存储空间。举例a=1234567890PrintLen(a)10a=Len(testvar#)Printa8,a=“程序设计”Printlen(a)4,String函数,格式:String$(n.ASCII码)String$(n,字符串)返回由n个指定字符组成的字符串。当为ASCII码时,返回由该ASCII码对应的n个字符;当为字符串时,返回由该字符串第一个字符组成的n个字符的字符串。例PrivateSubCommand1_Click()A=String(2,NI)Label1.Caption=AEndSub,a$=String(5,65)b$=String(4,-h)c$=String(5,abcde)Printa;b;cAAAAA-aaaaa,空格函数,格式:Space$(n)返回n个空格举例a=abc+space(10)+def?aabcdef,字符串匹配函数,说明在编写程序时,有时候需要知道是否在文本框中输入了某个字符串。格式Instr(首字符位置,字符串1,字符串2,n)在字符串1中查找字符串2,如果找到了,则返回字符串2的第一个字符在字符串1中的位置。字符串1的第一个字符的位置为1。举例a=这是我的第一个vb程序!x=instr(a,vb)?x8,字符串匹配函数说明,字符串2的长度必须小于65535个字符首字符位置是可选的。如果含有首字符位置,则从该位置开始查找,否则,从字符串1的起始位置开始查找。首字符位置是一个长整数。函数的最后一个自变量是可选的,它是一个整型数,用来指定字符串比较方式。该自变量的取值可以是0、1、20进行二进制比较,区分字母的大小写1在比较时忽略大小写2基于数据库中包含的信息进行比较(仅用于MicrosoftAccess),默认为0,即区分大小写。,先从字符串a中找出某个指定字符(本例为空格),再以此字符为界拆分成两个字符串。编写的窗体单击过程代码如下:PrivateSubForm_Click()DimaAsString,bAsString,cAsString,nAsIntegera=VisualFoxPro表示空格n=InStr(a,)查找空格位置b=Left(a,n-1)取左边部分c=Mid(a,n+1)取右边部分Printb显示左边部分Printc显示右边部分EndSub程序运行后单击窗体,输出结果是:VisualFoxPro,例4.4使用字符串函数示例,Instr函数的返回值,字母大小写转换,格式:Ucase$(字符串)小大Lcase(字符串)大小举例a=这是我的第一个vb程序!x=ucase(a)?x这是我的第一个VB程序!,4.6运算符与表达式,内容简介算术运算符幂运算浮点数除法与整数除法取模运算算术运算符的优先级字符串连接关系运算符与逻辑运算符关系运算符逻辑运算符表达式的执行顺序,VB提供的算术运算符(9个),幂运算举例,?102100?1031000?10-2.01?25(1/2)5?8(1/2)2.82842712474619?81/24?10(3+1)10000?103+11001,浮点数除法(A)与整数除法(B),知识点A执行标准除法操作,结果为浮点数,与数学中的除法一样3/2=1.5B执行整除运算,结果为整型值32=1,整除的操作数一般为整型数,当操作数带有小数时,首先被四舍五入为整型数或长整型数,然后进行整除运算。运算结果被截断为整型数或长整型数,不进行舍入处理。a=104?a2b=10/4?b2.5c=25.636.78?c3d=25.63/6.78?d3.78023598820059,取模运算,知识点取模运算符Mod用来求余数,结果为第一个操作数整除第二个操作数所得的余数;对于小数运算,先四舍五入取整,再进行取模。举例?7mod43?21mod41?25.68mod6.995?26mod75,编写的窗体单击事件过程代码如下:PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=Int(x/10)求十位数b=xMod10求个位数c=b*10+a生成新的数Print处理后的数:;cEndSub运行程序后单击窗体,输出结果是:处理后的数:63,例4.3给定一个两位正整数(如36),交换个位数和十位数的位置,把处理后的数显示在窗体上,PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=x10求十位数b=x10*a求个位数c=b*10+aPrint处理后的数:;cEndSub,把上述程序改为以下形式,效果是否一样?,想一想,通常,解决某个问题的程序方法有多种,我们应该从中选择较优的一种方法。,算术运算符的优先级,高低,括号内运算优先内括号优先于外括号,字符串连接,知识点X$&Y$“+”也可以用作字符串连接符举例PrivateSubCommand1_Click()a$=这是我的b$=第一个程序!c=a&bLabel1.Caption=cEndSub,说明:使用+号,要求连接的两个表达式均为字符串型使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年肾内科肾功能损害诊断与治疗知识测验答案及解析
- 2025年放射科影像学诊断技巧模拟测试卷答案及解析
- 2025年放射诊断技术实操考察答案及解析
- 2025年老年医学专科知识综合应用考卷答案及解析
- 2025年眼科眼部疾病诊断与治疗常用技术考核答案及解析
- 2025年法医学鉴定案例分析考察答案及解析
- 2025年传染病防治艾滋病感染者护理知识测试卷答案及解析
- 2025年呼吸内科慢性阻塞性肺病诊疗模拟考试卷答案及解析
- 2025年血液科常见疾病诊治能力考核试题答案及解析
- 2025年眼科疾病诊断与护理综合考核模拟测试卷答案及解析
- 周围神经损伤(InjuryofPeripheralNerve)
- 2023-2024苏教版小学四年级数学上册(全册)教案设计
- 烟草行业应急预案编制与管理培训
- 2024事业单位食堂考试题及答案
- 酒店定位分析报告
- 光学设计 第3讲 色度学
- 合并同类项 公开课比赛一等奖
- 行政事业单位食堂会计核算流程和方式
- 教师教学发展综合管理系统需求说明
- 《艺术概论》课件-第二章 艺术的功能
- UI视觉设计(适用培训、教学)-第6章-游戏界面设计
评论
0/150
提交评论