Download presentation
Presentation is loading. Please wait.
Published byIda Kusumo Modified 6年之前
1
第2 章 程序设计基础 常量、变量、函数及表达式是构成VB应用程序的基本元素,也是程序设计的重要基础知识。学习和熟悉掌握这些元素,对以后的程序设计十分重要
2
数据类型 在使用VB程序处理问题时,会遇到各种不同类型的数据 数据类型 关键字 占用字节数 类型符 范围 数值型 整型 Integer 2
% ~32767 长整型 Long 4 & ~ 浮点 单精度型 Single ! ±1.4E-45~±3.40E38 双精度型 Double 8 # ±4.94D-324~±1.79D308 货币型 Currency @ 字节型 Byte 1 0~255 字符型 String 字符串长 $ 布尔型 Boolean True或False 日期型 Date 1/1/100~12/31/9999 对象型 Object 任何对象引用 变体型 Variant 按需分配
3
关于数据类型的说明 ◇ 不同类型的数据,所占的存储空间不一样,对其的处理方法也不同。只有相同(相容)类型的数据之间才能进行操作,否则就会出现错误 ◇ 不同类型的数据,所占的存储空间不一样,因此选择核实的数据类型,可以节省空间和提高运行速度。例如,表示学生成绩的整数,如果采用整型数要比采用单精度或双精度数占用内存少,而且运算速度会快些 ◇
4
[Public|Private] Const <常量名> [As <数据类型>]=<表达式>
常量(也称常数)是在程序运行期间其值始终保持不变的量 ◆ 一般常量 在程序代码中直接给出的数据 ◇ 数值常量: 321,-463,-85.32,12E-7 ◇ 字符串常量:“Visual Basic”,”13.57”,“02/01/1998”,“” ◇ 布尔常量: True,False ◇ 日期常量: #09/11/2000#,#Jan 1,2001# ◆ 符号常量 在程序中用符号表示的常量,用以增加程序的可读性和可维护性 ◇ 系统内部定义的符号常量: vbBlack(黑色),vbRed(红色) ◇ 用户用Const语句定义的符号常量,必须先声明后才能使用 Const语句的语法格式为: [Public|Private] Const <常量名> [As <数据类型>]=<表达式> 如:Const conPi= ’声明圆周率常数
5
变量及其命名规则 变量是指在程序的运行过程中其值可以改变的量 ◆ 变量的命名规则 ◇ 变量名必须以字母开头
◇ 只能由字母、数字、汉字和下划线组成,不能含有小数点和空格等 ◇ 字符个数不得超过255个 ◇ 不能使用VB的关键字(如语句名、函数名等)作为变量名 ◇ VB不区分变量名中字母的大小写
6
[Dim|Private|Static|Public] <变量名> [As<类型>][,…]
变量的声明 ◆ 声明变量(显式声明) 用Dim、Public、Private或Static语句来声明变量 声明语句的语法为: [Dim|Private|Static|Public] <变量名> [As<类型>][,…] ◇ Dim或Private或Static语句来声明过程级局部变量 ◇ Public语句用来声明公有的模块级变量,Private或Dim语句用来声明私有的模块级变量 例如:Dim sum As Integer ′把sum定义为整型变量 ◆ 隐式声明 不加说明就直接使用变量,此时默认的变量类型为变体型 也允许使用类型符来声明变量的类型,如Num%,Sum!
7
变量的两个重要特点 ◇ “值可变”:当将某个数据存放到一个变量时,就把变量中原有的值“冲”掉,换成新的值。 例如,以下二个赋值语句:
a = 3 a = 8 同一变量在不同时刻可以取不同的值 ◇ “取之不尽”:在运算过程中,如果没有改变该变量的值,那么,不管使用变量的值进行多少次运算,其值始终保持不变。 例如 x = 5 a = 3 + x ′x的值始终保持为5 b = x*x – 4*x
8
表达式 运算是对数据进行加工的过程,运算符是指定某种运算的操作符号 表达式是将常量、变量、函数等用运算符连接起来的运算式
表达式中含有常量、变量、函数和对象等操作数 注:单个的常量、变量或函数都是表达式的特例 表达式的类型由运算符的类型决定。在VB中有5类运算符和表达式: ◇ 算术表达式 ◇ 字符串表达式 ◇ 日期表达式 ◇ 关系表达式 ◇ 逻辑表达式
9
算术表达式 1+2*14 Mod 17\6/2 结果为4 优先级 运算符 名 称 示 例 1 ^ 乘方 3^2 结果为9 2 - 负数 -4
名 称 示 例 1 ^ 乘方 3^2 结果为9 2 - 负数 -4 3 * 乘法 3*2 结果为6 / 浮点除法 3/2 结果为1.5 4 \ 整数除法 3\2 结果为1 5 Mod 求余的模运算 3 Mod 2 6 + 加法 3+2 结果为5 减法 3-2 1+2*14 Mod 17\6/ 结果为4
10
<字符串1> & <字符串2 > [& <字符串3> …]
字符串表达式 字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成,其运算结果为一字符串 字符串表达式的格式为: <字符串1> & <字符串2 > [& <字符串3> …] 格式中的“&”为字符串的连接运算符,用于将前后两个字符串按照其次序连接成一个字符串 除“&”外,还可以用“+”将两个字符串连接成一个字符串,但“+”不能自动将非字符串数据转换成字符串 如:123 & 456 & “abc”的运算结果为“123456abc” 而 “abc”将产生错误
11
日期表达式 日期型表达式由算术运算符“+”、“-”、算术表达式、日期型常量、日期型变量和函数组成 日期型运算有三种情况:
◇ <日期型数据>-<日期型数据> 为两个日期相隔的天数 如:#12/19/1999#-#11/16/1999# 结果为33 ◇ <日期型数据>+<整数> 为该日期加上整数天后的日期 如:#11/16/1999#+ 结果为# # ◇ <日期型数据>-<整数> 为该日期减掉整数天后的日期 如:#11/16/1999# 结果为# #
12
<函数名>([<参数表>])
常用内部函数 函数是一种特定的运算,在程序中要使用一个函数时,只要给出函数名并给出一个或多个参数,就能得到它的函数值。函数是一种用于简化运算、提高效率的求值方式 在VB中,有两类函数:内部函数和用户定义函数 内部标准函数的一般格式为: <函数名>([<参数表>]) VB的内部函数分为数学函数,字符串函数,日期与时间函数和转换函数四大类 函数在使用时应注意: ◇ 函数可在任何允许表达式出现的地方调用 ◇ 应注意参数与函数值的类型和参数的范围 ◇ 允许函数嵌套函数
13
数学函数 函数 返回值类型 功能 示例 结果 Abs 与x相同 x的绝对值 Abs(-4.6) 4.6 Sqr Double x的平方根
3 Sin x的正弦值 Sin(30*3.14/180) 0.499… Cos x的余弦值 Cos(60*3.14/180) 0.500… Tan x的正切值 Tan(60*3.14/180) 1.729… Atn x的反正切 4*Atn(1) … Exp e(自然对数的底)的幂值 Exp(x) ex Log x的自然对数 Log(x)/Log(10) Log10x Int Integer 取不大于x的最大整数 Int(99.8),Int(-99.8) 99,-100 Fix 取x的整数部分 Fix(99.8),Fix(-99.8) 99,-99 Sgn 取x的符号 Sgn(5),Sgn(0),Sgn(-5) 1,0,-1 Rnd Single 产生(0,1)间的随机数 随机数
14
数学函数说明 ◇ 三角函数的自变量单位是弧度,如Sin470应写成Sin(47*3.1416/180)
◇ 函数Int(x)是求小于或等于x的最大整数 例如,Int(2)=2, Int(-2.5)=-3, Int(-3)=-3 利用Int函数可以对数据进行四舍五入。例如,对一个正数x舍去小数位时进行四舍五入,可采用如下式子:Int(x+0.5) 当x=9.4时,Int( )=9;当x=9.5时,Int( )=10 ◇ 随机函数Rnd可以产生一个(0,1)的随机数 使用Randomize语句可以为随机数生成器指定不同的初值或者称为随机数序列的“种子”,这样可以得到不同的随机数序列 Rnd通常与Int函数配合使用生成[a,b]区间范围内的随机整数,可以采用Int((b-a+1)*Rnd+a) 例如,Int(4*Rnd+1)可以产生[1,4]的随机整数
15
例2.1 给定一个两位数(如36)交换个位数和十位数的位置,把处理后的数显示在窗体上
提示:可将第5、6条改为:a=x\10 和 b=x-10*a
16
例2.2 通过随机函数产生两个两位正整数,求这两个数之和并显示出来
17
字符串函数 函数 结果类型 功能 示例 结果 Len(串) Integer 字符串长度 Len(“ABCD”) 4 Left(串,n)
String 取左边n个字符 Left(“ABCD”,3) “ABC” Right(串,n) 取右边n个字符 Right(“ABCD”,3) “BCD” Mid(串,p[,n]) 从第p个开始取n个字符 Mid(“ABCDE”,2,3) Instr(串1,串2) 求串2在串1出现的位置 Instr(“Ababc”,”ab”) 3 String(n,串) 生成n个字符 String(4,”*”) “****” Space(n) 生成n个空格 Space(5) 5个空格 Ltrim(串) 去掉左边空格 Ltrim(“ AB “) “AB “ Rtrim(串) 去掉右边空格 Rtrim(“ AB “) “ AB” Trim(串) 去掉左、右边空格 Trim(“ AB “) “AB” Lcase(串) 转成小写 Lcase(“Abab”) “abab” Ucase(串) 转成大写 Ucase(“Abab”) “ABAB” StrComp(串1,串2) 串1<串2得-1,串1=串2得0,串1>串2得1 StrComp(“AB”,”ABC”) -1
18
字符串函数说明 ◇ 函数Mid(字符串,p[,n]) 从第P个开始取n个字符 例如:Mid(“ABCDEG”,3,2) 结果为 ”CD”
Mid(“ABCDE”,2) 结果为 “BCDE” ◇ 插入字符串语句Mid ◇ 在函数Instr中,f和k均为可选参数,f表示开始搜索的位置(默认值为1),k表示比较方式,若k为0(默认),表示区分大小写;若k为1,则不分大小写 格式:Instr(f,字符串1,字符串2,k) 例如 Instr(3,”A12a34A56”,”A”) 结果为 7 Instr(3,”A12a34A56”,”A”,1) 结果为 4 Instr(”A12a34A56”,”A”) 结果为 1
19
例2.3 先从字符串a中找出某个指定字符(本例为空格),再以此字符为界拆分成两个字符串
问题:将第6条改为:c=Right( ___①___, ___②___ )
20
日期和时间函数 说明:函数WeekDay返回值1~7,依次表示星期日到星期六 函数 结果类型 功能 示例 结果 Date 返回系统日期
Time 返回系统时间 Now 返回系统日期和时间 Day(日期) Integer 返回日数 Day(#2002/9/24#) 24 Month(日期) 返回月份数 Month(#2002/9/24#) 9 Year(日期) 返回年度数 Year(#2002/9/24#) 2002 WeekDay(日期) 返回星期数 WeekDay(#2002/9/24#) 3 Hour(时间) 返回小时数 Hour(#8:3:28 PM#) 20 Minute(时间) 返回分钟数 Minute(#8:3:28 PM#) Second(时间) 返回秒数 Second(#8:3:28 PM#) 28 说明:函数WeekDay返回值1~7,依次表示星期日到星期六
21
类型转换函数 函数 结果类型 功能 示例 结果 Val(x) Double 把数字字符串转换为数值 2+Val(“12”) 14
Str(x) String 把数值数据转换为字符串 Str(5) “ 5” Asc(x) Integer 求字符串中首字符的ASCII码 Asc(“AB”) 65 Chr(x) 将x转换为字符 Chr(65) “A” Cint(x) 将x转换为整型数 Cint( ) 1235 Clng(x) Long 将x转换为长整型数 Clng(325.3) 325 Csng(x) 将x舍入为单精度数 Csng( ) Cdbl(x) 将x转换为双精度数 Cdbl( ) Ccur(x) Currency 将x转换为货币型数 Ccur( ) Cvar(x) Variant 将x转换为变体型数 Cvar(99 & “00”) “9900” Hex(x) 把十进制数x转换为16进制数 Hex(31) “1F” Oct(x) 把十进制数x转换为八进制数 Oct(20) “24”
22
类型转换函数说明 ◇ Val函数将数字字符串转换为数值型数字时,会自动将字符串中的空格去掉,并依据字符串中排列在前面的数值常量来定值,例如:
Val("A12") 值为 0 Val("12A12") 值为 12 Val("1.2e2") 值为 120 ◆ 使用转换函数的示例 Private Sub Form_Click() x = "123" y = a = Chr(Asc(x) + 5) b = Str(Val(x) + 5) c = Val(Str(y) + “5”) Print a,b, c End Sub 运行程序后单击窗体,输出结果是:
23
语句及语法 ◆ VB程序中的语句是执行具体操作的指令,它是VB关键字、属性、表达式及VB可识别符号的集合
◆ 建立程序语句时必须遵守的构建规则称为语法 ◆ 命令格式中的符号约定 为了便于说明,本教材对语句、方法及函数的语法格式中的符号采用统一约定,但这些符号不是语句或函数等的组成部分 字符 含 义 < > 必选参数表示符,尖括号中填写具体内容 [ ] 可选参数表示符,表示方括号中的内容可根据需要选或不选 | 多种取一表示符,含义为“或者选择”,必须选择其中之一 { } 包含多中取一的各项 ,… 表示同类项目的重复出现 … 表示省略了在当前叙述中不涉及的部分
24
代码书写规则 ◇ 如果要在一行中写多条语句,则每条语句之间必须用冒号作为分隔符
例如: Sum=Sum+x : Count=Count+1 ◇ 当一条语句要写成多行时,可使用续行符(一个空格后面跟随一个下划线“_”),将长语句分成多行 例如:Print Text1.Text & Text2.Text & Text4.Text & _ & Left(Text3.Text,3) ◇ 不区分大小写字母 ◇ 各关键字、变量名、常量名、过程名之间一定要有空格分隔 ◇ 使用缩进格式,来反映代码的逻辑结构和嵌套关系,利用Tab键 ◇ 严格按照VB规定的格式和符号编写程序 在VB中使用的分号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。许多程序错误都是由此而起!!!!
25
结构化程序的基本结构 结构化程序设计方法有顺序结构、选择结构和循环结构三种基本控制结构,这三种基本结构具有单入口,单出口的特点
VB支持结构化的程序设计方法,人们可以用这三种基本结构及其组合来描述程序,从而程序结构清晰,可读性好,也易于查错和修改 假 A 真 E E 假 真 A B L B 顺序结构 选择结构 循环结构
26
习题2 1. 单选题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 D,D A,C A B C D 2. 多选题 1 BD 2 CD 3 AC 4 AD 3. 填空题 1 Sin(50* /180) 4 138 (2+x*y)/(2-y*y) 3 a*a-3*a*b/(3+a) 214 x^(3/8)+sqr(y*y+4*a*a/(x+y^3)) 70 2 Int(50+6*Rnd) “45” (x Mod 10)*10+x\10 5 “系统管理数据库”
27
编程及上机调试1 1. 分别输入例2.1到例2.3的程序,观察运行结果与书中给定的结果是否相符
2. 上机验证自己完成习题的答案是否正确。可以借助与窗体单击事件过程来得到程序运行结果 3. 新建一个工程,在窗体的任意位置上创建一个命令按钮,在属性窗口中对该按钮设置属性: Caption(这是命令按钮)、Font(幼圆,粗体,三号)、Visible(False) 在设置过程中,观察命令按钮外观有什么变化。再观察运行后的效果
28
编程及上机调试4 4. 设计程序,在窗体上建立3个命令按钮,如图所示,单击后分别使窗体最大化、还原或最小化。(提示:使用窗体的WindowState属性)
29
编程及上机调试5 5. 设计程序,利用两个文本框输入两个数,单击“计算”按钮时,将两数的平方和显示在第三个文本框中
30
编程及上机调试6 6. 设计程序,在一个文本框中输入一字符串(长度大于2),单击“处理”按钮时,取出该字符串的头、尾各一个字符,合并后显示在第二个文本框中
Similar presentations