320 likes | 542 Views
Visual Basic 程序设计 第 3 章 BASIC 语言基础. 信息学院 魏洪涛. 主要内容. 基本数据类型:数值型、字符型、日期型、布尔型、变体型 常量与变量及其定义 不同数据类型的运算 表达式 内置函数. 基本数据类型. 均指二进制的位,尾数和指数都含 1 位符号位。 尾数在(- 1 , 1 )之间。. 基本数据类型 ( 续 ). 常量. 直接常量 数值常量,如 : 3.12 , -5 , 1.3E-8 日期时间常量,如: #10/12/2002 10:30# 字符串常量,如: "I'm fine" , "99.9"
E N D
Visual Basic 程序设计第3章 BASIC 语言基础 信息学院 魏洪涛
主要内容 • 基本数据类型:数值型、字符型、日期型、布尔型、变体型 • 常量与变量及其定义 • 不同数据类型的运算 • 表达式 • 内置函数
基本数据类型 • 均指二进制的位,尾数和指数都含 1 位符号位。 • 尾数在(-1,1)之间。
常量 直接常量 • 数值常量,如: 3.12,-5,1.3E-8 • 日期时间常量,如:#10/12/2002 10:30# • 字符串常量,如:"I'm fine","99.9" • 逻辑常量:True,False • 用符号表示的VB常量,如:vbCrLf回车换行 chr(13) & chr(10)vbYesNo =4,在消息框msgbox中显示 Yes 和 No按钮
常量 符号常量分VB已定义的符号常量和自定义符号常量。 • VB常量,如:vbCrLf回车换行 chr(13) & chr(10)vbYesNo =4,在消息框msgbox中显示 Yes 和 No按钮 • 好处:便于记忆,便于程序阅读 • 查阅定义:在对象管理器中
声明常量的好处: 便于识别(使用有意义的符号,如PI) 便于修改(只需修改定义部分) 减少差错:避免输入错误,便于查错 例: Const PI=3.1415926 Const VB as string _ = “Visual Basic“ Public Const conMax=99 Const PI2=PI*2 Const T911= #2001-9-11# 自定义符号常量-声明 [Public|Private] Const [as <类型>] <常量名>=<常量表达式>
语法 [Public|Private] Enum 类型名 <成员名> [=常量表达式] <成员名> [=常量表达式] …… End Enum 如果没有常量表达式,则第一个成员等于0,后一个成员等于前一个成员加1。 常量表达式为Long类型 类型定义后,可以用在变量声明语句中 例如: Enum Season Spring =1 Summer Fall Winter End Enum 结果:Season是个符号常量集合,其中包含4个符号常量:Spring=1,Summer=2 Fall=3,Winter=4 使用:Dim jd As Season 枚举类型-定义符号常量集合 在对象浏览器中观察自定义的类型
变量及其命名规则 • 变量分内存变量和属性变量。 • 属性变量即对象的属性,其名称与类型是确定不变的,例如Caption属性,其变量名是对象名.Caption,而其类型为String。 • 一般变量即指内存变量,其名称与类型是由程序员定义的。 • 变量名不能以数字开始,不能用VB的保留字 • 变量名只能由字母、数字和下划线组成 • 变量名可以使用中文,但较少见。
变量的声明 • 变量的声明语句: Dim|Public|Static <变量名> [as <类型>] • 显式声明语句: Option Explicit 该语句强制变量必须先声明才能使用 • 例: Dim x As Double Dim i As Integer, j As Single, s As String 或: Dim i%, j!, s$ 注意:如声明 Dim x,y As Single 则x为Variant型(变体型),y才是Single型
表达式 • 常量、变量、函数用运算符连接而成 • 单独一个常量,或变量,或函数都可以看作是一个表达式 • 运算结果称为表达式的值,该值的数据类型即为表达式的类型。
运算符 • 数值运算:+ - * / (加减乘除) \ (整除) , 如: 10\3= 3 mod (求余数),如: 12 mod 5 = 2 ^ (幂), 如: 3^4 =81 ( 34) • 比较运算: < <= = >= > <> • 连接运算: & (或+) • 逻辑运算: not and or xor equ imp • VB内置函数
数值运算 • 算术运算:+ - * / (加减乘除) • 整除:\ 如 11\3,结果为 3 求余数:mod 如 14 mod 5 ,结果为 4 幂运算:^ 如 3^4 即 34,结果为81 注意:整除(\)和模运算符(mod)两侧遇小数点时,先四舍五入,再运算。如:10.5\3.5=11\4=27.2 mod 3.5=7 mod 4=3
数值运算的精度 • 数值表达式的运算结果一般为Double或Long类型。但如果含Single类型的变量或常量,则可能降低其运算精度。 • 数值常量也可以使用类型后缀(%,&,!,#),从而改变其参加运算的表达式的运算精度。例如:?1/3 输出 .333333333333333? 1/3! 输出 .3333333 其中3!表示单精度常数3,不是3的阶乘!
日期型数据的运算 • 日期型数据可以加减天数(可含小数),结果仍为日期型。例如:#2005-9-25# - 10 • 两个日期型数据之差为两个日期之间相隔的天数。例如: #2005-9-25# - #1986-5-20# • 日期型数据可以看作一个数值型数据,即该日期与 #1899-12-30 00:00# 之间相差的天数,其中的整数部分为日期,小数部分为时间。该数值称为日期的 “系列数”。例如,用单精度数显示#1900-1-1 6:00# :? Csng(#1900-1-1 6:00#) 输出: 2.25
比较运算 • 运算: < <= = >= > <> • 比较结果为 True 或 False • 双字符运算符( <=、>= 和 <> )两字符之间不能有空格,也不能写成 =<、=>、> < • 字符型数据按其内码(Unicode)大小比较Unicode:2字节无符号整数,国际通用码。 • ASCII码表中的符号,码值不变,位长16。 • 注意:对浮点(单精度、双精度)数不要进行=(等于)比较,如 ?1/3 显示.333333333333333?1/3= .333333333333333 显示False
字符串的连接运算 字符串的连接运算: &(推荐使用) 或:+ (尽量不用) 例如: • “安徽“& “合肥“ = “安徽合肥“ • 在文本框Text1和Text2中分别输入3 和 4,则表达式 Text1.Text+Text2.Text 的值为“34”而不是7。这是因为Text属性 的类型是字符型,而不是数值型。
按位运算 例:
例 14 2 True 2008-8-8 6=1+2+3 9 False True 7 2
VB内置函数 • VB内置函数是可以直接使用的函数 • 内置函数是调用内部子程序后返回的结果,称为函数的值。此值的类型称为函数的类型。 • 不同的函数有不同的参数,要注意每种函数所带参数的个数和类型。 • 函数可以直接放在表达式中,为数据处理带来很大方便。
{ -1 当 x < 0 0 当 x = 0 1 当 x > 0 VB内置函数 数学函数 • 三角函数: 用弧度 Cos(x), Sin(x), Tan(x), Atn(x) 单位:弧度sin235° 表示为 sin(35*3.1416/180)^2 • 对数:Log(x),指数:Exp(x) (以e为底) • 平方根: Sqr(x) • 绝对值: Abs(x) | x-y | 表示为: abs(x-y) • 取整: Int(x) 取≤x的最大整数 Fix(x) 取x的整数部分 • 符号函数Sgn:Sgn(x)=
数学函数的应用实例 • ∵ Tan(π/4)=1∴π=4*Atn(1) = 3.14159265358979可用于定义常量:Const PI= 4*Atn(1) • e = exp(1) = 2.71828182845905 π=4 * Atn(1) e=Exp(1)
VB内置函数 随机函数 • (伪)随机函数 Rnd : 产生0~1之间的1个随机数,0 < Rnd < 1随机函数在测试、模拟、游戏等程序中有广泛应用。例如,要产生一个1~6之间的随机整数,可以用表达式: Int(Rnd*6)+1 • Randomize语句:产生随机数的种子,从而改变随机数序列。
VB内置函数 日期时间函数 • 不带参数: • 日期函数 Date 和 Date$ 取系统日期 • 时间函数 Time 和 Time$ 取系统时间 • 日期和时间函数 Now 取系统日期和时间 • 当天已过时间总秒数 Timer • 带参数(日期型表达式): • Year,Month,Day 分出年月日 • Weekday 算出星期几 • Hour,Minute,Second 分出时分秒
VB内置函数 字符串函数(1) • 取子字符串: • Left函数:取左边 n 个字符,如Left(“Basic”,3)=“Bas” • Right函数:取右边 n 个字符,如Right(“Basic”,2)=“ic” • Mid 函数:取中间 n 个字符,如 :Mid(“Basic”,2,3)=“asi” , Mid(“Basic”,2)=“asic” • 取长度(字符数)函数 Len,如 Len(“Go!”)=3
VB内置函数 字符串函数(2) • 求子串位置 InStr,如 InStr(“Welcome”,”come”) = 4 • 转换函数: • 求值Val,取前面可作数值的字串转换,如 val(“1.23mm”)=1.23而 val(“1.23e2abc”)=1.23e2=123 • 数值转字符 Str:Str(12.3)=“12.3” • 代码→字符 Chr :例如 Chr$(65)=“A” • 字符→代码 Asc : 例如 Asc(“A”)=65 注:中文VB使用双字节的Unicode码
VB内置函数 字符串函数(3) • 空格函数Space(n),返回n个空格 • 字符重复函数 String(n,c),返回n个字串c的第一个字符 • 大小写转换函数: Lcase(s) 转换为小写 Ucase(s) 转换为大写
VB内置函数 转换函数和判断函数 • 转换函数 Cint,CLng,CSng,CStr,… 注意其命名法:C+<类型缩写> • 判断函数 • IsNumeric(表达式) 判是否数值,布尔型 • IsEmpty(变量) 判是否空值,布尔型 • IIf(条件,值1,值2) • Typename(表达式)返回表达式的类型名 • IsDate (表达式)判是否日期,布尔型
VB内置函数 格式转换函数 • 函数格式:Format(<表达式>,<格式字串>) • 功能:将表达式的值按指定格式进行转换。 • 例: • Format(1.2,”00.000”)=”01.200” • Format(Date,”yy.m.d”)=”05.3.8”
语句的书写格式 • 一般情况下,每行一条语句 • 一行多条语句之间用冒号( : )作分隔符,如a=1 : b=2 : c=3 • 长语句分多行书写是,可在换行前加续行符(下划线_),例如: MsgBox “Sum Of 1,2,3,…,100 is “ _ & vbcrlf & x , vbInformation • 注释部分以单引号 ( ‘ ) 开头,止换行