主页常量、变量、函数及表达式是构成VB应用程序的基本元素,也是程序设计的重要基础知识。学习和熟悉掌握这些元素,对以后的程序设计是十分重要的。主页第2章程序设计基础程序中的大部分实际工作是采用程序代码来处理的任何一门程序设计语言都有一套严格的编程规定本章主要内容退出数据类型常量与变量表达式常用内部函数主页2.1数据类型在使用计算机来处理数据时,会遇到各种不同类型的数据。例如,一个人的姓名是由一串文本(字符)组成,成绩、年龄和体重都是一个数值,而是否大学毕业则是一个逻辑值,等等。为了更好地处理各种各样的数据,VB定义了多种数据类型数值型数据类型字符型逻辑型日期型对象型变体型整数:整型/长整型字节型浮点型:单/双精度货币型主页1.数值型数据(1)整型(Integer)和长整型(Long)不带小数部分的数,表示正整数、负整数和零整型数:-32768~32767长整型数:-2147483648~2147483647(2)字节型(Byte)字节型数可以表示无符号的整数0~255(3)单精度型(Single)和双精度型(Double)浮点数。表示带有小数部分的数如超出某个表示范围,则用科学记数法例如:4.53E8(4.53×108),8.173E-14,3.14D23(4)货币型(Currency)专门为处理货币而设计的数据类型它可最多保留小数点右边4位和小数点左边15位主页2.字符型数据字符型是用双引号括起来的一串字符。例如:“Canton”、”1+2=?”、”Good└┘Morning”等“″”称为起止界限符。字符串长度。分为:变长字符串(长度不固定)定长字符串(长度固定)例如:DimaAsString′a是不定长字符串DimbAsString*4′b是定长字符串(4个字符)a=“VB”′a的值为2个字符“VB”a=“VisualBasic”′a的值为12个字符“VisualBasic”b=“VB”′b的值为4个字符“VB”(后面有2个空格)b=“VisualBasic”′b的值为4个字符“Visu”主页其他类型数据3.布尔(逻辑)型数据:只有True(真)和False(假)两个值4.日期型数据:用两个“#”符号把日期和时间的值括起来如:#08/20/2001#、#2001-08-20#5.变体型(Variant)数据:是一种可变的数据类型,可以存放任何类型的数据,VB会自动完成必要的转换不特别说明时,VB会自动将该变量默认为Variant型变量例:Temp=“22”’字符串Temp=Temp-1’数值Temp=#01/01/2002#’日期主页2.2常量与变量2.2.1常量在程序运行期间其值始终保持不变的量直接常量:在程序代码中直接给出的数据。例如:123,-263,”VisualBasic”,”12.57”等符号常量:在程序中用符号表示的常量。格式:[Public|Private]Const常量名[As数据类型]=表达式例如:ConstPI=3.14159AsSingle主页2.2.2变量变量是在程序运行期间其值可以发生变化的量。1.变量的命名规则应遵守一些规则(P30)2.变量的声明用Dim、Public、Private或Static语句来声明变量例如:DimsumAsInteger′把sum定义为整型变量sum=33.隐式声明不加说明就直接使用变量,此时默认的变量类型为变体型例如:sum=3主页(1)“值可变”:当将某个数据存放到一个变量时,就把变量中原有的值“冲”掉,换成新的值。例如,以下2个赋值语句:a=3a=8同一变量在不同时刻可以取不同的值(2)“取之不尽”:在运算过程中,如果没有改变该变量的值,那么,不管使用变量的值进行多少次运算,其值始终保持不变。例如x=5a=3+x′x的值始终保持为5b=x*x–4*x4.变量的两个重要特点主页五类表达式:算术表达式、字符串表达式、日期表达式、关系表达式和逻辑表达式1.算术表达式:运算符及其优先级:^(乘方)→-(求负)→*/→\→Mod→+-示例:5*x^10+x/6–x^(1/3)15Mod62.字符串表达式:运算符有两个:&和+”计算机”&”网络”结果为”计算机网络”3.日期表达式:#8/8/2001#-#6/3/2001#结果为66#12/1/2000#-32结果为#10/30/2000#2.3表达式结果?主页例2.1计算2+3.2*4Mod17.52\4.32/2的值根据运算符的优先级,该表达式的计算步骤如下:①计算乘除,得到:2+12.8Mod17.52\2.16②计算整除(\),得到:2+12.8Mod9(17.52和2.16两数先四舍五入为18和2)③求余运算(Mod),得到:2+4(12.8先四舍五入为13)。④求和运算,得到表达式的最后结果为:6主页1+2*14Mod17\6/2=?求出下列表达式的值想一想1.按运算符的优先级分成若干运算步骤先乘除,再整除\和求Mod,后加运算2.根据运算符的运算功能求出各步骤的结果思考题1+28Mod5结果为4主页内部函数是由VB系统提供函数名(参数1,参数2,…)返回函数值例如:y=Sqr(x)Sqr是内部函数名,x为参数,运行时该语句调用内部函数Sqr来求x的平方根,其计算结果由系统返回给变量yVB的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。2.4常用内部函数主页说明:·函数Int(x)是求小于或等于x的最大整数。例如Int(2)=2,Int(-2.5)=-3,Int(-3)=-3利用Int函数可以对数据进行四舍五入。例如,对一个正数x舍去小数位时进行四舍五入,可采用如下式子:Int(x+0.5)当x=9.4时,Int(9.4+0.5)=9当x=9.5时,Int(9.5+0.5)=102.4.1数学函数主页·随机函数Rnd可以模拟自然界中各种随机现象。它可产生一个(0,1)的随机数。在VB中,有一个称为随机数生成器的随机数生成程序,能产生一个随机数序列,用户每次调用Rnd即可得到这个随机数序列中的一个。使用Randomize语句可以为随机数生成器指定不同的初值或者称为随机数序列的“种子”,这样可以得到不同的随机数序列。Rnd通常与Int函数配合使用生成[a,b]区间范围内的随机整数,可以采用Int((b-a+1)*Rnd+a)例如Int(4*Rnd+1)可以产生1~4之间(含1和4)的随机整数。可以是1,2,3或4,这由VB运行时随机给定。主页编写的窗体单击事件过程代码如下:PrivateSubForm_Click()DimaAsSingle,bAsSingle,cAsSinglea=6b=9c=Sqr(a*a+b*b)Printc=;cEndSubc=10.8166522ba例2.2已知a=6,b=9,计算c=例2.222ba主页编写的窗体单击事件过程代码如下:PrivateSubForm_Click()DimaAsInteger,bAsInteger,cAsIntegerRandomize'初始化随机数生成器a=Int(90*Rnd+10)'产生[10,99]区间内的随机整数b=Int(90*Rnd+10)c=a+b'求两数之和Print产生的两个随机数:;a,bPrint和数:;cEndSub产生的两个随机数:5671和数:127例2.3通过随机函数产生2个两位正整数,求这2个数之和并显示出来再次运行程序,单击窗体后输出另一组结果是:产生的两个随机数:1837和数:55例2.3主页用于进行字符串处理说明:(1)函数Mid(字符串,p[,n])从第P个开始取n个字符示例:Mid(“ABCDEG”,3,2)的结果为”CD”若省略n,则得到的是从P开始的往后所有字符,如Mid(“ABCDE”,2)的结果为“BCDE”(2)函数Instr(f,串1,串2,k)查找串2在串1中的位置f和k均为可选参数,f表示开始搜索的位置(默认值为1),k表示比较方式,若k为0(默认),表示区分大小写;若k为1,则不分大小写。例如Instr(3,”A12a34A56”,”A”)的结果为7Instr(3,”A12a34A56”,”A”,1)的结果为4Instr(”A12a34A56”,”A”)的结果为1(3)函数Left(字符串,n)取左边n个字符示例:Left(”ABCDE”,2)的结果为”AB”字符串函数主页先从字符串a中找出某个指定字符(本例为空格),再以此字符为界拆分成两个字符串。编写的窗体单击过程代码如下:PrivateSubForm_Click()DimaAsString,bAsString,cAsString,nAsIntegera=Visual└┘Basic'└┘表示空格n=InStr(a,└┘)'查找空格位置b=Left(a,n-1)'取左边部分c=Mid(a,n+1)‘取右边部分也可采用Right(a,Len(a)-n)Printb'显示左边部分Printc'显示右边部分EndSubVisualBasic例2.4使用字符串函数示例例2.4处理方法Visual└┘Basic先查找空格位置取右边部分取左边部分主页日期/时间函数用于进行日期和时间处理例如:函数Date返回系统日期,如返回日期为#11/03/2001#函数Time返回系统时间,如返回时间为#7:03:28#2.4.3日期与时间函数主页转换函数用于数据类型的转换说明:Val函数将数字字符串转换为数值型数字时,会自动将字符串中的空格去掉,并依据字符串中排列在前面的数值常量来定值,例如:Val(12A12)的值为12Val(1.2e2)的值为120Val(A12)的值为0使用转换函数的示例PrivateSubForm_Click()x=123y=123a=Chr(Asc(x)+5)b=Str(Val(x)+5)c=Val(Str(y)+5)Printa,b,cEndSub运行程序后单击窗体,输出结果是什么?2.4.4类型转换函数想一想61281235转换函数例思考题主页在编写程序代码时,要遵守一定的规则。不能超越其规定来自由发挥。(1)一行写多条语句。冒号分隔Sum=Sum+x:Count=Count+1(2)一条语句写成多行使用续行符(一个空格后面跟随一个下划线“_”),将长语句分成多行。例如:PrintText1.Text&Text2.Text&Text4.Text└┘_&Left(Text3.Text,3)(3)不区分大小写字母VB不区分应用程序代码字母的大小写。2.5.2代码书写规则主页(4)各关键字之间,关键字和变量名、常量名、过程名之间一定要有空格分隔示例:Private└┘Sub└┘Form_Click()(5)使用缩进在编写程序代码时,可以使用缩进来反映代码的逻辑结构和嵌套关系。例如:PrivateSubForm_Click()x=4Ifx1ThenPrintx1ElsePrintx=1EndIfEndSub主页(6)严格按照VB规定的格式和符号编写程序。与其他高级语言一样,在VB中使用的分号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。许多程序错误都是由此而起!!!!例如:Ifa5Thenx=10Printx=;x不能写成Ifa〈5Thenx=10Print“x=”;x全角符号全角符号主页VB支持结构化的程序设计方法其程序结构清晰,可读性好,也易于查错和修改结构化程序设计方法有三种基本控制结构:顺序结构、选择结构和循环结构具有单入口,单出口的特点(a)(b)(c)顺序结构选择结构循环结构AB假真LE真假ABE2.5.3结构化程序的基本结构