《(VB二级)第5章程序控制结构》由会员分享,可在线阅读,更多相关《(VB二级)第5章程序控制结构(48页珍藏版)》请在金锄头文库上搜索。
1、nVB是“结构化程序设计方法” n三种基本结构: 顺序结构分支结构循环结构 第一页,共48页。51 控制结构的流程图表示 n511 流程图用于描述结构化程序的图形。 第二页,共48页。5.1.2 控制结构的流程图表示 一、顺序结构语句A语句B 三种结构中最基本的结构,由一串按顺序排列的语句组成。运行时,按语句出现的先后次序执行,例如从语句A顺序执行到语句B。 第三页,共48页。二、选择结构语句A语句B条件TF 选择结构(又称分支结构) ,通过“条件”判断后进行分支,满足条件时执行语句A,否则(不满足条件时)执行语句B。第四页,共48页。三、循环结构语句条件TF 循环结构通过“条件”判断,满足条
2、件时重复执行循环体语句(一条语句或多条语句),不满足条件时跳出循环(出口)。第五页,共48页。三种基本结构的共同特点是: (1) 只有单一的入口和单一的出口;(2) 结构中的每个部分都有被执行的可能;(3) 结构内不应出现永不终止的死循环; VB VB语言完全支持结构化的程序设计方法语言完全支持结构化的程序设计方法,并提供了相应的语言成分。,并提供了相应的语言成分。 第六页,共48页。5.2 算法 在计算机学科中,算法指的是用于完成某个处理任务的一组有序而明确的、可以由计算机执行的操作(或指令),它能在有限时间内执行结束并产生结果。 计算机算法通常分为两类:一类是数值计算算法,另一类是非数值计
3、算算法。由于电子计算机问世后的第一项应用是科学计算,所以在数值计算(如求解超越方程的根、求定积分、解微分方程等)方面,早已形成一个称为“计算方法”的专门学科,并有了十分成熟的算法。 第七页,共48页。5. 2. 2 算法的特征(1)确定性 确定性是指算法中的每个步骤必须确切无误,即每一步运算应该执行何种操作必须是清楚明确的,无二义性。(2)有穷性 有穷性是指一个算法经有限步运算后能够终止。(3)可行性 可行性是指算法的每个步骤都是计算机可以执行的,并能得到确定的结果。(4)输出性 一个算法可以没有输入,但至少要有一个输出。第八页,共48页。5. 2. 3 算法的表示1文字表示【算法3】写出求两
4、个自然数的最大公约数的算法。可采用古希腊数学家欧几里得提出的“欧几里得算法”描述如下: 输入两个自然数A、B; 求A除以B的余数R; 使A = B,即用B代替A; 使B = R,即用R代替B; 若R0,则重复执行步骤2、3、4,否则转; 输出A,A即为A和B的最大公约数。第九页,共48页。2流程图表示 开始T R0 结束输入A、B R=A Mod B A = B B = R 输出A第十页,共48页。3程序设计语言表示Private Sub Command1_Click() Dim a As Integer, b As Integer, r As Integer Dim m As Integer
5、, n As Integer a = InputBox(请输入a的值:, 输入数据) b = InputBox(请输入b的值:, 输入数据) m = a: n = b Do r = a Mod b a = b b = r Loop While r 0 Print m & 和 & n & 的最大公约数为: & a, Print 最小公倍数为: & m * n / aEnd Sub第十一页,共48页。5.3 顺序结构5. 3. 1 赋值语句其格式如下: var = 其中,Var表示某个变量名或属性名。当系统执行一个赋值语句时,首先求出赋值号“=”右边表达式的值,然后再把该值保存到“=”左边的变量中
6、,这就是所谓的“赋值”。第十二页,共48页。说明:(1) 赋值号左边只能是变量名或属性名,不能是常量、函数(除Mid之外)、或表达式。(2) 赋值号与关系运算符的等于号都用“=”表示,但VB系统不会产生混淆,会根据所处的位置自动判断是何种意义的符号。若出现在条件表达式中时是等号,否则是赋值号。(3) 赋值语句与数学中的等式具有不同的含义。第十三页,共48页。(4) 不能在一条赋值语句中,同时给多个变量赋值。(5) 使用赋值语句还可以获取一个对象返回的当前属性的值。在应用程序中,常常需要知道一个对象当前属性的值,以决定下一步要如何处理。比如在修改一个文本框的内容之前,需要知道当前的文本内容是什么
7、。使用下面的方法可以获取一个对象的属性值: Var=对象.属性值 例如: Password = TxtPassword.Text第十四页,共48页。5. 3. 2 不同数据类型之间的赋值 赋值语句中,若左边变量的数据类型与右边表达式的数据类型不同时,按下列方法处理:(1) 变量的数据类型与表达式的数据类型同为数值型,但精度不同时,VB会将表达式的精度强制转换成变量的精度。例如: x% = 4.5 x为整型变量,根据奇进偶不进原则,x的值为4第十五页,共48页。(2) 变量的数据类型为数值型,表达式的数据类型为字符型时,自动转换成数值类型再赋值,但当字符中有非数字字符或表达式为空串时,则出错。
8、例如: x% = 234 x为整型变量,赋值后x的值为234 x% = 2m34会出现“类型不匹配”的错误 x% = 空串,会出现“类型不匹配”的错误(3) 变量的数据类型为数值型,表达式的数据类型为逻辑型时,True转换为-1,False转换为0。反之,非0转换为True,0转换为False。(4) 变量的数据类型为字符型,表达式的数据类型为非字符型时,会自动转换成字符型。第十六页,共48页。【例5.1】运行下面程序,单击窗体,则立即窗口显示的结果是什么?Private Sub Form_Click() Dim a As Integer, b As Boolean Dim c As Inte
9、ger, d As Integer a = 10 / 4: b = True: c = b: d = a + c Debug.Print a, d, a = a + cEnd Sub分析:10/4的结果是2.5,赋给整型变量a,根据奇进偶不进原则,a的值为2。True赋给整型变量c,转换为-1,从而变量d的结果为2 1 = 1。由于a的值为2,a + c的值为1,所以a = a + c的结果为False。立即窗口显示的结果是:2 1 False第十七页,共48页。5.4 选择结构 n选择结构又叫分支结构。程序在运行到分支结构的语句块时,可以根据条件的不同,选择不同的执行方向。nIf 语句语句
10、nselect case 语句语句 第十八页,共48页。5.4.1 IFTHEN语句1标准分支结构的If语句一般形式为:If Then 语句组A Else 语句组BEnd If其中“语句组”可以是一条或多条语句。TF条件 语句组A 语句组B第十九页,共48页。【例5.2】编写一个程序,由键盘输入某学生考试的成绩,判断该生是否及格并通过信息框输出“该门课程已通过!”或“该门课程未通过!”。程序代码如下:Private Sub Form_Click() Score = InputBox(请输入学生的成绩:, 输入成绩) If Score = 60 Then MsgBox 该门课程已通过! Else
11、 MsgBox 该门课程未通过! End IfEnd Sub 第二十页,共48页。2单分支结构的If语句 标准分支结构中,若要当条件不成立时,直接执行If语句的下一条语句,标准分支结构就可以简化为单分支结构。一般形式为: If Then 语句组 End IfFT条件语句组 系统先判断条件表达式或变量的值,若为“True”,则执行语句组的语句,然后执行End If下面的语句;若为“False”,则直接执行End If下面的语句。第二十一页,共48页。3If语句的嵌套 【例5.3】设有如下函数:从键盘输入x的值,要求输出y的值。Private Sub Form_Click() Dim x As S
12、ingle, y As Single x = InputBox(请输入x的值:) If x 0 Then y = 1 Else If x = 0 Then y = 0 Else y = -1 Print x=; x, y=; yEnd Sub 第二十二页,共48页。4 4多分支多分支If If语句语句If Then 语句组1ElseIf Then 语句组2 ElseIf Then 语句组nElse 语句组n+1End If第二十三页,共48页。FFFT条件表达式1条件表达式2条件表达式n语句组1语句组2语句组n语句组n+1TT注意:(1) 若多分支语句中只有一个判断条件时,即可简化为单分支或双
13、分支If语句。(2) 无论有几个分支,程序执行了一个分支后,不再执行其余分支。(3) ElseIf不能写成Else If。(4) 若有多个表达式同时成立时,则只执行第一个与之匹配的语句组。第二十四页,共48页。5.4.2 条件函数(IIf函数) VB提供了一个IIf函数,可用来简化“If Then Else”分支结构。一般形式为: Var = IIf(条件表达式,True部分,False部分)注意:IIf函数中的3个参数都不能省略,而且要求“True部分”、“False部分”与结果变量的类型一致。第二十五页,共48页。iif 函数与“If Then Else”语句或“Select Case”语
14、句(见下一节)的作用类似。 If x0 Then y = 1Else y = - 1End If y = IIf(x0,1,- 1) 第二十六页,共48页。5.4.3 Select Case语句 Select Case语句也能实现多分支,其基本格式为: Select Case 测试表达式 Case 表达式表列1 语句块1 Case 表达式表列2 语句块2 Case Else 语句块n End SelectTTFT表达式表列1表达式表列2表达式表列n语句组1语句组2语句组n语句组n+1FF第二十七页,共48页。其中: “变量或表达式”可以是数值表达式或字符串表达式,也可以是一个常量或一个变量。
15、“表达式表列i”可以是以下三种情况之一或三种情况的混合。(1) 以逗号隔开的常量 例如:Case 1,4,7 Case a ,b “(2) 由关键字To连接的两个常量,表示一个闭区间。不论是数值型还是字符串数据,都要保证To前面的常量比后面的小。 例如:Case 1 To 10 Case a To f 第二十八页,共48页。(3) 由关键字is表示的一个关系表达式。is是一个代词,它代表着“变量或表达式”的值。如:Case is 15。但Case is 15 And is 30是错误的。(4) “表达式表列i”的数据类型要与“变量或表达式”的类型相同。 第二十九页,共48页。5.5 循环结构
16、在VB中,实现循环结构的语句有两种,一种是For循环控制结构,另一种是Do循环控制结构。 nFor循环循环 nDo循环循环 第三十页,共48页。5.5.1 For循环控制结构For var = a To b Step c 语句组 Exit For 循环体 语句组Next var第三十一页,共48页。其中:var称为循环变量,其值必须为数值型;a称为循环初值,b称为循环终值,c称为循环步长。a、b、c均为数值表达式,但其值不一定是整型,可以是实数,VB会自动取整。Exit For为退出循环语句。表示当遇到该语句时退出循环,执行Next后的下一条语句。语句组可以是一条或多条语句,构成循环体。Next的含义是循环变量的值增加一个步长(var = var + c),开始下一次循环。第三十二页,共48页。TFvar = var + c计算a、b、cvar = aVarb?循环体TFvar = var + c计算a、b、cvar = aVarb?循环体图5.14 步长为正的循环流程图5.15 步长为负的循环流程第三十三页,共48页。For循环语句的执行过程是:(1) 计算初值表达式a、终值表达式b