1、程序设计基础第三章 VB编程语法及词汇程序书写规则第三章 程序设计基础 本章将介绍Visual Basic中有关基本语句、程序的书写规则、变量、常数、流程控制等基本内容,之所以有编程语言之说,就是因为编程和说话一样,都是用某种语法和词汇对自己想法的表达,程序员掌握的“语法和词汇”越多,就越能够让程序完整顺畅地体现自己的想法。3.1 赋值语句 = 对象属性或变量 = 表达式 含义:将等号右边表达式的值传送给等号左边的变量或者对象属性 如:form1.caption=”两数相乘”3.2 程序的书写规则1 注释:程序员可以使用注释来说明自己编写某段代码或某个变量的目的,便于阅读理解程序。格式1: 注
2、释文字 格式2:Rem 注释文字说明:注释可以和语句在同一行并写在语句的后面,也可占据一整行。如:下面的语句是赋值语句和注释的示例 Form1.width=300 将窗体的宽度设置为3002 断行:将长语句分成多行。 续行符 “ _”(一个空格紧跟一条下划线)如:strtemp=”问君归期未有期,”& _ ”巴山夜雨涨秋池。”& _ “何当共剪西窗烛,”& _ “却话巴山夜雨时。”注意: (1) 在同一行内,续行符后面不能加注释(2) 续行符不应将变量名和属性分割在两行(3) 原则上,续行符应加在运算符的前后3 将多行语句写在一行上一行中写下多条语句,可用“:”作为分割符。如:Form1.wi
3、dth=300:temp=form1.width:form1.caption=”你好!”3.3 变量变量是指程序运行中其值可以变化的量。一、变量的命名规则: 在Visual Basic中命名一个变量要遵循如下的规则,否则系统不能正确的辨识。 必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,不能在变量名中出现句点”。”、空格或者嵌入下列字符:!、#、$、%、&。 变量名最长为255个字符。 大小写字母同等对待,不能使用系统保留字 在同一个范围内变量名必须是唯一的。二、变量的声明: 所谓声明一个变量即事先将变量的有关信息通知程序,以便系统可以确定变量的存储格式。在一般的高级语言中,使
4、用变量必须遵循“先声明,后使用”的原则,但在VB中,变量在使用时不一定 “先声明,后使用”,它有显式声明、隐式声明之分。隐式声明:即不声明而直接使用,变量以Variant类型处理。 显式声明:情况一 是在程序开头加入 Option Explicit强制显式声明语句; 情况二 是不加强制显式声明语句,对变量声明。格式: Static|Dim 变量名 AS 类型其中:AS 类型表示可缺省,类型为数据类型 Static 定义的变量为静态变量 Dim 定义的变量为一般变量 当执行过程时,用Dim定义的变量初值为0。而用Static定义的变量除第一次调用时初值为0,以后变量不会被初始化。如: sub f
5、orm_click() dim temp as integer temp=2 显式声明情况二 a=4 隐式声明 endsub 显式声明情况一option explicitsub form_click() dim a as integer dim b as integer a=4 b=5 end sub 用Static 声明变量 sub form_click () static a as integer a=a+1 print a end sub三、变量的数据类型: VB提供了6类12种标准数据类型,还可以由用户自定义数据类型。我们首先介绍标准数据类型:数值型、字符型、逻辑型、日期型、对象型、变
6、体1数值(Numeric)数据类型整型数、浮点数、货币型数、字节型数(1)整型数:是指不带小数点和指数符号的数,整型数运算速度快、精确,但表示数的范围小。整型Integer(%): 存储长度为2个字节(16位), 数的表示范围是-32768+32767。 长整数Long(&): 存储长度为 4个字节(32位),范围是-21474836482147483647。(2)浮点数:浮点数由三部分组成:符号、尾数(Q)以及指数(J),即QE(或)J。指数分别用“E”表示单精度、“D”表示双精度。浮点数的符号均占1位。 单精度浮点数Single(!):以4字节形式存储(32位),可以精确到7位十进制数,而
7、单精度数的范围如下: 负数的范围是:-3.402823E+38-1.401298E-45。 正数的范围是:+10401298E-45+3.402823E+38。 双精度浮点数Double(#):以8字节形式存储(64位)。可以精确到1516位十进制数。而双精度数的范围如下: 负数的范围是: -1.797693134862315D+308-.9406564584112465D-324 正数的范围是: +4.940656458412465D-324+1.797693134862315D+308浮点数表示的数的范围大,但有误差,在做浮点数的运算时,应尽量使每一次运算的结果都在有效位数范围内;尽量不要
8、使两个相差很大的数值直接相加或相减。(3)货币型数:Currency():是定点数,在内存中存储为 64 位(8个字节)整型的数值形式,其小数点左边有 15 位数字,右边有 4 位数字。 范围: -922,337,203,685,477.5808 922,337,203,685,477.5807。Currency 数据类型在货币计算与定点计算中很有用,因为在这种场合精度特别重要。(4)字节型数:Byte:是二进制数。其存储为单精度型、无符号整型、8 位(1个字节)的数值形式,范围在 0 至 255 之间。Byte 数据类型在存储二进制数据时很有用。2字符(String)数据类型String($
9、):存放字符数据,所谓字符型数据就是用双引号括住的字符串,如:Abcde、Visual Basic 欢迎你!等。VB有两种字符串:变长字符串和定长字符串。在字符串中每个字符占1个字节,字符数据的范围以字符串长度的大小来度量。变长字符串所占的空间大小为10个字节加字符串,最多可包含大约20 亿(231)个字符;定义格式:DIM 变量名 AS String如:DIM strtemp AS string 定长字符串所占字节就是字符串的长度,可包含1大约64K(216)个字符。定义格式:DIM 变量名 AS String *字符串长度如:DIM strname AS string *83逻辑(Bool
10、ean)数据类型Boolean: 该类型变量主要用来进行逻辑判断,它的存储位数是16位。 数据只有两个值:True(真)或False(假)。注意:在VB中,逻辑数据可以转换成整型数据。这时,True转换为1,False转换为0;而当其他类型的数据转换成逻辑数据时,非零数转换成True,0转换为False。4日期(Date)数据类型Date: 是用来表示和存储日期和时间的数据,它是按8个字节的浮点数存储。任何字面上可被认作日期和时间的字符(除汉字外),只要用磅号(#)括起来都可以认作为日期型数据。 如:#1 Jan,97# 、#January 1,1999# 、#199981 12:30:12P
11、M# 日期表示的范围是:从公元100年1月1日 9999年12月31日; 时间表示的范围是:从0:00:00 23:59:59。 注意:当其他数据转换成日期型数据时,小数点左边的数值代表日期,而小数点右边的数值代表时间:0为午夜12点,0.5为中午12点;负数代表的是1899年12月31日之前的日期和时间。 【例3.1】 下面程序在用户单击窗体后,可显示出由数据转化的日期和时间。 (教材P30例2.1)5对象(Object)数据类型Object: 存储为32位(4个字节)的数值形式,作为对象的引用。利用Set语句,声明为Object的变量可以赋值为任何对象的引用。如: Sub form_cli
12、ck() Dim Temp AS Object Set Temp =form1 End Sub6变体(Variant)数据类型Variant:也称为万用数据类型,这是一种特殊的数据类型,它对数据的处理(即所需类型)可以根据上下文的变化而变化,除了定长的String数据及用户定义的类型之外,可以处理任何类型的数据而不必进行数据类型的转换。是对所有未定义的变量的缺省数据类型的定义。Variant类型的数据可以根据运算的实际情况而“变体”, VB提供了一个函数VarType专门用来检测Variant中保存的数据类型,例如:VarType(123)的返回值为2,表示为整型。 VarType函数的返回值
13、与数据类型的关系如表3.1所示。表3.1 VarType函数数据类型检测内部常数VarType返回值数据类型 vbEmpty vbNull vbInteger vbLong vbSingle vbDouble vbCurrency vbDate vbString vbObject vbError vbBoolean vbVariant vbDataObject vbByte vbArray012345678910111213178192 空(Empty) 无效(Null) 整型(Integer) 长整型(Long) 单精度(Single) 双精度型(Double) 货币型(Currency)
14、日期型(Date) 字符型(String) OLE自动化对象(OLE Automation Object) 错误(Error) 逻辑型(Boolean) 变体数组(Variant) 非OLE自动化对象(Non-OLE Automation Object) 字节型(Byte) 数组(Array)3.4 常数 常数是在程序运行中其值不变的量。 Visual Basic中包含三种常量:文字常量、符号常量、系统常量。1文字常量 包含数值常量、字符串常量、逻辑型常量和日期型常量。2符号常量用一个符号(一个字母组合)来代替长长的数字常量 声明格式: Const 字符常量名 AS 类型=表达式 其中: 字符
15、常量名:是有效符号名,其命名规则与变量名相同。一般使用大写,尽量选择易记、有意义的名称。 AS 类型:说明了该常量的数据类型,若省略该选项,则数据类型由表达式决定。也可用在符号常量名后加类型说明符来决定。 表达式:可以是数值常数、字符常数、时间日期以及运算符组成的表达式。 注意: 表达式中不能调用函数,即其中不能有函数元素。 可以用先前定义过的符号常数定义新常数。 如:Const PI=3.1415926 声明了常量PI,代表3.1415926 ,单精度型 Const MAX As Integer =&H21ED 声明了常量MAX,代表十六进制整型数21ED Const COUNT# =53.
16、78 声明了常量COUNT,代表53.78,双精度型 Const BIRTHDAY=# 3/22/72# Const PI 2= PI * 23系统常量 是由VB提供的并能够识别的、具有专用名称和作用的常数。VB6.0提供了如:颜色常数、控件常数、窗体常数、绘图常数、图形常数、键码常数等32类近千个常数,这些常数位于VB的对象库中。如下表:表3.2 VB的常用颜色常数常 数值描 述常 数值描 述 vbBlack vbRed vbGreen vbYellow &H0&HFF&HFF00&HFFFF黑色红色绿色黄色vbBlue vbMagentavbCyanvbWhite&HFF0000&HFF0
17、0FF&HFFFF00&HFFFFFF蓝色洋红青色白色3.5 表达式与运算符表达式是指由变量、常量、函数和运算符按一定的规则组成的一个字符序列。在VB6中可以进行4种运算:算术运算、比较运算、连接运算和逻辑运算。3.5.1 算术运算算术运算就是加减乘除及指数等数学运算。表3.3显示了VB6所有的算术运算及示例: 表3.3 算术运算符运算符说明示例优先级-取负值Test=-7 高由高到低自左到右括号优先 低指数Test=32 表示3的2次方,结果为9*,/乘法, 浮点数除法Test=37*16Test=37/16 结果为2.3125整数除法Test=3716 结果为2先四舍五入为整数后再相除。M
18、od求余数Test=37 mod 16 结果为5。先四舍五入为整数后再求余数。+,-加法、减法Test=37+16Test=37-16 如:设X=2.5,A=7,Y=4.7,求下面表达式的值。 X+(A3)*(X+Y)2-3.5 MOD 2/2 表达式必须写在同一水平上 2 7.2 51.84 103.68 1 0 106.18 106.183.5.2 比较运算比较运算(关系运算)就是比较大小,结果为真(True)、假(False)和Null。 表3.4 比较运算符运算符说明大于=大于或等于=小于或等于=等于不等于运算规则: 如果两个操作数都是数值型,则按其大小比较。 如果两个操作数都是字符型
19、,则按字符的ASCII码值从左到右一一比较,即首先比较两个字符串的第一个字符,其ASCII码值大的字符串大;如果第一个字符相同,则比较第二个字符,依此类推,直到出现不同的字符为止。 如果一个表达式是数值型,另一个表达式是不能转换成数值的字符型,则不能进行比较。 关系运算符的优先级相同,运算时从左到右依次进行。 两个操作数中有一个是Null,则运算结果为Null。 关系表达式:用关系运算符及括号将操作数连接的式子 如:(31)=(42);0=(42);18.53)And (62) 结果为 True (73)Or (26) 结果为 True Not(26)And (62) 结果为 True (aA
20、)Xor (bB) 结果为 False (7.83.2)Eqv (16.87.2) 结果为 True (16.37.0)Imp(4.519.2) 结果为 False (4.519.2)Imp(16.57.0) 结果为 True注意:逻辑运算一般是对关系表达式或逻辑量进行的,但也可以对数值进行运算。在对数值进行运算时,是以数字的二进制值逐位进行逻辑运算的。如: 10 And 710的二进制数为1010;7的二进制数为0111,对它们逐位进行逻辑运算得到二进制数为0010,结果是十进制数2。3.5.5 运算的优先顺序当一个表达式中出现多种运算符时,即同时出现算术、关系和逻辑时,如何决定运算的次序呢
21、?这就需要考察一下这三类运算符的优先次序。优先级高的运算符先运算,运算符的优先级相同时,从左向右进行运算。 VB运算符的优先级见下表:表3.7 VB运算符的优先级优先级123算术运算符关系运算符逻辑运算符1-(负号)=Not2And3*,/Xor5Mod=Imp7& 如:用一个逻辑表达式表示满足闰年的条件。解:闰年的条件是: 能被4整除,但不能被100整除的年份都是闰年。 能被100整除,又能被400整除的年份是闰年。 用Year表示一个年份,则有如下的判断条件:Year Mod 4=0 And Year Mod 100 0 Or Year Mod 400=03.6 流程控制语句程序的执行就象
22、水在管道中流动,如果不加以控制,只能从上流到下。使用控制结构就可控制程序执行的流程。在VB中,控制程序执行的基本结构有三种:顺序结构、选择结构和循环结构。程序中所体现出的“智能”就是通过条件判定和循环语句来实现的。下面我们就要自己动手编程了,首先学习算法的表示,再学习三种基本结构。3.6.1 算法的表示算法:即对一个问题的解决方法和步骤。任何一个问题能否用计算机解决,一个关键的步骤就是看能否设计出它的算法,有了合适的算法,再使用合适的计算机语言,就能方便地编写出程序来。一、 算法的特点(1) 有穷性:一个算法必须在执行有穷个计算步骤后终止;(2) 确定性:一个算法给出的每个计算步骤,必须都是精
23、确定义的、无二义性的;(3) 能行性:算法所要执行的每一个计算步骤,都是可以在有限时间内做完的;(4) 输入:一个算法一般要求有一个或多个输入信息,这些输入信息是算法所需的初始数据;(5) 输出:一个算法一般要求有一个或多个输出信息,这些信息一般就是对输入信息计算的结果。二、 算法的表示 表示算法的形式很多,如传统流程图、自然语言、N-S结构化流程图等等。我们用直观、形象的流程图来表示算法。 起止框,表示算法的开始或结束。 处理框,表示初始化或运算赋值等操作。 输入输出框,表示数据的输入输出操作。 判断框,表示根据条件决定程序的流向。 流程线,表示流程的方向。 【例3.2】:将某班级中计算机、
24、英语、数学三门课成绩总和大于等于270分的学生发给奖学金200元,并显示这些学生的姓名、奖学金。若成绩总和小于270分,则显示该学生没有奖学金。当从键盘输入完最后一名学生的成绩后,输入一个特殊符号“#”。 如何着手编程?1. 分析问题,理清解题思路2. 画出流程图3. 设计程序界面4. 编写必要的应用程序5. 运行、调试 分析: 由键盘输入学生的姓名、三门课的成绩。 判断是否输入了一个特殊符号“#”。是,程序结束。否,继续执行。 求三门课的总成绩。 判断总成绩是否大于270分。否,显示没有奖学金。是,继续执行。 奖学金发200元,显示该学生的姓名和奖学金。 再次输入学生的姓名,流程返回到继续执
25、行。 流程图: 图3.1 例3.1流程图3.6.2 顺序结构顺序结构是一种最简单、最基本的程序控制结构,任何程序必须包含顺序结构。它的特点是,在这个结构内各语句块是按照它们出现的顺序从上到下依次执行的。 图3.2顺序结构例:实现两数A,B交换。 T=A A=B B=T3.6.3 选择结构条件判定语句在程序运行中起的是水龙头的作用,只有满足条件的,才会执行某些语句,否则程序将按照另一个流程执行。 图3.3 选择结构VB支持的条件判定结构有3种,它们是: If Then If Then Else Select Case一、If Then结构1 只选择执行一条语句:If 条件 Then 语句块1 E
26、lse 语句块2如:If x=y then x=x+y : sum=sum+x else x=x-y : sum=sum-x注:这条语句必须在一行中写完2 需要执行多条语句: If 条件 Then 语句块 End If 如:If Name = “Text1” Then Text1.text = “欢迎使用Visual Basic 6.0系统” End If二、If Then Else结构 使用If Then Else结构可以从几个程序流程分支中选择一个执行。 格式: If 条件 then 语句块 ElseIf 条件2 Then 语句块2 ElseIf 条件3 Then 语句块3 Else 语句块n End If 流程图: 图3.4 If Then Else结构除此之外,条件还可以是下面的形式: Type Of 控制变量 Is 对象类型它测试某个控制变量是否为某种对象类型,如果是,则条件满足,返回True;否则条件不满足,返回False。例如:If Type Of Listvar Is ListBox Then 表示如果Listvar控制是一个列表框类型的控制,则执行Then后面的语句块;否则执行下面的语句。 【例3.4】判断某年是否为闰年。计算闰
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2