三种基本结构程序设计

上传人:仙*** 文档编号:54720672 上传时间:2022-02-15 格式:PPT 页数:47 大小:627.19KB
收藏 版权申诉 举报 下载
三种基本结构程序设计_第1页
第1页 / 共47页
三种基本结构程序设计_第2页
第2页 / 共47页
三种基本结构程序设计_第3页
第3页 / 共47页
资源描述:

《三种基本结构程序设计》由会员分享,可在线阅读,更多相关《三种基本结构程序设计(47页珍藏版)》请在装配图网上搜索。

1、第四章第四章 三种基本结构程序设计三种基本结构程序设计 本章内容及要求: 1.了解算法概念及算法的表示,掌握用NS流程序表示算法 2. 熟练掌握赋值语句、End语句和注释语句等语句及输入/输出消息框函数的使用; 3. 熟练掌握行if语句、块if结构、Select Case情况选择结构有使用,掌握选择的嵌套结构; 4. 熟练掌握实现循环结构的For/Next循环结构及Exit For语句、Do/Loop循环结构的使用,掌握多重循环。重点:重点:选择结构及循环结构的实现及其应用选择结构及循环结构的实现及其应用难点:难点:选择的嵌套及多重循环结构选择的嵌套及多重循环结构4.1 算法及算法的表示算法及

2、算法的表示 4. 1.1 算法概述算法概述 什么是算法: 广义地讲:算法是为完成一项任务所应当遵循的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。 狭义地讲:算法是解决一个问题采取的方法和步骤的描述。下面通过两个简单的例子加以说明:例例4.1 输入三个数,然后输出其中最大的数。输入三个数,然后输出其中最大的数。 将三个数依次输入到变量、B、C中,设变量MAX存放最大数。其算法如下: 例例4.2 输入输入10个数,打印输出其中最大的数。个数,打印输出其中最大的数。算法设计如下:算法设计如下:(1)输入1个数,存入变量A中,将记录数据个数的变量N赋值为1,即N=1(2)将A存入表示最

3、大值的变量Max中,即Max=A(3)再输入一个值给A,如果AMax 则 Max=A, 否则Max不变(4)让记录数据个数的变量增加1,即N=N+1(5)判断N是否小于10,若成立则转到第(3)步执行,否则转到第(6)步。(6)打印输出max1) 输入A、B、C。2) A与B中大的一个放入MAX中。3) 把C与MAX中大的一个放入MAX中。4) 输出MAX,MAX即为最大数。4.1.3 算法的表示算法的表示 一、自然语言与伪代码表示算法自然语言:就是指人们日常使用的语言,可以是汉语、英语或其它语言。伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。 例如:例例如:

4、例4.1可用如下的伪代码表示可用如下的伪代码表示Begin(算法开始) 输入 A,B,C IF AB 则 AMax 否则 BMax IF CMax 则 CMaxPrint MaxEnd (算法结束)2、三种基本结构的表示、三种基本结构的表示(1)顺序结构)顺序结构条件语句1语句2YN语句1语句2(2)选择结构)选择结构条件( a )条件语句组(3)循环结构)循环结构a) 当型循环当型循环b) 直到循环直到循环YNYN( b )语句组从从10个数中选出最大的数的流程图个数中选出最大的数的流程图NMaxMax =A输入A开始再输入给AN=N+1打印Max结束YNNY传统流程图NMaxMax =A输

5、入A开始再输入给AN=N+1打印Max结束YNNY输入A当N=MaxYNPrivate Sub Form_Click() Dim a%, max%, i% max = a For i = 1 To 10 a = Val(InputBox(A=?) If a max Then max = a Next i Print Max=; maxEnd Sub 最后需要说明的是:上面介绍的算法表示是给人看的,即是为帮助程序开发人员阅读、编写程序而设计的一种辅助工具,程序则必须符一计算机语言的语法规则。 下面是例4.2的计算机 程序,即为用计算机语言表示算用计算机语言表示算法:法:4.2 顺序结构顺序结构4

6、.2.1 4.2.1 赋值语句赋值语句 形式形式: : 变量名表达式变量名表达式 对象对象.属性表达式属性表达式 功能:功能: 将表达式的值赋值给变量名或指定对象的属性。将表达式的值赋值给变量名或指定对象的属性。 一般用于给变量赋值或对控件设定属性值一般用于给变量赋值或对控件设定属性值. 例:例: sRate!=0.1 Text1.Text 欢迎使用欢迎使用Visual Basic 6.0”说明:说明: 1 执行过程:先求表达式的值,然后将值赋值给左边的变量。执行过程:先求表达式的值,然后将值赋值给左边的变量。 2 右边的表达式可以是变量、常量、函数调用等特殊的表达右边的表达式可以是变量、常量

7、、函数调用等特殊的表达式。式。 3 不要将不要将“”理解为数学上的等号:理解为数学上的等号: A=A+1 是表示将是表示将A单元的值加后以放回到单元的值加后以放回到A单元。单元。执行过程如右图执行过程如右图4赋值符号“=”左边一定只能是变量名或对象的属性引用,不能是常量、符号常量、表达式。 下面的赋值语句都是错的:5=X 左边是常量。Abs(X)=20 左边是函数调用,即是表达式。 5. 赋值符号“=”两边的数据类型一般要求应一致。 4.3 选择结构选择结构 1. IfThen语句语句(单分支结构单分支结构) If Then 语句块语句块 End If 或或 If Then tyx例例:已知两

8、个数已知两个数x和和y,比较它们的,比较它们的大小,大小, 使得使得x大于大于y. If xy Then t=x : x=y: y=t End If 或或 If xy Then t=x: x=y: y=t2. IfThenElse语句(双分支结构) If Then Else End If If Then Else 例如:输出例如:输出x,y两个中值较大的一个值。两个中值较大的一个值。IF XY Then Print XElse Print YEnd If也可以写成如下的单行形式:也可以写成如下的单行形式: IF XY Then Print X Else Print Y 双分支选择结构执行过程

9、例例4.1 设计一个求解一元二次方程的程序设计一个求解一元二次方程的程序 3. IfThenElseIf语句语句(多分支结构多分支结构) 形式形式: If Then Else If Then Else 语句块语句块 n+1 End If 例:输入一学生成绩,评定其等级。方法是:例:输入一学生成绩,评定其等级。方法是:90100分为分为“优秀优秀”,8089分为分为“良好良好”,7079分为分为“中等中等”,6069分为分为“及格及格”,60分以为分以为“不合格不合格”执行过程使用IF语句实现的程序段如下:If x=90 thenPrint 优秀ElseIf x=80 ThenPrint 良好E

10、lseIf x=70 ThenPrint 中等ElseIf x=60 ThenPrint 及格ElsePrint 不及格End If4.3.2 Select Case语句(情况语句)语句(情况语句)形式:形式:Select Case 变量或表达式变量或表达式Case 表达式列表表达式列表1语句块语句块1Case 表达式列表表达式列表2语句块语句块2Case Else语句块语句块n+1End Select:与:与同类型的下面四种形式之一:同类型的下面四种形式之一: 表达式表达式 例例: A +5 一组枚举表达式一组枚举表达式(用逗号分隔用逗号分隔) 2, 4, 6, 8 表达式表达式1 To 表

11、达式表达式2 60 to 100 Is 关系运算符表达式关系运算符表达式 Is 60数值型或字符串表达式例如:将例例如:将例4.3 使用使用select case.语句来实现的程序段如下:语句来实现的程序段如下:Select Case x Case 90 to 100 Print 优秀优秀 Case 80 to 89 Print 良好良好 Case 70 to 79 Print 中等中等 Case 60 to 69 Print 及格及格 Case Else Print 不及格不及格End Select4.3.3 选择结构的嵌套选择结构的嵌套 在IF语句的Then分支和Else分支中可以完整地嵌

12、套另一IF语句或Select Case语句,同样Select Case语句每一个Case分支中都可嵌套另一IF语句或另一Select Case语句。下面是两种正确的嵌套形式:(1)IF Then . Then Then Else . End If . Else . IF Then . Else . End If . End IF(2)IF Then .Select Case Case IF Then Else . End If Case. . End Select .End IF4.4 4.4 循环结构循环结构1. For循环语句循环语句 (一般用于循环次数已知一般用于循环次数已知)形式形式

13、For 循环变量初值循环变量初值 to 终值终值 Step 步长步长 语句块语句块Exit For 语句块语句块 Next 循环变量循环变量 循环变量在终值内 图 1-3-13 For 循环语句 语句块 Exit For 语句块 循环变量加步长 T F 循 环 变 量 得 初值 循环体 0 初值终值 =1 时,可省略终值=0 死循环 步长步长循环次数循环次数) 1(步长初值终值Int例例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I 4) 1(3213Int循环执行次数循环执行次数 输出输出I的值分别为的值分别为: 2 5 8 11

14、出了循环输出为出了循环输出为: I=14例4.5 编程计算:S=1+2+3+100Dim S%, I%S=0 累加前变量S为0For I=1 to 100 S=S+INext IPrint S=,S 当N=100N=N+1打印SS=0,N=1S=S+N例4-5的算法流程图形式形式1:(当型循环):(当型循环) Do While|Until 语句块语句块 Exit Do 语句块语句块 Loop 条 件 F T Exit D o 语 句 块 语 句 块 D o W hile Loop 执 行 过 程 4.4.2 DoLoop循环语句循环语句 形式形式2:(直到循环)直到循环)Do 语句块语句块 E

15、xit Do 语句块语句块Loop While|Until T F Exit D o 语 句 块 语 句 块 条 件 D o Loop W hile 的 执 行 过 程 条 件语句块语句块TFExit Do条 件语句块语句块TFExit Do Do UntilLoop执行过程执行过程 DoLoop Until执行过程执行过程 说明:说明:(1 1)当使用)当使用WhileWhile 构成循环时,当条件为构成循环时,当条件为“真真”,则反复执行循环体,当条件为则反复执行循环体,当条件为“假假”,则退出循环。,则退出循环。(2)当使用)当使用Until 构成循环时,当条件为构成循环时,当条件为“假

16、假”,则反复执行循环体,直到条件成立,即为则反复执行循环体,直到条件成立,即为“真真”时,则退时,则退出循环。出循环。(3 3)在循环体内一般应有一个专门用来改变条件表达式中)在循环体内一般应有一个专门用来改变条件表达式中变量的语句,以使随着循环的执行,条件趋于不成立(或成变量的语句,以使随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。立),最后达到退出循环。 (4)语句)语句Exit Do的作用是退出它所在的循环结构,它只的作用是退出它所在的循环结构,它只能用在能用在DO/Loop结构中,并且常常是同选择结构一起出现在结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满

17、足某一条件时提前退出循环。循环结构中,用来实现当满足某一条件时提前退出循环。 4.4.3 WhileWend语句语句使用格式如下:While Wend 说明:该语句的功能与Do While .Loop实现的循环完全相同。例:用doLoop语句改写前面的例题4.5例例4.7 求两个整数的最大公约数、最小公倍数Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf mn Then t=m: m=n: n=t r=m mod n Do While (r 0) m=n n=r r= m mod n LoopPrint 最大公约数=, n

18、 Print 最小公倍数=, nm/n 算法使用转碾除法,流程图如右,实现的程序代码如下: 4.4.4 循环的嵌套循环的嵌套多重循环结构多重循环结构 如果在一个循环内完整地包含另一个循环结构,则称如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。嵌套一层称为二重循环,嵌套二层称为三重循环。 上面介绍的几种循环控制结构可以相互嵌套,下面是上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:几种常见的二重嵌套形式:(1)For I=. .

19、 For J=. . Next J . Next I(2)For I=. . Do While/Until . . Loop . Next I(3)Do While. . For J=. . Next J . Loop(4)Do While/Until. . Do While/Until . . Loop . Loop例如例如:打印九九乘法表打印九九乘法表. For i = 1 To 9 For j = 1 To 9 se = i & & j & = & i * j Picture1.Print Tab(j - 1) * 9 + 1); se; Next j Picture1.Print Ne

20、xt i对于循环的嵌套,要注意以下事项:对于循环的嵌套,要注意以下事项:(1) 内循环变量与外循环变量不能同名;内循环变量与外循环变量不能同名;(2) 外循环必须完全包含内循环,不能交叉;外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不能从外循环转向内循环不能从循环体外转向循环体内,也不能从外循环转向内循环. 正正 确确错错 误误 For ii =1 To 10 For jj=1 To 20 Next ii Next jj For ii =1 To 10 For ii=1 To 20 Next ii Next ii For ii =1 To 10 For jj=1

21、 To 20 Next jj Next ii For ii =1 To 10 Next ii For ii =1 To 10 Next ii 4.4.5 几种循环语句比较几种循环语句比较 For.toNextDo while/until.Loopdo.Loop While/until.循环类型当型循环当型循环直到循环循环控制条件循环变量大于或小于终值条件成立/不成立执行循环条件成立/不成立执行循环循环变量初值在 FOR 语句行中在 DO 之前在 DO 之前使循环结束For 语句中无需专门语句必须用专门语句必须使用专门语句使用场合循环次数容易确定循环/结束控制条件易给出循环/结束控制条件易给出4

22、.4.6 循环结构与选择结构的嵌套循环结构与选择结构的嵌套 在循环结构中可以完整嵌套选择结构即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。 (1)For I= IF Then End IF Next I(6) IF Then For I= End IF Next I(5)Select Case For I= Case Case Next I End Select(3)For I= IF Then Next I End IF(2)IF Then For I= Next I End IF(4)F

23、or I= Select Case Case Case End Select Next I4.5 4.5 其它控制语句其它控制语句 4.5.1 Goto 语句语句 形式形式: Go To 标号标号|行号行号 作用是无条件地转移到标号或行号指定的那行语句作用是无条件地转移到标号或行号指定的那行语句. 标号是一个字符序列标号是一个字符序列,行号是一个数字序列。行号是一个数字序列。 例例3.8 求求100以内的素数以内的素数 判别某数判别某数m是否为素数最简单的方法是是否为素数最简单的方法是: 对于对于m 从从i=2,3,m-1判别判别m能否被能否被i整除,只要有整除,只要有一个能整除一个能整除 ,

24、m不是素数,否则不是素数,否则m是素数。是素数。 For m = 2 To 100 For i = 2 To m - 1 If (m Mod i) = 0 Then GoTo NotNextM Next i Print m NotNextM: Next m4.5.2 Exit 语句语句 Exit 语句用于退出 Do.Loop、For.Next、Function或Sub代码块。 对应的使用格式为:Exit Do、Exit For、Exit Function、Exit Sub。分别表示退出DO循环、For循环、函数过程、子过程。例如: 下面的例子是使用 Exit 语句退出 For.Next 循环、

25、Do.Loop 循环及子过程。Private Sub Form_Click()Dim I%, Num% Do 建立无穷循环。 For I = 1 To 100 循环 100 次。 Num = Int(Rnd * 100) 生成一个099的随机数。 Select Case Num Case 10: Exit For 退出 For.Next 循环。 Case 50: Exit Do 退出 Do.Loop 循环。 Case 64: Exit Sub 退出子过程。 End Select Next I LoopEnd Sub4.5.3 End 语句语句 形式: End 功能:结束一个程序的运行。 在Vi

26、sual Basic中还有多种形式的End语句,用于结束一个程序块或过程。 其形式有: End If End Select End Type End With End Sub End Function等它们与对应的语句配对使用。 4.5.4 暂停语句暂停语句 Stop语句用来暂停程序的执行,相当于在事件代码中设置断点。语法格式为: Stop说明:1. Stop语句的主要作用是把解释程序置为中断(Break)模式,以便对程序进行检查和调试。可以在程序的任何地方放置Stop语句,当执行Stop语句时,系统将自动打开立即窗口。2. 与End语句不同。 4.5.5 With.End With 语句语句

27、 形式:形式: With 对象名对象名 语句块语句块 End With 说明:With 语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。 例如,要改变一个对象的多个属性,可以在 With 控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。下面的例子显示了如何使用 With 语句来给同一个对象的几个属性赋值。例如,需要对同一对象设置几个属性。途径之一是使用多条例如,需要对同一对象设置几个属性。途径之一是使用多条语句。语句。Private Sub Form_Load()Command1.Caption = 退出退出(E&xit)Command1.T

28、op = 500Command1.Left = 4500Command1.Enabled = TrueEnd Sub使用使用With.End With 语句,上面程序的代码如下。语句,上面程序的代码如下。Private Sub Form_Load()With Command1.Caption = OK.Top = 500.Left = 4500.Enabled = TrueEnd WithEnd Sub 4.6 应用程序举例应用程序举例4.6.1 素数与哥德巴赫猜想素数与哥德巴赫猜想 例例4.9 判断一个给定的整数是否为素数。 算法思路:素数指除了能被算法思路:素数指除了能被1和自身外,不能被

29、其和自身外,不能被其他整数整除的自然数。判断整数他整数整除的自然数。判断整数N是不是素数的基本方是不是素数的基本方法是:将法是:将N分别除以分别除以2,3,N-1,若都不能整除,若都不能整除,则则N为素数。因为为素数。因为N=Sqr(N)*Sqr(N),所以,当,所以,当N能被能被大于等于大于等于Sqr(N)的整数整除时,一定存在一个小于等于的整数整除时,一定存在一个小于等于Sqr(N)的整数,使的整数,使N能被它整除,因此只要判断能被它整除,因此只要判断N能否能否被被2,3,Sqr(N)整除即可。整除即可。 算法流程图如下:Dim N %, I%, K%N = Val(InputBox(N=

30、?)K= Int(Sqr(N)For I = 2 To K If N Mod I = 0 Then Exit ForNext IIf IK Then Print N; 是素数是素数Else Print N; 不是素数不是素数End If 例例4.10 编一程序验证哥德巴赫猜想:一个大于等于编一程序验证哥德巴赫猜想:一个大于等于6的偶数的偶数可以表示为两个素数之和。例如:可以表示为两个素数之和。例如: 6=3+3 8=3+5 10= 3+7 算法设计:算法设计:设设N为大于等于为大于等于6的的任一偶数,将其分解为任一偶数,将其分解为N1和和N2两两个数,使用个数,使用N1+N2=N,分别判断,分

31、别判断N1和和N2是否为素数,若都是,则是否为素数,若都是,则为一组解。若为一组解。若N1不是素数,就不必不是素数,就不必再检查再检查N2是否素数。先从是否素数。先从N1=3开开始,直到始,直到N1=N/2为止。算法流程图为止。算法流程图如图如图4-29所示。将程序代码写到窗所示。将程序代码写到窗体的单击事件中。体的单击事件中。实现上面算法的程序代码如下:Private Sub Form_Click() Dim N%, N1%, N2%, I%, K1%, K2% N=Val(InputBox(输入大于6的偶数) For N1 = 3 To N 2 Step 2 K1 = Int(Sqr(N1

32、) For I = 2 To K1 判断N1是否是素数 If N1 Mod I = 0 Then Exit For Next I If I K1 Then 如果N1为素数,将N分解为N1+N2 N2 = N - N1 K2 = Int(Sqr(N2) For I = 2 To K2 判断N2是否是素数 If N2 Mod I = 0 Then Exit For Next I If I K2 Then 如果N2也为素数,则打印输出 Print N & = & N1 & + & N2 End If End If Next N1End Sub4.6.2 字符串处理字符串处理例例4.11 统计文本框中

33、英文单词的个数。 算法设计算法设计(1)从文本(字符串)的左边开始,取出一个字符;设逻辑量WT表示所取字符是否是单词内的字符,初值设为False。(2)若所取字符不是“空格”、“逗号”、“分号”或“感叹号”等单词的分隔符,再判断WT是否为True,若WT不为True,则表示新单词的开始,让单词数Nw=Nw+1;让WT=True。(3)若所取字符是“空格”、“逗号”、“分号”或“感叹号”等单词的分隔符,则表示字符不是单词内字符,让WT=False。(4)再依次取下一个字符,重复(2)(3)步直到文本结束。 例例4.12 字符的加密和解密字符的加密和解密加密算法是:加密算法是: 将每个字母C加(或减)一序数K,即用它后的第K个字母代替,变换式公式: c=chr(Asc(c)+k) 例如:设序数k为5,这时 A F, a f,B G 当加序数后的字母超过Z或z则 c=Chr(Asc(c)+k -26)例如:You are good Dtz fwj ltti 解密算法:解密算法:解密为加密的逆过程 将每个字母C减(或加)一序数K,即 c=chr(Asc(c)-k),例如:序数k为5,这时 ZU, zu,YT当加序数后的字母小于A或a则 c=Chr(Asc(c)-k +26)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!