2) 隐式声明
VB中允许变量不经过声明就直接使用,这种称为隐式声明,所有隐式声明的变量都是变体型的。 隐式声明容易造成错误,为了调试程序方便,一般对使用的变量都进行声明,可以在通用声明段使用Option Explicit 语句来强制显式声明所有变量。
(3)常量
1)直接常量
指在程序中直接给出值的数据,如:123、123&、123.45、1.234E2 、123D3分别表示整型、长整型、单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。 八进制常数: 在数值前加&O ,如 &O123 十六进制常数:在数值前加&H ,如&H123
2)用户声明的符号常量
用Const来声明: Const 符号常量名 [As 类型] = 表达式
如:Const PI=3.14159 '声明了常量PI,代表3.14159,单精度型
Const MAX As Integer=&O144 ''声明了常量MAX,代表八进制数144,整型 Const COUNT#=45.67 '声明了常量COUNT,代表45.67,双精度型
3)系统提供的常量
系统定义的常量位于对象库中,在对象浏览器中的Visual Basic(VB)和Visual Basic for Aplication(VBA)等对象库中列出了VB的常量。这些常量可以与应用程序的对象、方法、属性一起使用。 如:Form1.WindowsState=vbMaximized 表示将窗口极大化。
3. 运算符 (1)算术运算符
算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则自动转换为数值类型后再运算。
(2)字符串运算符 (3) 关系运算符
1)如果两个操作数都是数值型,则按其大小比较
2) 如果两个操作数都是字符型,则按字符的ASCII码值从左到右一一比较 3) 汉字字符大于西文字符 4) 关系运算符的优先级相同
5) VB6.0中Like运算符与通配符的使用: ?——表示任何单一字符 *——表示0个或多个字符 #——表示任何一个数字(0 - 9)
[字符列表]——表示字符列表中的任何单一字符 [!字符列表]—— 表示不在字符列表中的任何单一字符
(4) 逻辑运算符
1)若有多个条件时,And必须全部条件为真才为真; Or只要有一个条件为真就为真。
2)如果逻辑运算符对数值进行运算,则以数字的二进制值逐位进行逻辑运算。And运算常用于屏蔽某些位;Or运算常用于把某些位置1。
如:12 And 7 表示对1100与0111进行And运算,得到二进制值100,结果为十进制4。 3)对一个数连续进行两次Xor操作,可恢复原值。在动画设计中,用Xor可恢复原来的背景。
4.表达式
(1)表达式的组成
表达式由常量、变量、运算符、函数和圆括号按一定的规则组成,通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。
(2)表达式的书写规则 1)乘号不能省略
2)括号必须成对出现,均使用圆括号,可以嵌套,但必须配对。 3)表达式从左到右在同一基准上书写,无高低、大小之分。 例:sqr((3*x+y)-z)/(x*y)^4
(3)不同数据类型的转换
操作数的数据类型应该符合要求,不同的数据应该转换成同一类型。在算术运算中,如果操作数的数据精度不同,VB规定运算结果采用精度较高的数据类型。
(4)优先级
同一表达式中,不同运算符的优先级是:算术运算符 > 字符运算符 > 关系运算符 > 逻辑运算符 注意:对于存在多种运算符的表达式,可增加圆括号改变优先级或使表达式更清晰。 4.1 算法概论 1.算法的概念
算法:指用计算机解决某一问题的方法和步骤。
算法分类: 数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。
非数值算法:用于对非数值信息进行查找、排序等。
数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。 非数值算法:用于对非数值信息进行查找、排序等。 2.算法的特征
(1)确定性:指算法的每个步骤都应确切无误,没有歧义。
(2)可行性:指算法的每个步骤必须是计算机能够有效执行、可以实现的,并可得到确定的结果。 (3)有穷性:指一个算法应该在有限的时间和步骤内可以执行完毕的。 (4)输入性:指一个算法可以有0或多个输入数据。 (5)输出性:指一个算法必须有一个或多个输出结果。 3.算法的评价
主要评价指标是:算法是否正确、运行的效率、占用系统资源的多少。
4.算法的描述
一般常用流程框图来描述算法。 5.基本算法结构
“结构化程序设计方法”规定算法有三种基本结构: 顺序结构、选择结构和循环结构 6.算法示例
(1)欧几里德算法——求两个自然数的最大公约数
(2)顺序查找算法—— 在N个字符串集合中,查找有无特定的字符串存在
4.2 顺序结构 1. 赋值语句
赋值语句是任何程序设计中最基本的语句,赋值语句都时顺序执行的。赋值语句的形式为: 变量名 = 表达式
它的作用是计算右边表达式的值,然后赋给左边的变量,表达式的类型应该与变量名的类型一致。 2. 使用说明
(1)当表达式为数值型而与变量精度不同时,强制转换成左边变量的精度;
(2)当表达式是数字字符串,左边变量是数值类型,自动转换成数值类型再赋值,但当表达式中有非数字字符或空串,则出错。
(3)任何非字符类型赋值给字符类型,自动转换为字符类型;
(4)当逻辑型赋值给数值型时,True转换为 -1,False转换为0;反之,非0转换为True,0转换为False; (5)赋值号左边的变量只能是变量,不能是常量、常数符号、表达式,否则报错; (6)不能在一句赋值语句中,同时给各变量赋值;
(7)在条件表达式中出现的 = 是等号,系统会根据 = 号的位置,自动判断是否为赋值号; (8)注意N=N+1 是累加中常见的赋值语句,表示将N变量中的值加1后再赋值给N。
4.3 选择结构(或称分支结构)
1. IF条件语句
(1)If……Then语句(单分支结构 F) 语句形式: 1)If <表达式> Then 语句块 End If
2)If <表达式> Then <语句>
说明:表达式一般为关系表达式、逻辑表达式,也可以为算术表达式,非0为True,0为False;
语句块可以是一句或多句,若用2)表示,则只能是一句语句,若多句,语句间需用冒号分隔,而且必须在一行上书写。
例:已知两个数x和y,比较它们的大小,使得 x大于y: 方法一: if x 方法二: if x 注意:将两个变量中的数进行交换时,必须借助于第三个变量才能实现。 (2)If……Then……Else语句(双分支结构) 语句形式: 1)If <表达式> Then <语句块1> Else <语句块2> End If 2) If <表达式> Then <语句1> Else <语句2> 例: x2 -5 x≠0 3x +2 x=0 (3)If……Then……ElseIf语句(多分支结构) 语句形式: If <表达式1> Then <语句块1> ElseIf <表达式2> Then <语句块2> …… [ Else 语句块 n+1 ] End If 注意 : 1)不管有几个分支,程序执行了一个分支后,其余分支不再执行; 2)ElseIf 不能写成Else If 3)当多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句块 例:已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。 (4)If语句的嵌套 If语句的嵌套是指if 或else后面的语句块中又包含If语句。语句形式: If <表达式1> Then If <表达式11> Then …… End If …… End If 注意: 1)对于嵌套结构,为了增强程序的可读性,应该采用缩进形式书写; 2)If语句形式若不在一行上书写,必须与End If配对,多个if嵌套,End If与它最接近的Emd If配对。 例: 已知x、y、z三个数,比较它们的大小并排序,使得x>y>z. 2. Select Case语句(情况语句) Select Case语句(情况语句)是多分支语句的又一种形式,语句形式: Select Case 变量或表达式 Case 表达式列表1 语句块1 Case 表达式列表2