《VB程序设计语句》PPT课件.ppt

上传人:牧羊曲112 文档编号:5454269 上传时间:2023-07-08 格式:PPT 页数:53 大小:605KB
返回 下载 相关 举报
《VB程序设计语句》PPT课件.ppt_第1页
第1页 / 共53页
《VB程序设计语句》PPT课件.ppt_第2页
第2页 / 共53页
《VB程序设计语句》PPT课件.ppt_第3页
第3页 / 共53页
《VB程序设计语句》PPT课件.ppt_第4页
第4页 / 共53页
《VB程序设计语句》PPT课件.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《《VB程序设计语句》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VB程序设计语句》PPT课件.ppt(53页珍藏版)》请在三一办公上搜索。

1、第5章 VB程序设计语句,5.1 赋值语句赋值语句是任何程序设计语言中最基本的语句。格式:LET 变量名=表达式功能:它的作用是把右边表达式的值赋给左边的变量。说明:(1)LET表示赋值,通常可以省略。(2)表达式的类型应与变量的类型一致,即同时为数值型或同时为字符型。当是数值型且有不同精度时,强制转换成左边的精度。,5.1 赋值语句,例如:A%=6.3 A为整型变量A中的结果为6在VB中,赋值语句通常是给变量赋值和设置对象属性值。1.给变量赋值例如:Dim A As Integer Dim B As String*10 A=100 B=我是中国人可以将一个表达式的值赋给一个变量,所以下面的赋

2、值语句是合法的:Dim S As Integer Dim P As Single S=600+1000 P=3.14*S+200*500,5.1 赋值语句,2.为对象设置属性值在程序中可以用赋值语句为对象的属性设置属性值。格式:对象.属性=属性值例如:为命令按钮Command1的Caption属性设置值。Command1.Caption=显示文本为文本框Text1的FontName及FontSize属性设置值:Text1.FontName=“隶书”Text1.FontSize=32,5.2 条件语句,VB提供了多种形式的条件语句来实现选择结构。对条件进行判断,根据判断结果,选择执行不同的分支。

3、,5.2.1 分支结构,1.单分支结构(IfThen语句)格式:(1)If条件Then 语句块 End If(2)If条件Then语句 功能:(1)如果条件为真,执行Then后面的语句块,如果条件为假,不执行Then后面的语句块,而执行End If后的语句。如图5.1所示。(2)如果条件为真,执行Then后面的语句,如果条件为假,不执行Then后面的语句。,5.2.1 分支结构,2.双分支结构(IfThenElse语句)格式:If条件Then 语句块1 Else 语句块2 End If功能:如果条件为真,执行Then后面的语句块1,如果条件为假,执行Else后面的语句块2。【例5.1】计算分段

4、函数。用双分支结构实现:y=sinx+(x2+1)x0 y=cos-x3+3x x=0 If x0 Then y=sin(x)+(x*x+1)Else y=cos(x)-x3+3*x End If,5.2.1 分支结构,3.IIf函数IIf函数可用来执行简单的条件判断操作,它是“IfThenElse”结构的简写版本。格式:result=IIf(条件,True部分,False部分)功能:当条件为真时,IIf函数返回“True部分”,而当条件为假时,IIf函数返回“False部分”。说明:result函数的返回值,True部分、False部分及结果变量的类型要一致。,IIf函数,例如:If x10

5、 Then r=1 Else r=2 End If而用IIf函数来代替,可以使程序大大简化。r=IIf(x10,1,2)【例5.2】某大学实行按学分收费,如果不超过12学分,应缴纳学费为4000元,如果超过12学分,每超过1学分,加收500元学费。输入学分U,输出学分U和应缴纳的学费T。【例5.3】设计一个对输入整数求和的程序,输入0时程序结束运行。,5.2.1 分支结构,4.多分支结构(IfThenElseIf语句)格式:If条件1Then 语句块1 ElseIf条件2Then 语句块2 Else 语句块n+1 End If 功能:这种结构称为多分支结构。先测试条件1,如果条件1为真,执行T

6、hen后面的语句块1;如果条件1为假继续条件2,如果条件2为真,执行后面语句块2;。如此测试下去。如果所有条件都为假,则执行Else后面的语句块n+1。【例5.4】在文本框中,输入学生成绩,判断其等级,在窗体中输出。,5.2.2 情况语句,情况语句(Select Case)的一般格式:Select Case测试表达式 Case表达式列表1 语句块1 Case表达式列表2 语句块2 Case表达式列表n 语句块n Case Else 语句块n+1 End Select【例5.5】用户在文本框Text1中分别输入:Dot,Line,Box,Circle,在窗体上分别画一个点、一条线、一个矩形、或一

7、个圆等图形,然后在End Select语句出口。,5.3 循环语句,5.3.1 For循环格式:For循环变量=初值To终值Step 步长 循环体 Exit For Next循环变量功能:当循环变量的值在初值到终值范围内时,执行一次循环体中的语句块,并使初值增加一个步长。当循环变量的值不在初值到终值范围内时,就退出循环,执行Next后面的语句。For循环语句执行的流程图如图5.5所示。,5.3.1 For循环,【例5.6】计算S=1+2+3+.+10的和。计算机执行一个For 循环的过程是:(1)执行For 语句,把初值1赋给循环变量P即P=1,把终值10和步长1保存起来。(2)按顺序执行循环

8、体中的语句S=S+1,即S=1;(3)执行Next语句,把循环变量P增加一个步长1,P=P+1,即P=2,P不大于10,继续执行循环体S=S+P;(4)接着执行Next语句,如果P不大于10,就继续执行循环体,如果P大于10,就不再执行循环体,转向到Next语句后面的语句去执行。,5.3.2 Do循环,Do循环语句用于控制循环次数未知的循环结构。此种语句有两种语法形式。格式1:Do While|Until条件 语句块 Exit Do 语句块 Loop格式2:Do 语句块 Exit Do 语句块 Loop While|Until条件功能:当指定的关键字While用于指明条件为真(True)时,执

9、行循环体。,5.3.2 Do循环,说明:(1)格式1为先判断后执行,有可能一次也不执行;格式2为先执行后判断,至少执行一次循环体。两种格式的While的流程图分别如图5.6(a)和5.6(b)所示。(2)关键字Until用于指明条件为假(False)时,执行循环体。(3)Exit Do:当执行该语句时,退出循环,执行Loop的下一句。Exit Do一般放在IfThenEnd If语句中。,5.3.2 Do循环,下面是最简单的形式,While子句的作用是当给定的条件为真时继续执行循环体,当条件为假时终止循环。Do While条件 循环体 Loop【例5.7】用Do While语句编写计算S=1+

10、2+3+.+10的和的程序。,5.3.3 多重循环,在循环体内又包含了一个完整的循环结构,称为循环的嵌套。循环嵌套对For循环语句和DoLoop语句均适用。【例5.8】打印九九表。程序运行结果如图5.7所示。,5.3.4 GoTo语句,格式:GoTo 标号、行号功能:该语句的作用是无条件地转移到标号或行号指定的那行语句。【例5.9】求100以内的素数。判断某数m是否为素数的方法很多,最简单的方法是从素数的定义来求解,其算法思想是:对于m从i=2,3,m-1判别m能否被i整除,只要有一个数能整除,m不是素数,否则m是素数。,5.3.5 End语句,格式:End功能:结束程序的运行。它可放在任何一

11、个事件过程中。,5.3.6 应用举例,【例5.10】求 S=1+3+5+99之和。【例5.11】求 S=1*2*3*10之积。【例5.12】二重循环的运行结果。【例5.13】运行下列程序。【例5.14】编写在窗口上显示如图5.8图案的程序。【例5.15】设计一个计算1+2+3+.+.之和直到累加结果超过30000的程序。【例5.16】用Do While循环,求 S=1+2+3+.+100之和。【例5.17】用Do While循环,求 S=5*4*3*2*1之积。【例5.18】产生若干个随机数,直到有一个随机数大于0.9为止的程序。【例5.19】产生50个两位随机整数的程序。【例5.20】产生1

12、2个30100随机整数的程序。【例5.21】输出150之间,能被3整除的数,并累加这些数的和。,5.4 数 组,5.4.1 数组的概念 S(0,0)S(0,1)S(0,2)S(0,3)S(0,4)S(1,0)S(1,1)S(1,2)S(1,3)S(1,4)S(2,0)S(2,1)S(2,2)S(2,3)S(2,4)S(6,0)S(6,1)S(6,2)S(6,3)S(6,4)在VB中如果没有特别的说明,数组元素的下标是从0开始的,即第一元素的下标为0。数组分静态数和动态数组。在定义数组时已确定了数组的大小,称为静态数组。在定义数组时未给出数组的大小,省略了括号中的下标,称动态数组。,5.4.2

13、静态数组的定义,在VB中,可以用4个语句来定义数组。4个语句格式相同,但适应范围不一样。Dim 用在窗体模块或标准模块中,定义窗体或标准模块数组,也可在过程中用。ReDim 用在过程中。Static 用在过程中。Public 用在标准模块中,定义全局数组。格式:Dim数组名(下标)As 类型 Dim数组名(下界 TO上界),下界 To上界As 类型,5.4.2 静态数组的定义,功能:定义一个数组各维的大小,并分配相应的存储空间。说明:(1)格式中的数组名与简单变量的命名规则相同。(2)下标是数组的维数,可以用来定义多维数组,在一般情况下,若缺省上界,则数组元素下标的下界为0;当使用下界 To

14、上界时,下标的范围可以为-32 76832767。一维数组的大小为:(上界-下界+1)。下界都必须小于上界。如果希望下标从1开始,可以通过Option Base语句来实现。格式:Option Base N功能:指定数组下标的缺省下界为1。说明:如果不使用该语句,程序默认数组的下标下界为0。Option Base语句在程序中只能使用一次;使用时必须把它放在数组定义之前才起作用。,5.4.2 静态数组的定义,(3)As 数据类型项,用来说明数组的类型,类型可以是:整型 Integer 长整型 Long 单精度 Single 双精度 Double 字符串型 String 用户定义型(4)DIM语句中

15、的下标可以是常数,变量或表达式。下标全为常数称为静态数组,即数组大小在编译时是确定的。下标中有变量则称为动态数组,数组的大小是可变的,只有在程序运行时,变量有确定的值后,数组的大小才确定。(5)数组必须先定义,后使用。(6)当用Dim语句定义数组时,该语句把数值数组中的全部数组元素都初始化为0,而把字符串数组中的全部元素都初始化为空字符串。,5.4.2 静态数组的定义,例如:Dim A(4)As String定义了类型为字符型的一维数组A,共有5个元素:A(0)、A(1)、A(2)、A(3)、A(4)。Dim B(1,3 To 5)As Integer定义了一个整型的二维数组,共有6个元素:B

16、(0,3)、B(0,4)、B(0,5)、B(1,3)、B(1,4)和B(1,5)。Dim S(5 To 5,2 To 10)As String*20定义S是一个定长字符串组成的二维数组,下标范围是55,210。每个数组元素的字符串长度是20。Dim X(10)As Integer 定义了数组X,有11个元素 X(10)=100 对X(10)这个数组元素赋值为100,5.4.3 数组下标界的测试函数,有时需要知道数组的上界值和下界值,这可以通过LBound和UBound函数来测试。格式:LBound(数组名,维)格式:UBound(数组名,维)功能:LBound函数返回一个数组中指定维的下界。U

17、Bound函数返回一个数组中指定维的上界。【例5.22】测试三维数组的每维的下界和上界的大小。,5.4.4 动态数组的定义,格式:ReDim 数组名(下标)As类型功能:改变动态数组的大小和存储空间。说明:例如:Dim A(20,20,20)ReDim A(10,10,10)重新定义动态数组A的空间 ReDim A(5,5,5)再重新定义动态数组A的空间此程序是采用动态数组,能根据应用的情况确定数组的大小,因此编写的程序有更强的实用性和通用性。,5.4.5 数组的清除和重新定义,在一个程序中,同一数组只能用Dim语句定义一次。但有时可能需要清除数组的内容或对数组重新定义,这可以用Erase语句

18、来实现。格式:Erase数组名,数组名功能:用于重新初始化静态数组的元素,或者释放动态数组的存储空间。例如:Dim T(10)As Integer Erase T【例5.23】用Erase语句初始化数组。,5.4.5 数组的清除和重新定义,程序是定义了一个静态数组T,用For循环语句为每个数组的元素赋值,然后执行Erase语句,将各数组元素的值清除。程序的运行结果如下:1 2 3 4 5 0 0 0 0 0,5.4.6 数组的基本操作,数组的基本操作包括输入、输出及复制,这些操作都是对数组元素进行的。1.给数组元素赋初值(1)利用For循环语句 Dim A(5)As Integer For I

19、=1 To 5 A(I)=0 数组的每个元素值为0 Next(2)利用Array函数在VB中可以使用Array函数为数组元素赋值,即把一个数据集赋值给某个数组。,利用Array函数,格式:数组变量名=Array(数组元素值)功能:将数组元素值赋给数组各元素的值,各值之间用逗号分隔。说明:数组变量名是预先定义的数组名(定义时没有指定维数和上下界,并且类型必须为变量体类型Variant),在数组变量名之后没有括号。【例5.24】用Array函数给数组赋值。说明:(1)利用Array函数对数组各元素赋值,定义数组时圆括号可以省略,其类型只能是Variant。(2)数组的下界为零,上界由Array函数

20、括号内的参数个数决定,也可通过函数UBound获得。,5.4.6 数组的基本操作,2.数组的输入数组的输入可以用For循环语句及文本框控件输入,也可以通过InputBox函数输入。(1)InputBox函数给数组赋值【例5.25】用InputBox函数给数组赋值。(2)用赋值语句给数组赋值3.数组元素的输出多维数组元素的输出和输入都可以通过多重循环来实现。由于VB中的数组是按行存储的,因此把控制数组第一维的循环变量放在最外层循环中。【例5.26】二维数组的输入与输出。,5.4.6 数组的基本操作,4.数组元素的复制【例5.27】把N数组中的数据复制到M数组中,程序如下:,5.4.7 数组应用举

21、例,【例5.28】用数组输入5个整数,按逆序排列。【例5.29】用数组输入5个整数,找出最大的数。【例5.30】求数组中最大元素值和所在的下标及各元素之和。【例5.31】输入一个字符串,统计各字母出现的次数,字母不区分大小写。程序的运行结分析:(1)统计26个字母出现的个数,要定义一个具有26个元素的数组,每个元素的下标表示对应的字母,元素的值表示对应字母出现的次数。(2)从输入的字符串中逐一取出字符,转换成大写字符(使得大小写不区分),进行判断。【例5.32】用选择法将数组排序。对于已知存放在数组中的n个数,用选择法按递增顺序排.【例5.33】用冒泡排序法将数组排序。对于已知存放在数组中的n

22、个数,用冒泡法递增顺序排序。,5.5 控件数组,前面我们介绍了数值数组和字符数组。在VB中,还提供了控件数组,它为处理一组功能相近的控件提供有力的方法。,5.5.1 控件数组的概念,控件数组是由一组相同类型的控件组成。他们共用一个控件名,具有相同的属性,但通常有不同的属性值。当建立控件数组时,系统给每个元素赋一个惟一的索引号(Index),即下标,下标值由Index属性指定。通过属性窗口的Index属性,可以知道该控件的下标是多少,第1个元素下标是0,第2个元素下标是1,以此类推。其所有的元素的Name属性必须相同。控件数组共享同样的事件过程。例如,控件数组Command有3个命令按钮,不论单

23、击哪个命令按钮,都会调用同一个事件过程。,5.5.1 控件数组的概念,为了区分控件数组中的各个元素,VB会把下标值传送给一个过程。例如,单击上述控件数组中的任意一个命令按钮时,调用的事件过程如下:Private Sub Command_Click(Index As Integer)End Sub,5.5.2 控件数组的建立,控件数组是针对控件建立的,因此与普通数组的定义方法不一样。可以通过以下三种方法来建立控件数组。1.在设计时建立控件数组方法一:(1)在窗体上画出作为数组元素的各个控件。(2)单击要包含到数组中的某个控件,将其激活。(3)在属性窗口中,选择Name属性,并输入控件的名称。当对

24、第二个控件输入与第一个控件相同的名称后,VB将显示一个对话框,如图5.11所示,询问是否确实要建立控件数组。单击“是”按钮,将建立控件数组,单击“否”按钮,则放弃建立操作。,5.5.1 控件数组的概念,方法二:(1)在窗体上画出一个控件,将其激活。(2)执行“编辑”菜单中的“复制”命令(或者按Ctrl+C命令),将该控件放入剪贴板中。(3)执行“编辑”菜单中的“粘贴”命令(或者按Ctrl+V命令),将显示一个对话框,询问是否建立控件数组,如图5.11所示。(4)单击对话框中的“是”按钮,窗体的左上角将出现一个控件,它就是控件数组的第二个元素。(5)重复执行“编辑”菜单中的“粘贴”命令(或者按C

25、trl+V命令),可以建立控件数组的其他元素。删除控件数组,只要改变一个控件的Name属性,并把Index属性置为空(不是0),就把该控件从控件数组中删除。,5.5.1 控件数组的概念,【例5.34】建立3个命令按钮的控件数组,当单击某个命令按钮时,分别执行不同的操作。建立控件数组的操作步骤如下:(1)在窗体上建立一个命令按钮,并把其Name属性设置为cmdTest,然后用“编辑”菜单中的“复制”命令和“粘贴”命令复制两个命令按钮。(2)把第一、第二、第三个命令按钮的Caption属性分别设置为“命令按钮1”、“命令按钮2”、“命令按钮3”。,5.5.1 控件数组的概念,2.在运行时添加控件数

26、组【例5.35】在窗体上建立一个命令按钮、两个单选按钮和一个图片框。每单击一次命令按钮,增加一个新的单选按钮。如果单击某个单选按钮,则在图片框中画出具有不同填充图案的圆。本例需要4个控件,属性的设置如表5.1所示。,5.6 过 程,VB的通用过程包括两大类:它们是Sub过程(即子程序)和Function过程(即函数)。,5.6.1 过程的定义,自定义子过程有两种方法:在“工具”菜单中定义和在代码窗口中定义。1.在“工具”菜单中定义2.在代码窗口中定义自定义子过程的格式如下:Public|PrivateStaticSub子过程名(形参表列)语句块 Exit Sub 语句块 End Sub 功能:

27、定义一个Sub过程。,5.6.1 过程的定义,说明:(1)Public:表示Sub过程是“公用”过程,可在整个程序范围被调用(但需要指明该子程序所在的对象名,如果在窗体 Form1中定义了一个程序Sub1,在窗体From2中调用它,应该用:Call Form1.Sub1。(2)Private:表示Sub过程是“私用”过程,只能被本窗体中的其他过程访问,不能被其他模块的过程访问。(3)Static:表示该过程中的局部变量是静态变量,在过程被调用后其值仍然保留;如果省略“Static”,则局部变量就默认为“自动”的,即在每次调用过程时,局部变量被初始化为0或空字符串。Static对在过程之外的变量

28、没有影响,即使这些变量在过程中使用。(4)形参表列:是含在调用时传给该过程的简单变量名或数组名,各名字之间用逗号隔开。,5.6.1 过程的定义,“形参表列”指明了调用时传送给过程的参数的类型和个数,每个参数的形式:ByVal(变量名()As 类型,)参数也称形参或哑元,在定义时没有值。ByVal表示该过程被调用时,参数是值传递,否则引用传递。定义子过程或子函数时,都可以无参数,但函数过程无参数时,函数过程名后的括号不能省略。这是函数过程与子过程的区别。(5)过程名:是长度不超过255个字符的变量名。其命名规则与变量命名规则相同。不要与VB中的关键字重名,也不要与Windows API函数重名,

29、也不能与同一级别的变量同名。在同一个模块中,同一个名称,不能既用作Sub过程名,又用作Function过程名。(6)Exit Sub:表示退出子过程。(7)Static:表示静态,Public:表示全局,Private:表示局部。【例5.36】编写一个计算加减乘除的Sub过程。,5.6.2 过程的调用,在VB中可以用两种方法调用Sub过程。(1)使用Call语句调用Sub过程。格式:Call 过程名(实参表列)功能:调用过程。说明:实参的个数、数据类型都要与被调用过程的参数一一对应。例如下面是调用Compute过程的语句:a1=10.5 b1=10.5 Call Compute(a1,b1)如

30、果过程不带参数,Call语句中过程后的一对括号可以省去,例如有一过程Sum不带参数,调用语句只是一行:Call Sum这是合法的。,5.6.2 过程的调用,(2)直接使用过程名调用Sub过程,而不必有Call。格式:过程名实参实参功能:调用过程。说明:不用括号把实参括起来。例如,也可以这样调用上面的过程:Compute a1,b1不带参数的过程可以直接写过程名即可,假如Compute过程没有参数,以下调用是符合VB语法的:Compute【例5.37】编写一个过程调用上面的过程Compute程序。,5.6.3 退出过程,在过程中可以对给出的条件测试,并根据测试的结果确定是否退出过程,如果要退出过

31、程,则使用Exit Sub语句。一进入过程,首先测试变量b的值是否等于0,如果b的值为0,立即退出Compute过程。避免在执行过程中出现错误(被零除)。,5.6.4 Sub Main过程,如果一应用程序只包含一个窗体,则程序从执行窗体Form的Load过程开始。如果有多个窗体,则从设计阶段建立的第一个窗体开始执行。有时,希望在运行窗体程序之前先执行一些操作,此时,可以将这些操作写在Sub Main过程中。Sub Main是在模块中定义的,如果一个程序中包含有多个模块,只能允许有一个Sub Main过程。Sub Main过程中可以包含若干语句。但它与其他语言中的主程序不同,程序启动时不会自动执

32、行。人们可以指定程序从哪一个窗体或是Sub Main开始执行。方法如下:,方法为:,(1)选择VB主窗口中的“工程”菜单中的“属性”命令,打开“工程属性”对话框,单击“通用”选项,如图5.17所示。(2)单击对话框中的“启动对象”框右端的箭头,显示出当前工程中各窗体的名字和Sub Main,可以定义启动工程时先启动的窗体或Sub Main。如果选择了Sub Main,则程序运行时从模块的Sub Main过程开始。常常用Sub Main来完成一些初始处理。【例5.38】Sub Main过程的应用。Sub Main也可以被其他过程调用,如:Call Main,5.7 函 数,5.7.1 函数的定义

33、函数与过程相似,也是用来完成特定功能的独立程序代码,它由一组符合VB语法的语句组成,它与过程不同的是,函数可以返回一个值给调用程序。自定义函数过程的格式如下:Public|PrivateStaticFunction函数过程名(形参表列)As 类型 局部变量常量定义 语句块 函数名=返回值 Exit Function 函数名=返回值 语句块 End Function,函数的定义,功能:定义一个函数过程。说明:(1)Function与End Function是一个函数的开始与结束标志。(2)Public:表示函数是“公用的”,Private:表示函数是“私用的”。(3)形参表列:变量名As类型,变

34、量名As类型As类型用来表示函数返回值的类型。(4)Exit Function:表示退出函数过程。(5)建立一个函数的方法与建立过程是相同的。【例5.39】定义一个函数来完成加法功能。Private Function Add(a As Integer,b As Integer)As Integer Add=a+b End Function表示函数Add是“私用的”,形参a和b为整型,函数返回值也是整型。,5.7.2 函数的调用,如果要想在过程中调用一个函数,只需写出函数名和相应的参数即可。【例5.40】用一个过程调用上述Add函数。Private Sub Command1_Click()Dim

35、 x(1 To 2)As Single For I=1 To 2 x(I)=InputBox(Enter a value,INPUT BOX)Next I Sum=Add(x(1),x(2)Print Sum=;Sum End Sub先定义一个数组x,有两个元素x(1),x(2)。从输入框中用户输入的数赋给x(1)和x(2),调用Add函数,以x(1),x(2)作为实参,调用Add函数将此二数相加,其和由函数名Add返回,调用过程Command1的Click事件,赋给变量,最后输出Sum的值。,5.7.3 退出函数语句,使用Exit Function语句可以从当前调用的函数中直接退出。例如修改以上Add函数如下:【例5.41】编写一个Function过程,求数组的最大值。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号