Visual Basic 程序设计第3章BASIC 语言基础.ppt
Visual Basic 程序设计第3章 BASIC 语言基础编写:楼诗风 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.主要内容v基本数据类型:数值型、字符型、日期型、布尔型、变体型v常量与变量及其定义v不同数据类型的运算v表达式v内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.基本数据类型类型名称,声明符字节数范围整型Integer ,%2-32768(-215)32767长整型 Long ,&4-231 231-1单精度 Single ,!4尾数24位,指数8位*双精度 Double ,#8尾数53位,指数11位*字符型 String ,$定长用 String*n(n-长度)货币型 Currency,8在2 6310-4 之间*均指二进制的位,尾数和指数都含 1 位符号位。*尾数在(1,1)之间。Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.基本数据类型(续)类型声明类型字节数范围布尔型 Boolean2True(-1)或 False(0)日期型 Date8公元100.1.1 9999.12.31字节型 Byte10 255定长字符型String*n2*n注:赋值时不足时用空格补,超长时截尾变体型Variant(可省)任何类型数据对象型 Object4任何对象引用(指针)Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.常量直接常量v数值常量,如:3.12,-5,1.3E-8v日期时间常量,如:#10/12/2002 10:30#v字符串常量,如:Im fine,99.9v逻辑常量:True,Falsev用符号表示的VB常量,如:vbCrLf回车换行 chr(13)&chr(10)vbYesNo=4,在消息框msgbox中显示Yes 和 No按钮 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.常量符号常量分VB已定义的符号常量和自定义符号常量。vVB常量,如:vbCrLf回车换行 chr(13)&chr(10)vbYesNo=4,在消息框msgbox中显示Yes 和 No按钮v好处:便于记忆,便于程序阅读v查阅定义:在对象管理器中 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.自定义符号常量声明声明常量的好处:v便于识别(使用有意义的符号,如PI)v便于修改(只需修改定义部分)v减少差错:避免输入错误,便于查错例:Const PI=3.1415926Const VB as string _=“Visual Basic“Public Const conMax=99Const PI2=PI*2Const T911=#2001-9-11#Public|PrivatePublic|Private ConstConst as as =Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.枚举类型定义符号常量集合v语法Public|Private Enum 类型名 =常量表达式 =常量表达式 End Enumv如果没有常量表达式,则第一个成员等于0,后一个成员等于前一个成员加1。v常量表达式为Long类型v类型定义后,可以用在变量声明语句中v例如:Enum Season Spring=1 Summer Fall WinterEnd Enum结果:Season是个符号常量集合,其中包含4个符号常量:Spring1,Summer2 Fall3,Winter4使用:Dim jd As Season 在对象浏览器中观察自定义的类型 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.变量及其命名规则v变量分内存变量和属性变量。v属性变量即对象的属性,其名称与类型是确定不变的,例如Caption属性,其变量名是对象名.Caption,而其类型为String。v一般变量即指内存变量,其名称与类型是由程序员定义的。v变量名不能以数字开始,不能用VB的保留字v变量名只能由字母、数字和下划线组成v变量名可以使用中文,但较少见。Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.变量的声明v变量的声明语句:Dim|Dim|Public|Public|Static Static as as v显式声明语句:Option Explicit 该语句强制变量必须先声明才能使用v例: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型 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.表达式v常量、变量、函数用运算符连接而成v单独一个常量,或变量,或函数都可以看作是一个表达式v运算结果称为表达式的值,该值的数据类型即为表达式的类型。Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.运算符v数值运算:+-*/(加减乘除)(整除),如:103=3mod (求余数),如:12 mod 5=2 (幂),如:34=81(34)v比较运算:=v连接运算:&(或+)v逻辑运算:not and or xor equ impvVB内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.数值运算v算术运算:+-*/(加减乘除)v整除:如 113,结果为 3求余数:mod 如 14 mod 5,结果为 4 幂运算:如 34 即 34,结果为81注意:整除()和模运算符(mod)两侧遇小数点时,先四舍五入,再运算。如:10.53.5=114=27.2 mod 3.5=7 mod 4=3 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.数值运算的精度v数值表达式的运算结果一般为Double或Long类型。但如果含Single类型的变量或常量,则可能降低其运算精度。v数值常量也可以使用类型后缀(%,&,!,),从而改变其参加运算的表达式的运算精度。例如:?1/3输出 .333333333333333?1/3!输出 .3333333其中3!表示单精度常数3,不是3的阶乘!Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.日期型数据的运算v日期型数据可以加减天数(可含小数),结果仍为日期型。例如:#2005-9-25#-10v两个日期型数据之差为两个日期之间相隔的天数。例如:#2005-9-25#-#1986-5-20#v日期型数据可以看作一个数值型数据,即该日期与#1899-12-30 00:00#之间相差的天数,其中的整数部分为日期,小数部分为时间。该数值称为日期的“系列数”。例如,用单精度数显示#1900-1-1 6:00#:?Csng(#1900-1-1 6:00#)输出:2.25 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.比较运算v运算运算:=v比较结果为比较结果为 True 或或 Falsev双字符运算符(双字符运算符(=和和 )两字符之间不能有空)两字符之间不能有空格,也不能写成格,也不能写成=、3 And 54 的值为True 2.F False,T True Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.按位运算ABnot AA and B A or BA xor B001000011011100011110110例:A1010not A0101A or B1110B1100A and B1000A xor B0110 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.运算的优先级算术运算 -(负)*/mod+-(加减)连接运算&比较运算 =均同级逻辑运算notandor xorequimp Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.例表达式表达式值值表达式表达式值值5+322072*3=6 and 52*2#8/1/2008#+7“6=“&“1+2+3“Len(“Lets go!”)8=5 or not 32“abc”ABC”Int(7.65432)8 mod 314True6=1+2+3False722008-8-89True2 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.VB内置函数vVB内置函数是可以直接使用的函数v内置函数是调用内部子程序后返回的结果,称为函数的值。此值的类型称为函数的类型。v不同的函数有不同的参数,要注意每种函数所带参数的个数和类型。v函数可以直接放在表达式中,为数据处理带来很大方便。Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.数学函数v三角函数:用弧度Cos(x)(x),Sin(x)(x),Tan(x)(x),Atn(x)(x)单位:弧度单位:弧度sin2 35 表示为 sin(35*3.1416/180)2v 对数:Log(x)(x),指数:Exp(x)(x)(以e为底)v 平方根:Sqr(x)(x)v 绝对值:Abs(x)x)|x-y|表示为:abs(x-y)v 取整:Int(x)取x的最大整数 Fix(x)取x的整数部分 v符号函数 Sgn:Sgn(x)=VB内置函数内置函数-1 当 x 0 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.数学函数的应用实例1.Tan(/4)=14*Atn(1)=3.14159265358979可用于定义常量:Const PI=4*Atn(1)2.e=exp(1)=2.718281828459054*Atn(1)eExp(1)Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.随机函数v(伪)随机函数 Rnd:产生01之间的1个随机数,0 Rnd 1 随机函数在测试、模拟、游戏等程序中有广泛应用。例如,要产生一个16之间的随机整数,可以用表达式:Int(Rnd*6)+1vRandomize语句:产生随机数的种子,从而改变随机数序列。VB内置函数内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.日期时间函数v不带参数:v日期函数 Date 和 Date$取系统日期v时间函数 Time 和 Time$取系统时间v日期和时间函数 Now 取系统日期和时间v当天已过时间总秒数 Timerv带参数(日期型表达式):vYear,Month,Day 分出年月日vWeekday 算出星期几vHour,Minute,Second 分出时分秒VB内置函数内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.字符串函数(1)v取子字符串取子字符串:vLeft 函数:取左边函数:取左边 n 个字符,如个字符,如 Left(“Basic”,3)=“Bas”vRight 函数:取右边函数:取右边 n 个字符,如个字符,如 Right(“Basic”,2)=“ic”vMid 函数:取中间函数:取中间 n 个字符,如个字符,如:Mid(“Basic”,2,3)=“asi”,Mid(“Basic”,2)=“asic”v取取长度(字符数)函数长度(字符数)函数 Len,如如 Len(“Go!”)=3VB内置函数内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.字符串函数(2)v求子串位置 InStr,如 InStr(“Welcome”,”come”)=4v转换函数:v求值Val,取前面可作数值的字串转换,取前面可作数值的字串转换,如 val(“1.23mm”)=1.23而 val(“1.23e2abc”)=1.23e2=123v数值转字符 Str:Str(12.3)=“12.3”v代码字符 Chr:例如 Chr$(65)=“A”v字符代码 Asc:例如 Asc(“A”)=65注:中文VB使用双字节的Unicode码VB内置函数内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.字符串函数(3)v空格函数Space(n),返回n个空格v字符重复函数 String(n,c),返回n个字串c的第一个字符v大小写转换函数:Lcase(s)转换为小写 Ucase(s)转换为大写 VB内置函数内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.转换函数和判断函数v转换函数 Cint,CLng,CSng,CStr,注意其命名法:Cv判断函数vIsNumeric(表达式)判是否数值,布尔型vIsEmpty(变量)判是否空值,布尔型vIIf(条件,值1,值2)vTypename(表达式)返回表达式的类型名vIsDate(表达式)判是否日期,布尔型VB内置函数内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.格式转换函数v函数格式:Format(,)v功能:将表达式的值按指定格式进行转换。v例:vFormat(1.2,”00.000”)”01.200”vFormat(Date,”yy.m.d”)”05.3.8”VB内置函数内置函数 Visual Basic 程序设计万 博 科 技 职 业 学 院Wanbo Inst.Of Since&Tech.语句的书写格式v一般情况下,每行一条语句v一行多条语句之间用冒号(:)作分隔符,如 a=1:b=2:c=3 v长语句分多行书写是,可在换行前加续行符(下划线_),例如:MsgBox “Sum Of 1,2,3,100 is“_&vbcrlf&x,vbInformationv注释部分以单引号()开头,止换行