550 likes | 751 Views
Visual Basic 程序设计教程. 侯妙乐 2004 年 9 月. 第 3 章 Visual Basic 的语言基础. 3.1 基本字符集. 3.2 基本数据类型. 3.3 常量. 3.4 变量. 3.5 运算符与表达式. 3.6 常用内部函数. §3.1 基本字符集. 1 、字符集 数字 0-9 英文字母: a ~z, A~Z 特殊字符 : 2 、关键字:又称保留字,在语法上有着固定的含义。如: print, close 等 3 、标识符:以字母开头,不能和关键字重名,用于给变量、过程和对象等起名。.
E N D
Visual Basic 程序设计教程 侯妙乐 2004 年 9月
第3章 Visual Basic的语言基础 3.1 基本字符集 3.2 基本数据类型 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 常用内部函数
§3.1 基本字符集 • 1、字符集 • 数字0-9 • 英文字母:a ~z, A~Z • 特殊字符: • 2、关键字:又称保留字,在语法上有着固定的含义。如:print, close等 • 3、标识符:以字母开头,不能和关键字重名,用于给变量、过程和对象等起名。
3.2 基本数据类型 1、数值型数据(Numeric) 2、字符串型数据(String) 3、布尔串型数据(Boolean) 4、日期型数据(Date) 5、对象型数据(Object) 6、可变类型数据(Variant)
3.2.1 数值型数据 • 整数类型:Integer, Long • 实数类型:Single,Double,Currency • 字节型: Byte
整数类型: 整型(2个字节)和长整型(4个字节) 十进制 八进制(&或&O) 十六进制(&H) 特点: 速度快、占用内存少
实数类型(浮点数或定点数) 浮点数:[符号]x1…xn. x1…xn[E/D] [符号] x1…xn • 单精度浮点型(single):( 4个字节,可精确到7位) • 双精度浮点型(double): ( 8字节,可精确到15位) • 货币型(currency): ( 8个字节,用于表示定点数,小数点左边有15位数字,右边有4位数字,用于精度特别重要的场合)
3.2.2 字符串型数据(string) 字符串是一个用双引号括起来的序列,由中文或西文组成。如:“hello” “1” “测绘” • 双引号不输出,只起定界的作用 • 字符串中:大小写是有别的 • 字符串中如果还包含双引号,则可以连续使用双引号
3.2.3 布尔型数据 占2个字节,用于逻辑判断。只有True和False两个取值 • 当数值型数据转换为布尔型数据,0变为False,1变为True; • 当布尔型数据转换为其他,False变为0, True 变为1;
3.2.4 日期型数据 • 占8个字节 • 日期范围:100年1月1日- 9999年12月31日; • 时间范围:0:00:00- 23:59:59 • 用数字符号#括起来:#Sep. 6, 2004#; • 用数字序列来表示(不常用):
3.2.5 对象型数据 占4个字节:用于引用应用程序中的对象。
3.2.6 可变型数据 • 占用存储空间较多。除固定长度字符串数据及用户定义类型外,可以包含任何类型的数据。还包含三种特殊的数据: • Empty:未赋值的可变类型变量的值; • Null:指示变量不含有有效数据; • Error: 指示在过程出现错误时的特殊值; • 用VarType或TypeName函数来显示数据的类型
3.3 常 量 • 常量指在程序运行中,其值不发生改变的量。 1、直接常量 2、用户自定义符号常量 3、系统定义符号常量
3.3.1 直接常量 • 直接常量就是在程序代码中,以直接明显的形式给出的数。 • 字符型常量 “aaaa” • 数值型常量 12345 • 布尔型常量 True • 日期型常量 #11/10/2001#
3.3.2 用户自定义符号常量 • Const <常量名> [As <类型> ]=<表达式> • 例: • Const Pi = 3.14159 • Const MyString = “friend” • Const Max As Integer= 9 • Const Pi = 3.14, Max=9, MyStr=“Hello”
3.3.2 用户自定义符号常量 • 只作用于某个过程,则在该过程内部声明该符号变量; • 只作用于某个模块,则在模块的声明段中声明该符号变量; • 在整个应用程序中有效,则应在标准模块的声明段中声明,并在Const 前放public关键字; • 符号常量是有意义的名字,它用于取代永远不变的数值或字符串。
3.3.3 系统定义符号常量 • 除了用户自定义的符号常量外,VB中还提供了应用程序和控件的系统定义符号常量; • 这些符号常量的定义可以从“对象浏览器”获得; • 使用对象浏览器可以显示包括当前工程及对象库在内的过程、模块、类、属性和方法等的描述信息; • 在整个应用程序中有效,则应在标准模块的声明段中声明,并在Const 前放public关键字; • 符号常量是有意义的名字,它用于取代永远不变的数值或字符串。
3.4 变 量 每个变量都有名字和数据类型,通过名字来引用一个变量,而通过数据类型来确定该变量的存储方式。 1、变量的命名规则 2、变量的声明
3.4.1 VB变量的命名规则 • 每一个字符必须是字母,不区分大小写(A和a指同一个变量); • 长度不超过255个字符; • 不可以包含小数点或者内嵌的类型声明字符; • 不能使用关键字; • 不能与过程名或符号常量同名; • 习惯上,将组成变量的每个单词的首字母大写,其余字母小写。
3.4.1 VB变量的命名规则 • strMyString • intCount • MyForm • x • a+b • @
3.4.2 变量的声明 • 在使用变量之前,要先声明变量名和类型,以便系统为其分配存储单元。 • 格式: • Dim | Private | Static | Public <变量名> [as <类型>] • Dim:窗体模块、标准模块或过程中; • Private :窗体模块或过程,仅该过程或模块有效; • Static :在过程中定义静态变量; • Public:在标准模块中声明全局变量;
3.4.2 强制显式声明 • 在Vb中,凡是使用的对象最好先定义。 • 要强制显式声明,可在窗体模块或标准模块的声明段中加入 Option Explicit; • 在“工具”的“选项”中设置
3.5 运算符与表达式 用运算符将运算对象连接起来即构成表达式。 1、算术 2、字符串 3、关系 4、布尔 5、运算顺序
3.5.1 算术运算符和算术表达式 • +、 –、 、/、-同数学中的概念 • 乘方运算^:10^2, 10^(-2) ; • 整数除法(取整)\ :10\4 10.4\4.3; • 取余运算(取模运算)Mod:10 Mod 3 -11 Mod -3; • 运算顺序: ^ - ( /) \ Mod ( + –)
3.5.2 字符运算符和字符表达式 • &、 + ; • 作用都是将两个字符串连接起来,合并成一个新的字符串; • &两边的操作数不要求都是字符串,可以自己转换; • +两边的操作数应均为字符串; • 例子: • “Hello” & “World” • “Hello” & 123 • “Hello” + 123
3.5.3 关系运算符和关系表达式 • =、 <>或>< 、 < 、 > 、 > = 、 < = 、 Like 、 Is; • 比较的结果有True和False • 如果两个操作数是数值型的,则按大小比较; • 例:2=3; • 如果两个操作数是字符型的,则按ASCII码比较; • 例:a=b; • 优先级相同
3.5.4 布尔运算符和布尔表达式 • Not、And 、Or; • 例:Not(3>8); • 例: (3>8) And (5<6); • 例: (3>8) Or (5<6);
3.5.5 表达式的运算顺序 • 函数运算 • 算术运算 • 关系运算 • 布尔运算 • 例如:设a=3,b=5,c=1,d=7,求下列表达式的值。 • a+b>c+d And a>=5 Or not c>0 Or d<0
3.6 常用内部函数 1、数学函数 2、字符串函数 3、随机函数 4、转换函数 5、日期和时间函数 调用格式: <函数名> ( [参数表] )
3.6.1 数学函数 • 数学函数用于各种数学运算, • 包括:三角函数,求平方根、绝对值、对数、指数等等。
绝对值函数 • 函数调用:Abs(x) • 作用: 返回x的绝对值。 • 参数:可以为任意数值。 • 例: • Abs(10) • Abs(-10)
三角函数 • 函数调用: Sin(x) ,Cos(x),Tan(x),Atn(x) • 作用: 返回x的正弦、余弦、正切和反正切值。 • 参数:以弧度为单位。 • 例: • Sin (1) • Cos(1) • Tan(1) • Atn(1)
平方根函数 • 函数调用: Sqr(x) • 作用:返回x的平方根。 • 参数: x的值大于等于0 。 • 例: • Sqr(16) • Sqr(Abs(-16))
指数和对数函数 • 函数调用: Exp(x) Log(x) • 作用: • Exp(x)返回以e为底的指数函数,即ex; • Log(x)返回以e为底的自然对数,即lnx。 • 参数: x的值大于等于0 。 • 例: • Exp(1) • Log(10)
符号函数 • 函数调用: Sgn (x) • 作用:当x为正数时,返回1;为0时 ,返回0;当x为负数时,返回-1 。 • 参数: x为任意数 。 • 例: • Sgn(10) • Sgn(-10) • Sgn(0)
取整函数 • 函数调用: Int (x) Fix(x) • 作用: Int (x)返回不大于x的最大整数; • Fix(x)返回x的整数部分。 • 参数: x为任意数 。 • 例: • Int (3.6) Int (-2.3) • Fix(5.6) Fix(-5.6)
3.6.2 字符串函数 • 字符串函数用于对字符串进行处理。
删除空白字符函数 • 函数调用: Ltrim(s) Rtrim(s) Trim(s) • 作用: 去掉字符串s左边、右边和两边的空白字符,返回值仍然为字符串。 • 参数: s为字符串。 • 例: • Ltrim(“UUabcU ”)=“abcU” • Rtrim(“UUabcU ”)=“UUabc” • Trim(“UUabcU ”)=“abc”
取字符串函数 • 函数调用: Left(s, n) Right (s, n) Mid(s,p,n) • 作用: 取字符串s左边的n个字符; • 取字符串s右边的n个字符; • 从字符串s 的第p个字符开始取n个字符。 • 参数: s为字符串,n和p为正整数。 • 例:S=“Hello” • Left(s,2)=“He” • Right (s,2)=“lo” • Mid(s,3,2)=“ll”
字符串长度函数 • 函数调用: Len(s) • 作用: 返回字符串s的长度。 • 参数: s为字符串 • 例:s=“Hello” • Len(s) = • Len(“Yes”)=
生成字符串函数 • 函数调用: String(n,s) • 作用: 取字符串s的第一个字符构成长度为n的新字符串,返回新的字符串。 • 参数:n为正整数, s为字符串 • 例:s=“Hello” • String(2,s) = • String(2,”Yes”) =
生成空格函数 • 函数调用: Space(n) • 作用: 返回n个空格。 • 参数:n为正整数 • 例: • Space(3) =“UUU”
搜索子字符串函数 • 函数调用: InStr([n], s1, s2) • 作用: 在字符串s1中第n个位置开始查找字符串s2 开始的位置,如果n 不写,则默认为0,返回正整数。 • 参数:n为正整数, s1和s2 为字符串。 • 例: • InStr(“abcde”,”cd”) =
字母大小写转换函数 • 函数调用: UCase(s) , LCase(s) • 作用: UCase(s)将小写转换为大写, LCase(s)将大写转换为小写。返回字符串。 • 参数:s 为字符串。 • 例: • UCase (“Aab”) =“ABC” • LCase (“Aab”) =“abc”
3.6.3 随机函数 • 随机函数常用于测试、模拟及游戏程序中,用于产生随机数。
随机函数 • 函数调用: Rnd[(x) ] • 作用: 产生0-1之间的单精度随机数。 • 参数:x为整数。 • 例: • Print Rnd(-2) • Print Rnd(2) • Print Rnd(0) • Print Rnd
Randomize语句 • 函数调用: Randomize [n ] • 作用:用于消除随机数反复出现的情况 • 参数:n为整型数,作为随机发生器的种子。
3.6.4 转换函数 • 转换函数用于数据类型或形式的转换,包括整型、实型、字符串型之间的转换和ASCII码之间的转换。
将字符转换成ASCII码函数 • 函数调用: Asc (s) • 作用:返回字符串中第一个字符的ASCII码值。 • 参数:s为字符串。 • 例: • Asc (“ABC”) • Asc (“abc”)
将ASCII码转换成字符函数 • 函数调用: Chr(x) • 作用:将x的值转换为对应的ASCII字符。 • 参数:s为ASCII 码的取值范围。 • 例: • Chr(66) • Chr(100)