第三章 VB程序设计语言基础.doc_第1页
第三章 VB程序设计语言基础.doc_第2页
第三章 VB程序设计语言基础.doc_第3页
第三章 VB程序设计语言基础.doc_第4页
第三章 VB程序设计语言基础.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 VB程序设计语言基础教学内容:一、 VB中的数据与运算vb据类型、常量与变量、运算符与表达式、数组二、 标准函数常用的内部函数(数学函数、转换函数、字符串函数、日期与时间函数等)三、三种基本结构(顺序、判定、循环)教学要求:理解:VB 6.0的基本语法规则、数据类型掌握:VB 6.0的常量、变量、运算符、运算规则、函数、表达式的正确书写)掌握:判定结构和循环结构的使用方法,直到型和当型的区别。3.1 数据与运算数据类型:l 数值数据类型 (1) Integer型和Long型 用来表示整数。Integer型数据占2个字节,Long型数据占4个字节。 除了十进制整型数,常用的还有八进制和十六进制,它们的表示方法为: Intger型: 八进制 数值前加&O或&。如&O123 十六进制 数值前加&H。如&H123 Long型: 八进制数值前加&O或&,最后加&。如&O123& 十六进制 数值前加&H,最后加&。如&H123& (2) Single型和Double型 用来表示浮点数。Single型占4个字节,Double型占8个字节。 表示一些单精度型常量和双精度常量时,可以用以下方法:123E5,0.34E-2,0.8D2(3) Currency型 为表示钱款而设置。占8个字节。小数点左边最多15位,右边最多4位。 (4) Byte型 占1个字节,表示无符号整数。l字符数据类型字符(String)类型存放字符型数据。用双引号括起来,如“abc”。 注:”“表示空字符串,长度为0。 若字符串中含有双引号,则用连续两个双引号表示,如”abc”12”。l日期数据类型 日期型(Date)表示日期和时间,占8个字节。用“”括起来,如 2004-5-4等。l逻辑数据类型 逻辑型(Boolean)表示逻辑判断,占2个字节。只有True和Fale两个值。 逻辑型数据转换成整型数据时,True转换为-1,False转换为0。其他类型数据转换成逻辑型数据时,非0数转换为True,0转换为False。l对象数据类型 对象型(Object)表示图形、OLE对象或其他对象,占4个字节。l变体数据类型 变体型(Varient)可存放任何类型的数据l类型说明符 可在常量或 变量的后边加上类型说明符指明它是哪一种数据类型,常见的类型说明符如下: 整型:% 长整型:& 单精度型:! 双精度型:# 字符串型:$ 货币型:3.1.2 变量与常量l命名规则 1. 名字由字母、汉字、数字或下划线组成; 2名字的第一个字符必须是字母或汉字; 3名字的有效长度小于等于255个字符; 4不能使用VB中的关键字。 5VB中不区分变量名的大小写。 6为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。l变量 变量定义的一般格式如下: Declare 变量名 As 类型 其中,Declare可以是Dim、Static、Public、ReDim。 Dim、Static用于定义局部变量 Dim用于定义窗体和模块级变量 Public用于定义全局变量 ReDim用于重新定义数组 类型可以是基本数据类型或用户自定义数据类型 若“As 类型”省略,默认为变体数据类型 可在变量名后加类型说明符代替“As 类型 例如:Dim x as Integer,y as Single Dim s as String 注:Dim定义的局部变量是自动变量,过程结束后其值被重新设置; Static定义的局部变量是景泰变量,过程结束后其值继续保留。l常量 VB中有三种常量:即直接常量、用户声明的符号常量和系统提供的常量。 (1)直接常量 直接常量其常数值直接反映了其类型,也可在常数值后紧跟类型符显示地说明常数的数据类型。 (2)符号常量 常量可用由用户定义的符号常量表示,格式如下: Const 符号常量名 As 类型=表达式 ,常量名表达式 例如:Const PI3.1415926 (3)系统提供的常量除了用户通过声明创建符号常量外,VB系统还提供了应用程序和控件定义的常量,这些常量位于对象库中,在“对象浏览器”中的Visual Basic(VB)、Visual Basic for Applications(VBA)等对象库中列举了Visual Basic的常量。 3.1.3 运算符和表达式l运算符 1. 算术运算符 加: 减:- 乘:* 整除: 浮点除:/ 取模:Mod 负号:- 幂运算: 2. 字符串运算符 “&”和”“都是将两个字符串拼接起来。但字符串连接时最好用”&”,因为“+”还可以作为算术运算符使用 3. 关系运算符 对两个表达式的值做比较,若关系成立,则返回True,否则返回False。 等于 = 大于 大于等于 = 小于 小于等于 = 不等于 或字符运算符关系运算符逻辑运算符 l常用内部函数VB提供了大量的内部函数(或称标准函数)供用户在编程时调用。内部函数按其功能可分成数学函数、转换函数、字符串函数、日期函数和格式输出函数等。 具体内容参见课本。3.1.4 数组1数组的概念一、数组的概念 在实际应用中,经常需要处理同一类型的成批数据。比如,要处理100个学生的会计这门课程的考试成绩,如果在程序中定义100个变量来表示这批成绩,显然是很麻烦的。我们可以用VB提供的数组来完成这个功能。可以用c1,c2,c100来分别代表每个学生的分数,也就是说,用一批具有相同名字、不同下标的下标变量来表示同一属性的一组数据,这样能更清楚的表示它们之间的关系。 在VB中,把一组具有相同名字、不同下标的下标变量称为数组。在计算机中,下标用“()”括起来。比如c(2),其中c为数组名,2是下标。 根据数组中下标变量的个数可以分为一维数组、二维数组或多维数组。 二、数组的声明 定义数组可以用Dim、Public、Private、Static语句实现。 格式(以Dim为例):Dim (,) As 例:Dim c(99) as Single Dim s(3,4) as string Dim stu(3,6) Dim a(2 to 100) as string*5 Dim b(2 to 30,5 to 40)说明:数组必须要先定义,后使用如果不用AS语句指明类型,默认为变体数据类型一般情况下,下标的下界默认为0,如果希望下标从1开始,可以用Option Base语句设置,格式为Option Base n ,其中n为下标的下界,只能是0或1可以根据需要指定数组下标的下界,格式为:Dim 数组名(下界 To 上界,下界 To上界)在同一个过程中,数组名不能与变量名同名在定义数组时如果指明了类型,那么数组中的每个元素都是这种类型的;如果没有指明或定义成了变体数据类型,则其中的每个元素也是变体类型,可以存放各种类型的数据。 2静态数组与动态数组 定义数组后,为了使用数组,必须为数组开辟所需要的内存区。根据内存区开辟时机的不同,可把数组分为静态数组和动态数组。 通常把需要在编译时开辟内存区的数组叫做静态数组,把需要在运行时开辟内存区的数组叫做动态数组。 一、静态数组 静态数组的数组元素的个数是在数组声明时确定的,系统运行过程中它的个数不变。 前面定义的几个数组都是静态数组。我们主要讲一下动态数组。 二、动态数组 动态数组是在声明数组时未给出数组的大小(省略括号中的下标),当要使用它时,随时用ReDim语句重新指出大小的数组。 使用动态数组的优点是可根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时分配存储空间。 建立动态数组的方法是,使用Dim、Private或Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。形式如下: ReDim (,) As 例如: Dim s() as integer 定义动态数组s,括号不能省略 Private Sub Form_Click() . n = InputBox(输入n的值) m = InputBox(输入m的值) n = Val(n) m = vla(m) ReDim s(n, m) 重新指明数组的大小 . End Sub 在过程中可多次使用ReDim语句来改变数组的大小,不能改变数组维数,也不能改变数组的类型。 每次执行 ReDim 语句时,当前存储在数组中的值都会全部丢失。Visual Basic 重新将数组元素的值置为 Empty(对 Variant 数组)、置为 0(对 Numeric 数组)、置为 零长度字符串(对 String 数组)。如果希望改变数组大小又不丢失数组中的数据,可使用具有 Preserve 关键字的 ReDim 语句就可做到这点。如: Dim this() As StringPrivate Sub Command1_Click() ReDim this(4) this(2) = microsoft Print this(2) ReDim Preserve this(6) Print this(2)End Sub3. 数组的清除和重定义在一个程序中,同一个数组只能定义一次。有时可能需要清除数组的内容或对数组重新定义,这可以用Erase语句来实现。格式如下: Erase , 说明: 在Erase语句中,只给出要刷新的数组名,不带括号和下标 Erase语句用于静态数组时,用来重新初始化各元素,内容被清空。若是数值数组各元素被置0,字符数组各元素被置为空字符串。Erase语句用于动态数组时,删除整个数组的结构并释放该数组所占用的内存。动态数组经Erase后不再存在。下次引用该动态数组之前,必须用ReDim语句重新定义该数组的维数。 4数组元素的基本操作一、给数组元素赋值1利用循环结构 For i=1 to 5 A(i)=3 Next i2利用InputBox()函数输入 Private Sub Command1_Click() Dim b(2, 3) For i = 0 To 2 For j = 0 To 3 b(i, j) = InputBox(输入 & Str(i) & , & Str(j) & 的值) Next j Next i For i = 0 To 2 For j = 0 To 3 Print b(i, j); ; Next j Print Next i End Sub 当给一个较大的数组赋值时,以上方法比较麻烦,可以用Array()函数解决。3利用Array()函数 Private Sub Form_Click() Dim a, b a = Array(1, 2, 3, 4, 5) b = Array(11, 22, 33) For i = 0 To UBound(a) Print a(i); Next iprint For i = 0 To UBound(b) Print b(i); Next i PrintEnd Sub 说明: Array()函数对各元素赋值,声明的数组是动态数组或连小括号都省略的数组,并且类型只能是Varient。 数组下界默认为0,可通过Option Base语句决定,上界由Array()函数括号内的参数个数决定,也可通过UBound()函数获得。 Array函数只适用于一维数组。二、数组元素的输出 可以通过Print语句对数组输出对一维数组,用单重循环就能实现,对二维数组,要用二重循环实现。 三、数组元素的复制1单个数组元素可以像简单变量一样从一个数组复制到另一个数组。如:Dim b(4),a(6) b(2)=a(3)2 要复制整个数组,要使用For循环语句。Private Sub Command1_Click() Dim a(), b() a = Array(1, 2, 3, 4, 5) ReDim b(UBound(a) For i = 0 To UBound(a) b(i) = a(i) Next i For i = 0 To UBound(a) Print b(i); Next iEnd Sub 3 要复制整个数组,也可以使用一条简单的赋值语句即可。如: Dim a(4) as integer,b() as integer A(0)=0:a(1)=5:a(2)=10:a(3)=13:a(4)=14 B=a 使用这种方法赋值时,必须要注意:赋值号两边的数据类型必须一致如果赋值号左边的是一个大小固定的数组,则数组赋值出错赋值号左边的必须是一个动态数组,赋值时系统自动将动态数组ReDim成与右边同样大小的数组 四、For EachNext语句与ForNext语句类似,两者都是用来执行指定重复次数的语句。但For EachNext语句是专门用于操作数组的,它的格式如下: For Each In Exit For Next 说明:格式中的“成员”必须是一个变体变量,是为循环提供的,代表的是数组中的每个元素。数组名没有括号和上下界用For EachNext语句可以对数组元素进行处理,它所重复执行的次数由数组中元素的个数确定,数组中有多少个元素,就自动重复执行多少次。例:Option Base 1Private Sub Command1_click() Dim abc(10) As Integer For i = 1 To 10 abc(i) = Int(Rnd * 100) Next i Print 使用普通循环输出: For i = 1 To 10 Print abc(i); Next i Print Print 使用For EachNext输出: For Each x In abc Print x; NextEnd Sub5. 自定义数据类型自定义数据类型由若干个标准数据类型组成,又称记录类型。通过Type语句实现。格式:Type自定义类型名元素名 (下标) As类型名元素名 (下标) As类型名End Type如:Type Student No As Integer Name As String*20 Sex As String*1 Mark (1 To 4) As Single Total As SingleEnd Type 说明:自定义数据类型一般在标准模块(.bas)中定义,默认是Public。若在窗体模块中定义,必须是Private。自定义数据类型中的元素类型可以是字符串,但应是定长字符串。定义好了类型,就可在变量的声明时使用该类型,定义的方法和标准类型是一样的。比如:Dim stu as student表示自定义类型变量中元素的格式为:变量名.元素名,如stu.no,等。可给变量stu赋值: 3.2 标准函数 1. 数学函数lSin(N):返回自变量N的正玄函数值,如:sin(0)=0,N为弧度。lCos(N):返回自变量N的余玄函数值,如:cos(0)1,N为弧度。lTan(N):返回自变量N的正切函数值,如:tan(0)0,N为弧度。lAtn(N):返回自变量N的反正切值,如:atn(0)0,函数值为弧度。lSgn(N):返回自变量N的符号。N=0,如:Sqr(81)9。lExp(N):返回e的N 次幂值,n=0。如:Exp(3)20.086。lLog(N):返回N的自然对数,N0 ,如:Log(10)2.3lInt(N):返回不大于N的最大整数,如:Int(3.6)3。lCint(N):四舍五入整数。Cint(3.6)4。lRnd(N):返回01之间的随机小数。注意:三角函数的自变量以弧度表示。 2. 转换函数lFix(n):返回n的整数部分,截取小数部分;如:Fix(3.4)3。lAsc(c):返回字符串C首字符的ASCII码值,如:Asc(”A”)65。lChr(n):返回ASCII码值为n的字符,Chr(65)”65”。lVal(c):把数字组成的字符串型数据转换称数值型。Val(”456”)456。lStr(n):把数值n转换成字符型,Str(357)”357”。lLcase(c):把字符串c中大写字母转换为小写字母。Lcase(”A”)”a”。lUcase(c):把字符串c中小写字母转换为大写字母。Ucase(”a”)”A”。3. 字符串函数lTrim(c):去掉字符串c两端的空格,Trim(” ab ”)”ab”。lLeft(c,n):截取C最左边的n个字符,Left(”command,3”)”com”。lRight(c,n):截取c最右边的n个字符,Right(”command,3”)”and”.lMid(C,m,n):截取c中第m个字符开始的n个字符。Mid(”command”,3,2)”mm”。lLen(c):返回c包含的字符数,汉字空格都算一个字符。Len(”中”)1。lUcase(c):将c中的小写字母转换成大写字母。Ucase(”Who”)”WHO”.lLcase(c):将c中的大写字母转换成小写字母。Lcase(”Who”)”who”。4. 日期与时间函数lTime$() :返回系统当前时间;lDate$() :返回系统当前日期;lNow(): 返回系统当前日期和时间;lDay(c/n): 返回数据中当月第几天;lMonth(c/n):返回数据中当年第几月;lWeekDay(c/n):返回数据当天是星期几。3.3 基本控制结构3.1 顺序结构 顺序结构就是各语句按出现的先后次序执行。主要是由一些赋值语句、输入输出语句等组成。l。赋值语句 格式:变量名表达式 在VB中,既可以给一个变量赋值,也可以给对象的某一个属性赋值。lInputBox()函数 格式:InputBox(提示,标题,默认,x坐标位置,y坐标位置) 功能:产生一个对话框,让用户从键盘输入内容,当用户单击“确定”按钮或按回车键时,函数返回输入的值。 Private Sub Command1_Click() r = InputBox(请输入姓名, 教师登记表, 张三, 3000, 4000) Print r End Sub 其中:“提示”:字符串表达式,在对话框中作为信息显示。 “标题”:字符串表达式,在对话框的标题区显示。 “默认”:字符串表达式,显示输入框里的默认信息。 “x坐标位置”、“y坐标位置”:整型表达式,坐标确定对话框左上角 在屏幕上的位置,屏幕左上角为坐标原点,单位为twip。 在这五个参数中,只有“提示”是必选的。注:函数的返回值为字符串类型,所以如果要对返回值进行算术运算,必须要转换成数值型的。 例如:Private Sub Command1_Click() r = InputBox(请输入第一个数) s = InputBox(请输入第二个数) r = Val(r): s = Val(s) x = r + s Print xEnd Sub3.2 选择结构 选择结构,就是对条件进行判断,根据判断结果,选择执行不同的分支。 VB中提供了多种形式的条件语句来实现,我们主要介绍If条件语句和Select Case语句lIf条件语句 If条件语句有两种格式:单行结构和块结构1单行结构 格式: If Then Else 如果Then或Else后面有多条语句,那么各语句之间用“:”隔开。2块结构格式: If Then Else End IfThen和Else后面不能有语句,而且最后不要忘了写上End If。这两种结构都比较简单,就不再举具体的例子了。在实际应用中,我们还经常用的If语句的嵌套,即一个If语句里又包含一个If语句。举一个简单的例子:某商场为了促销,采用购物打折的优惠办法,每位顾客一次购物(1)1000元以上,按九五折优惠(2)2000元以上,按九折优惠(3)3000元以上,按八五折优惠(4)5000元以上,按八折优惠编写程序,输入购物款数,计算并输出优惠价。 方法一:Private Sub Command1_Click() Dim x As Single, y As Single x = val(Text1.Text) If x 1000 Then y = x Else If x 2000 Then y = 0.95 * x Else If x 3000 Then y = 0.9 * x Else If x 5000 Then y = 0.85 * x Else y = 0.8 * x End If End IfEnd If End If Text2.Text = Str(y)End Sub 上面的这个程序出现多次If语句嵌套,程序长,不便阅读。为此VB提供了带ElseIf的块If语句,使程序简化易写。其格式如下: If Then Elself Then Else End If上面的例子可以改写成这种格式的,代码如下: 方法二: Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x 1000 Then y = x ElseIf x 2000 Then y = 0.95 * x ElseIf x 3000 Then y = 0.9 * x ElseIf x 5000 Then y = 0.85 * x Else y = 0.8 * x End If Text2.Text = Str(y)End Sub lSelect Case 语句 又称情况语句,是多分支结构的另一种形式。格式: Select Case变量或表达式 Case表达式列表1 Case表达式列表2 Case Else End Select 格式中的“表达式列表”可为下列形式之一:(1)表达式,表达式 eg: Case 2,4,6,8 (2)表达式 To表达式 eg: Case 1 to 5(3)Is关系运算表达式 eg: Case Is10 情况语句执行时先对“测试表达式”求值,然后测试该值与哪一个Case子句中的“表达式列表”匹配,如果找到了,就执行与该Case语句有关的语句块,执行完后转移到End Select后面的语句;如果没有找到,则执行与Case Else子句有关的语句块,然后在转移到End Select后面的语句。刚才那个购物打折的例子同样可以用情况语句实现,代码如下:方法三:Private Sub Form_Click() Dim x As Single, y As Single x = InputBox(请输入购物款数) x = Val(x) Select Case x Case Is 1000 y = x Case Is 2000 y = 0.95 * x Case Is 3000y = 0.9 * x Case Is 5000 y = 0.85 * x Case Else y = 0.8 * x End Select Print 购物款数:; x, 优惠价:; yEnd Sub同一个问题,解决的方法可能有多种,我们最好选择自己比较熟悉而又简单的来实现 3.3 循环结构 在实际应用中,经常遇到一些操作并不复杂,但需要反复多次处理的问题,比如人口增长统计、计算存款利息等,这些问题如果用顺序结构来处理十分麻烦,有时甚至难以实现,而使用VB提供的循环语句可以轻松实现。 循环结构就是在指定的条件下多次重复执行一组语句。VB提供了两种不同风格的循环结构: 计数循环(For-Next循环) 当循环(While循环) Do循环(Do-Loop循环)lFor循环语句 格式:For循环变量=初值To终值step步长 Exit For 循环体 Next循环变量 说明:循环变量也称“循环计算器”或“循环控制变量”,为数值型。初值与终值均为数值表达式。步长是一个数值表达式,为循环变量的增量,可正可负;如果省略,默认为1。Exit For可用于提前退出for循环。Next后面的“循环变量”与For后面的“循环变量“必须相同。执行过程:把“初值”赋给“循环变量”检查“循环变量”是否超过终值,若没有则执行循环体,若超出则结束循环,执行Next后面的语句循环变量加步长,转,继续循环。由上可看出For-Next循环的循环次数由初值、终值和步长三个因素决定,计算公式为:循环次数Int(终值-初值)/步长1。下面举一个例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论