数据表达式与简单程序设计joyofly.ppt
第四章 数据、表达式与简单程序设计,4.1 程序代码的组织方式4.2 代码的书写规则4.3 VB的数据4.4 运算符与表达式4.5 赋值语句4.6 VB公共函数4.7 InputBox函数与MsgBox函数,4.1 VB程序代码的组织方式,4.1.1 过程,过程:具有特定书写格式、包含若干可被作为一个整体执行的代码行的组合。根据执行的方式:事件过程通用过程,事件过程,为窗体及窗体上的各种对象编写的用来响应由用户或系统引发的各种事件的代码行就是“事件过程”当指定的事件发生时,该过程即会被激活执行。缺省:私有(private),通用过程,一个应用程序中的多个窗体共享一些代码,或一个窗体内不同的事件过程可以共享一些代码。这些被共享的代码构成的过程称为“通用过程”缺省:公有的(public),4.1.2 模块,用于将不同类型过程代码组织到一起而提供的一种结构窗体模块标准模块类模块,窗体模块,应用程序中每个窗体都有一个相对应的窗体模块。包含用于处理发生在窗体中的各个对象的事件过程,而且包含有窗体及窗体中各个控件对象的属性设置以及相关的说明。,标准模块,被多个应用程序中多个窗体共享的代码,组织到“标准模块”。扩展名“*.bas”保存的是通用过程。方法:“工程”菜单“添加模块”,类模块,包含用于创建新的对象类的属性、方法的定义等。,1.语句 语句是组成VB程序的最基本成分。(1)语句的一般形式:语句体,4.2 代码的书写规则,规定语句的功能;有些语句没有该部分,提供具体说明或具体操作,例如:Dim a as Integer a20,一条语句作用:向系统提供必要的信息或规定系统执行某些操作。,(2)书写注意1)代码不区分字母的大小写,如:Ab 与AB等效;2)系统对用户程序代码进行自动转换;对于关键字,首字母被转换成大写,其余转换成小写 对于用户定义的变量、过程名,以首次定义为准进行转换,2.语句书写规则(1)续行:(空格下划线字符“_”)(2)同一行上书写多条语句,语句间用冒号“:”分隔(3)一行允许多达1023个字符(4)注释行以 Rem开头,注释整行;以注释符“”引导 注释内容从注释符开始直到该行结束利用“编辑”工具栏的“设置注释块”、“解除注释块”来 设置/取消多行注释。,例如:Form1.Print 学好VB _&要多学多练 Form1.Hide:Form2.Show Form1.Hide 将Form1隐藏 Print&HF,&O17,4.2 代码的书写规则,4.3 VB的数据,变量/常量命名规则,常量,变量,常量,数据类型,Integer;Long;Single;Double;Currency;Byte,1.数值数据类型,4.3.1 数据类型,Integer:整型(占2字节)表数范围:-215 215-1,即32768 32767 表示形式:n(缺省)或n%,Long:长整型(占4字节)表数范围:-231 231-1 表示形式:n&,例如:-120,120&,120,120%,43210,-12345678&,Byte:字节型(占1字节)表数范围:0255(无符号),Integer;Long;Single;Double;Currency;Byte,4.3.1 数据类型,Single:单精度(4字节)-7个有效位 表示形式:带小数点数 用指数(E)表示 数字后面加“!”,Double:双精度(8字节)-15个有效位 表示形式:用指数(D)表示 数字后面加“#”,例:-1E2,1.2E2 120.0,120!+12345678.,例:-1D2,1.2D2 120#,Currency:货币型(8字节)-19个有效位 表示形式:数字后面加“”,例:120,1.数值数据类型,Integer;Long;Single;Double;Currency;Byte,1.数值数据类型,4.3.1 数据类型,2.Boolean型:,3.String型:,表示形式:用双引号括起来或变量名后加“$”如:“Basic”、“1234”,类型:变长字符串,长度事先不确定,为实际串长度 定长字符串,长度事先确定,Integer;Long;Single;Double;Currency;Byte,1.数值数据类型,4.3.1 数据类型,4.Date型:-占用8个字节 表示形式:用#号括起来 如:#2-14-04 6:10:00#,2.Boolean型:,3.String型:,表示形式:用双引号括起来或变量名后加“$”,5.Variant型:变体型 是一种通用的、可变的数据类型,隐含变量的类型,6.Object型:用于保存任何对象的引用,举例:re,my data,re.er,8re,工资,Integer intSum,规则:变量或常量名必须以字母或汉字开头;由字母、汉字、数字、下划线组成;长度不超过255个字符;在VB中变量名的字母不区分大小写;不要与关键字同名(Dim,string等)为了提高程序的可读性,在变量名可加前一约定的前缀 Int、lng、sng、dbl、bln、cur、dt、str、vnt、byt,4.3.2 变量/常量的命名规则,建议规则,强制规则,2.符号常量:声明格式:Public|PrivateConst 常量名 As 类型=表达式,常数和运算符组成,1.直接常量:常数值。其数值直接反映了类型(数值、字符、逻辑、日期),注意:在程序中,常量比变量运行速度快 常量只能出现在赋值号的右边,常量:在程序运行期间值不能改变的量,3.系统提供常量:应用程序和控件提供的系统定义的常量 例:vbRed代表“红色”等 vbCrLf代表“回车-换行符”,数值常量:整数常量(十进制、八进制、十六进制)-127、&O137、&H137 可在常量跟%或&以区别整数和长整数 浮点数常量(单精度、双精度)123.4E-2、123.4D2字符串型常量:”How are you”、”你好”Boolean型常量:True、False日期型常量:#05/16/2012#,4.3.3 常 量,Public程序级别常量,Private模块级别常量在一行中可放置多个常数说明,可用逗号分隔,例:Private Const Pi As Single=3.14159,str$=VB,4.3.4 变量,变量:以符号形式出现在程序中,且其值可以变化的量,1.变量作用域,例2:Dim A As String Dim B As String*5 A=“Visual Basic”B=“Visual Basic”Print A,B,声明变量的目的:根据声明的类型决定系统为它分配的存储单元。,2.显式声明变量:,例1:Dim A Dim B As Long Dim C As Single Dim D As Integer,Public|Private|Dim|Static 变量名 AS 数据类型,4.3.4 变量,变量:以符号形式出现在程序中,且其值可以变化的量,等同于:Dim A,B As Long,C As Single,D As Integer 或:Dim A,B&,C!,D%,数值型字符型布尔型对象型万能型,定长字符变量:如长度少于指定长度,则用空格填满不足部分;超出指定长度,则直接截去超出部分。,Private Sub Form_Click()Dim a As Integer,b As Long Dim c As Single,Dim d As Double a=327699999 b=327699999 Print a,b c=100/3 d=200/3 Print c,dEnd Sub,Private Sub Form_Click()Dim a As Boolean,b As Boolean Dim e,f As Date a=True 注意与a=“True”的区别 b=False Print a,b e=#3/1/99 9:12:02#f=1.5 Print e,fEnd Sub,注意:(1)在VB中一个汉字与一个西文字符视为一样,算一个字(2)在窗体和类模块中,不能用Public定义定长字符串变量,Dim:用以声明模块级变量(在模块的通用部分),也可以用来声明过程级变量(在过程内)Static:声明过程级静态变量Public:用于在标准模块中定义全局变量Private:用于定义模块级变量,用在模块通用部分,是指使用的变量未用声明语句进行声明而直接使用 未声明直接使用的变量均默认为Variant型 也可在变量名后加一个规定数据类型的说明符加以说明,(1)作用:强制显式声明变量。即使用任何一个变量必须“先声明,后使用”(2)增加Option Explicit语句的方法:在代码编辑器的通用/声明部分输入:Option Explicit“工具|选项”-“编辑器”-选“要求变量声明”项,3.隐式声明变量:,例:Dim Str1 As String Str1=计算机程序设计 Str2=计算机程序设计 Str3%123 Print Str1,Str2,Str3,4.3.4 变量,4.Option Explici语句,4.4 运算符和表达式,运算符,表达式,常量,1.算术运算符,包括:(乘方)、+(加法)、-(取负或减号)、*(乘法)、/(浮点除法)、(整数除法)、MOD(取余)算术表达式:(-5)2+5 Mod 3,2.字符串运算符,包括:+、&表达式:“123”+“3”,A B A+B A&B“123”“3”“1233”“1233”“123”3 126“1233”123 3 126“1233”“123a”3 出错“123a3”,3.关系运算符,包括:,=,=,Is,关系表达式(值为True或False):15+23 4*8,4.4.1 运算符,注意:若操作数为字符型,按ASCII码比较 汉字字符西文字符,运算结果是逻辑值=False,1.算术运算符,包括:+-、MOD、(整除)、/*、-(负号)、(乘方),表达式:(-5)2+5 Mod 3,2.字符串运算符,包括:+、&,表达式:“123”+“3”,3.关系运算符,包括:,=,=,Like,Is,4.逻辑运算符,包括:And、Or、Not、Xor,表达式:15+234*8,逻辑表达式(取值True或False):,AND:逻辑与,两边的值均为真时,结果为真;否则为假OR:逻辑或,两边的值至少有一个真,结果为真;否则为假NOT:逻辑反.只有一个参数XOR:逻辑异或,两边的值不同时,结果为真;否则为假否则为真,A B Not A A And B A Or B A Xor B T T F T T F T F F F T T F T T F T T F F T F F F,4.4.1 运算符,写出逻辑表达式:选拔优秀生的条件:三门功课英语(C1)、数学(C2)、计算机(C3),总分至少265分,或C2、C3分别大于90分且C1不低于80分。,C1+C2+C3=265 OR(C180 and C290 and C390),优先级的比较 1.几大类比较,优先级:高-低,2.算术运算符,3.关系运算符,4.逻辑运算符,算术、连接、关系、逻辑,,-,(*/),MOD,(+-),同一级,Not、And、Or、Xor、,4.4.1 运算符,1.表达式组成,包含:变量、常量、运算符、函数和小括号 表达式结果:与数据和运算符有关,2.书写规则,乘号不能省略 括号必须成对出现 一个表达式在同一行上书写,没有高低、大小区分,3.同一表达式中的数据的类型转换,两运算对象数据类型相同时,运算结果是同一类型。不同时,运算结果为两运算对象中存储长度较长或精度较高的那个。除法运算中,无论除数与被除数是何类型,结果是双精度类型。,4.4.2 表达式,1.赋值语句,给变量赋值,格式:变量名=表达式,设置或获取对象的属性,设置属性值:对象名.属性=表达式获取属性值:变量名对象名.属性,如:A=“VB程序设计”Text1.Text=A BText2.Text,4.5 赋值语句,如:Dim v As Integer Dim book As String*8 Dim sum As Single v=26 v=v+1 book=“VB程序设计”sum=v*123.4+56.7,Boolean 数值型True为-1;False为0 Boolean 数值型 非0为True;0为False,1.赋值语句,4.5 赋值语句,例:Dim v As Integer Dim book As String*8 Dim sum As Double Dim Bool As Boolean v=26 v=v+12.3 sum=v*123.4+56.7 v=“126”sum=“123ab”v=True sum=False Bool=123 Bool=0,注意:(1)右边表达式的值强制转 换成左边变量的类型,(2)若不能实现类型转换,出现“类型不匹配”错,1.赋值语句,4.5 赋值语句,注意:(1)右边表达式的值强制转 换成左边变量的类型,(2)若不能实现类型转换,出现“类型不匹配”错,例:Dim X As Single Dim Y As Single Dim Sum As Single X=26 Sin(X)=X+Y 5=Sqr(X)+Y X+Y=126 X=Y=Sum=1 Sum=Sum+1,(3)赋值号左侧只能出现变量,(4)一条赋值语句不能同时给 多个变量赋值,(5)正确理解加1语句,。,4.6 常用内部函数,1.数学函数,绝对值:Abs(N)e为底的指数:Exp(N)自然对数:Log(N)产生随机数:Rnd(N)符号函数:Sgn(N)平方根:Sqr(N)三角函数Sin(N)、Cos(N)、Tan(N):其中的N必须是弧度值,|-3|-Abs(-3)e2-Exp(2)Ln(10)-Log(10)Rnd 产生一个01之间的一个小数 求2.4的符号-Sgn(2.4)(返回1)求16的平方根-Sqr(16)Sin(30o)-Sin(3.14/6),4.6 常用内部函数,2.字符串函数,求字串长度:Len(C)取子串:Left(C,N)Right(C,N)Mid(C,n1,n2)查找子串:InStr(N1,C1,C2)去掉首或尾空格:LTrim(C)、RTrim(C)、Trim(C)生成字串:string(n,”字符”)生成空格串:space(n),Left(“计算机基础”,2)Right(“计算机基础”,2)Mid(“计算机基础”,2,4),Len(“VB程序设计”),Str=”AB CDE”LTrim(str)、RTrim(str)、Trim(str),InStr(4,”abdbcdef”,”d”),String(6,”A”),Space(10),字符转换成ASCII码:Asc(C)ASCII码转换成字符:Chr(N)转换成小写字母:Lcase(C)转换成大写字母:Ucase(C)转换成字符:Str(N)转换成数字:Val(C)取整:直接取整、四舍五入取整、取N的最大整数 Fix(N)Cint(N)Int(N),Fix(3.5)Cint(3.5)Int(3.5),4.6 常用内部函数,3.转换函数,Asc(“B”)-66 Chr(97)-“a”LCase(Abc)-”abc”UCase(Abc)-ABC”Str(234)-”234”Val(”234”)-234,-,3 4 3,-3-4-4,CInt与CLng的运算规则:当小数部分大于0.5,则进位加1;小数部分小于0.5,则舍去;小数部分等于0.5,则以整数位得到最靠近的偶数进行取舍。例:CInt(3.5)=4 CInt(2.5)=2 CStr与Str的区别:CStr函数不会在一个正数前增添表示正号的符号位。例:CStr(5)结果为“5”Str(5)结果为“空格5”空格为符号位,4.6 常用内部函数,3.转换函数(续),4.6 常用内部函数,4.日期函数,获取系统当前日期:Date 获取系统当前时间:Time 获取系统当前日期和时间:Now 获取指定日期年、月、日的值:Year(D)、Month(D)、Day(D)获取指定日期是一个星期的第几天:Weekday(D,n),如:Print date,Print Time$,Print Now,Print Year(Now),Month(Now),Day(Now),Print Weekday(Now,2),数值格式符:0:显示一数字,若此位置没有数字则补0#:显示一数字,若此位置没有数字则不显示.:小数点,:千分位+$()原样输出%强制以百分数形式输出E+和E-是指数输出控制符,4.6 常用内部函数,5.格式输出函数,Format$(表达式,格式字符串),注意:Format函数仅用于控制数据的外部输出格式,不会改变数据在计算机内部的存储形式,如:Print Format(123456.78,00000000.0000)00123456.7800 Print Format(123456.78,#)123456 Print Format(123456.78,#.#)123456.78 Print Format(123456.78,#,#,#.#)123,456.8 Print Format(123456.78,#%)12345678%Print Format(123456.78,#.#E+#)1.23E+5 Print Format(123456.78,#.#E-#)1.23E5,4.7 InputBox函数与MsgBox函数,InputBox函数,Msgbox函数,与用户交互函数和过程,格式:InputBox(提示,标题,默认值,X,Y),格式:MsgBox(提示内容,按钮设置,标题),InputBox函数-输入框,作用:打开一个对话框,等待用户输入内容。单击确定,返回输入值(字符型数据)格式:变量名=InputBox(提示,标题,默认值,X,Y),例:设置一个输入框:提示用户输入查询学号。,提示:若提示内容中需要换行显示:在换行处加chr(13)和chr(10)各项参数位置必须一一对应,按 钮:可选。整型表达式,缺省值为 0 指定信息框中按钮数目、类型、图标类型,缺省按钮等,Msgbox函数-信息框,变量=MsgBox(提示内容,按钮,标题)MsgBox 提示内容,按钮,标题,提示内容:必要。字符表达式,即显示在对话框中的信息,2.MsgBox 函数的常用参数的说明,=1024 个字符,如果文字超过一行,可用Chr(13)+Chr(10)换行,标 题:可选。在对话框标题栏中显示的内容。省略此项,则将应用程序名放在标题栏中,1.语法,值 按钮的设置 对应按钮名称 0 vbOKOnly-确定 1 vbOKCancel-确定、取消 2 vbAbortRetryIgnore-终止、重试、忽略 3 vbYesNoCancel-是、否、取消 4 vbYesNo-是、否 5 vbRetryCancel-重试、取消,Buttons参数的设置,1.按钮的类型和数目的设置 Buttons的和=按钮设置值+图标设置值+缺省按钮值,Buttons参数值=1 或 vbOKCancel,2.图标的样式 Buttons的和=按钮设置值+图标设置值+缺省按钮值,16 vbCritical-,32 vbQuestion-,48 vbExclamation-,64 vbInformation-,Buttons参数值=1+64 或 vbOKCancel+vbInformation,Buttons参数的设置,3.说明哪一个是缺省按钮 Buttons的和=按钮设置值+图标设置值+缺省按钮值,0 VbDefaultButton1,256 VbDefaultButton2,512 VbDefaultButton3,Buttons参数值=65(1+64+0)或 vbOKCancel+vbInformation+VbDefaultButton1,Buttons参数的设置,设计一个如下所示的提示框:,练习使用信息框,符号常量 返回值 对应按钮,4.Msgbox的函数返回值 用于确定用户选择对话框的哪一个按钮,以作出不同的响应。,vbOK 1-确认,vbCancel 2-取消,vbNo 7-否(N),vbAbort 3-终止(A),vbRetry 4-重试(R),vbIgnore 5-忽略(I),vbYes 6-是(Y),信息框的返回值:,编制一个帐号与密码的检验程序:要求:帐号不超过6个数字,密码4个字符(设密码为VB6),密码框中不显示实际输入字符 帐号(如:非数字)不正确时,提示有关信息,并清除原内容,得到焦点,再输入 密码不正确时,单击“重试”,密码框清空,得到焦 点重新输入,若单击“取消”,停止运行,作业,P59 2、5、6P59 8、10 P60 11、16、17、18,实验教程-习题三答案,填空题1、2-32768327672、整型 长整型 单精度 双精度3、0 False“”4、Chr(Int(Rnd*(Asc(“L”)-Asc(“C”)+Asc(“C”)x0 And y0 Or x=”a”And c=”A”And c=10 And x20 xz Xor yz,5、False 2 True False True True True True6、188 200100 68.56 8765547、a=1 b=1 a=2 b=1 a=3 b=1 a=4 b=18、Y Mod 4=0 And Y Mod 1000 Or Y Mod 400=09、He Said,“Good morning”.10、EDEF11、(A0 And AInt(A)And(BInt(B)12、a+b+c+d(a+b+c+d)/4 sum aver13、(f-2*h)/2(4*h-f)/2,简答题1、略2、Private Sub Form_Click()Const g=9.8 Dim V0 As Single,t As Single Dim S As Single V0=InputBox(请输入V0的值:)t=InputBox(请输入时间t的值:)S=(1/2)*g*t 2+V0*t MsgBox(位移量为:&S)End Sub,简答题3、Private Sub Command1_Click()Dim l As Single,w As Single,h As Single Dim s As Single l=Text1.Text w=Text2.Text h=Text3.Text s=(l*w+l*h+w*h)*2 Label1.Caption=sEnd Sub,