第四章单循环_第1页
第四章单循环_第2页
第四章单循环_第3页
第四章单循环_第4页
第四章单循环_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章主要内容 活动一:数字求和 介绍赋值语句、输入语句和输出语句 活动二:电脑猜数 介绍分支语句及其运用 活动三:求素数 介绍循环语句及其运用 活动四:图形打印 介绍用Print方法显示信息的常用算法活动一:数字求和 知识点:顺序结构 赋值语句 输入语句 输出语句 三种基本结构的传统表示三种基本结构的传统表示(1)顺序结构)顺序结构条件语句1语句2YN语句1语句2(2)选择结构)选择结构条件( a )条件语句组(3)循环结构)循环结构a) 当型循环当型循环b) 直到循环直到循环YNYN( b )语句组结构化程序设计思想结构化程序设计思想自顶向下、逐步细化、模块化自顶向下、逐步细化、模块化自顶

2、向下:自顶向下:先从全局、整体设计先从全局、整体设计逐步细化:逐步细化:将一个问题分解成几个较小的问题解决将一个问题分解成几个较小的问题解决模块化:模块化: 将一个大任务分解成若干个较小的部分将一个大任务分解成若干个较小的部分 每每 个部分承担一定功能,称为个部分承担一定功能,称为“功能模块功能模块”活动一:数字求和活动说明从键盘上输入一个正整数X(不超过4位),单击“计算”命令按钮,计算该数每位数字之和,输出界面如图所示。示例活动一:数字求和活动分析 使用赋值语句输入数据 使用If条件语句判断是否是数字、超过3位数 计算各位上的数字:百位:a=x100十位:b=x10 Mod 10个位:c=

3、x Mod 10两个按钮的事件过程公用的变量,两个按钮的事件过程公用的变量,放在通用声明段放在通用声明段活动一:数字求和编程实现Dim x%Private Sub Command1_Click() Dim c1 As String, c2 As String, c3 As String, s As String s$ = Chr$(13) + Chr$(10) c1$ = 请输入一个数(不超过3位) c2$ = 输入后按回车 c3$ = 或单击“确定”按钮 x = InputBox(c1$ + s$ + c2$ + s$ + c3$) If Not IsNumeric(x) Or x 999

4、Then MsgBox (“X为非 _ 数字字符 + s$ + 或X超过3位了,错误!)End Sub相当于相当于vbCrLf中文中文“”“”活动一:数字求和编程实现Private Sub Command2_Click() Dim a%, b%, c% a = x 100 求百位数 b = x 10 Mod 10 求十位数 c = x Mod 10 求个位数 Label1.Caption = 输入的数是: Label2.Caption = x Label3.Caption = 该数每位数字之和为: Label4.Caption = a + b + cEnd Sub活动一:数字求和学习支持 顺序

5、结构 程序按照语句在代码中出现的顺序自上而下的逐条执行;顺序结构中的每一条语句都被执行,而且只能被执行一次。典型语句有: 赋值语句 输入语句 输出语句 活动一:数字求和学习支持 赋值语句 一般形式 Let 变量名=表达式其中:“Let”表示赋值,通常省略。 “=”称为赋值号。 “表达式”可以是任何类型的表达式,一般其类型应与变量名的类型一致。 作用计算赋值号右侧表达式的值,然后将计算结果赋给左侧的变量。 活动一:数字求和学习支持 提示:1.一个赋值语句只能对一个变量赋值2.不能把非数值字符串的值赋值给数值型变量3.赋值号两边同为数值型,右边表达式转换为左边变量名的类型后赋值4.赋值号左边的变量

6、只能是变量,不能是常量、符号常量、表达式5.要在一行中给多个变量赋值,可以用冒号将语句与语句之间隔开,如:x=1 : y=1 : z=1活动一:数字求和学习支持 下列语句不是合法的赋值语句:x+y=a (等号左边是表达式)a%= Visual Basic 6.0 (数据类型不匹配)x=y=z=1 (不能同时对多个变量赋值) 活动一:数字求和学习支持给变量赋值和设定属性是VB编程中常见的两个任务。以下是常用的赋值语句形式:1. Sum=Sum+x 与循环结构结合使用,起到累加作用2. i=i+1 与循环结构结合使用,起到计数器作用3. t=x x=y 交换两个变量中的值 y=t 4. 对象名.属

7、性名=属性值 在程序中设置对象属性活动一:数字求和学习支持输入语句 VB的输入有着十分丰富的内容和形式,在VB中,一般使用文本框、输入框(InputBox函数)等实现输入操作。如: a=Text1.Text x=InputBox(输入x: ) 活动一:数字求和学习支持 InputBox函数 InputBox是提供从键盘输入数据的函数。它可以产生一个对话框,这个对话框作为输入数据的界面,等待用户输入数据,并返回所输入的内容。其中: “提示信息”:必需的。字符串表达式,在对话框中作为信息显示,用来提示用户输入。 活动一:数字求和学习支持 “对话框标题”:可选的。字符串表达式,显示对话框标题。如果省

8、略,则把应用程序名放入标题栏中。 “默认内容”:可选的。字符串表达式,显示文本框中。在没有其它输入时作为缺省值。如果省略,则文本框为空。 “x坐标位置”、“y坐标位置”:可选的。数值表达式,坐标确定对话框左上角在屏幕上的位置, 屏幕左上角为坐标原点,单位为twip。 活动一:数字求和学习支持 InputBox函数的用法:变量= InputBox(提示信息,对话框标题 ,默认内容,x坐标位置,y坐标位置) 缺省值缺省值标题标题提示提示活动一:数字求和学习支持 提示: InputBox的返回值是一个字符串返回值是一个字符串。如果需要将输入的数值参加算术运算,必须在进行运算前用Val函数把它转换为相

9、应类型的数值。 每执行一次InputBox函数只能输入一个值只能输入一个值,如果需要输入多个值,则必须多次调用InputBox函数。这时,通常与循环语句、数组结合使用。 对话框显示的信息,若要分多行显示,必须加回车换行符,即Chr(13)+Chr(10)或VB常数vbCrLf。 见例题InputBox求圆面积活动一:数字求和学习支持 输出语句 一般使用Print方法、文本框、标签、MsgBox函数和MsgBox语句等实现输出操作。 MsgBox函数和MsgBox过程 MsgBox用于输出数据,它会在屏幕上显示一个对话框。它可以向用户传递信息,并可通过用户在对话框上的选择接收用户所做的响应,作为

10、程序继续执行的依据。 MsgBox函数和函数和MsgBox过程过程 函数形式函数形式:变量变量% = MsgBox(提示提示,按钮按钮图标图标+ 缺省按钮缺省按钮+模式模式 ,标题,标题) 过程形式过程形式: MsgBox 提示提示,按钮按钮图标图标 +缺省按钮缺省按钮+ 模式模式,标题标题图标标题提示信息命令按钮见例题msgbox过程举例MsgBoxMsgBox按钮设置按钮设置 本章目录本章目录活动一:数字求和学习支持被单击的按钮内部常数返回值确定vbOK1取消vbCancel2终止vbAbort3重试vbRetry4忽略vbIgnore5是vbYes6否vbNo7表表2-1-2 MsgBo

11、x函数返回所选按钮函数返回所选按钮整数整数值的意义值的意义 活动一:数字求和学习支持 例 Private Sub Command1_Click() i = MsgBox(确认数据是否正确?, vbYesNo + vbQuestion, _ 数据验证) If i = 6 Then MsgBox 数据正确, ,数据验证 Else End End IfEnd Sub活动二:电脑猜数活动二:电脑猜数 知识点知识点:分支结构分支结构 IF条件语句条件语句 IF条件语句的嵌套条件语句的嵌套 IIf函数函数 Select Case语句语句 1. IfThen语句语句(单分支结构单分支结构) If Then

12、语句块语句块 End If 或或 If Then tyx图1-3-8 两 个 数 交 换过 程例例:已知两个数已知两个数x和和y,比较它们的,比较它们的大小,大小, 使得使得x大于大于y. If xy Then t=x : x=y: y=t End If 或或 If xy Then t=x: x=y: y=t 例 输入3个整数,编程求最大数。 Private Sub Command1_Click() Dim max% max = Val(Text1) If max Val(Text2) Then max = Text2 If max Val(Text3) Then max = Text3 La

13、bel2.Caption = 最大值是: Label3.Caption = maxEnd Sub2. 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 双分支选择结构执行过程双分支选择结构执行过程 例:判断用户密码和用户名是否为“abc”和”123”,如正确显示”欢迎您

14、“,不正确显示”对不起,您不能登录“ if text1.text=“abc” and text2.text=“123” then label3.caption=“欢迎您!” else label3.caption=“对不起,您不能登录” end if活动二:电脑猜数活动二:电脑猜数学习支持 例:输入一年份,判断它是否为闰年,并显示有关信息,输出界面如图所示。 分析:判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除。If y Mod 400 = 0 Or (y Mod 4 = 0 And y Mod 100 0) Then MsgBox (Str(y) & 年是闰年

15、)Else MsgBox (Str(y) & 年不是闰年)End If 例 比较三个数的大小并按x为最大进行排序。If x yIf y z Then t = y: y = z: z = t If x ; y; ; z见例交通灯程序见例交通灯程序单分支结构格式单分支结构格式(2)单分支结构格式单分支结构格式(1)嵌套的嵌套的If语句语句3. If嵌套语句嵌套语句4. IfThenElseIf语句语句(多分支结构多分支结构) 形式形式: If Then ElseIf Then Else 语句块语句块 n+1 End If 例:输入一学生成绩,评定其等级。方法是:例:输入一学生成绩,评定其等

16、级。方法是:90100分为分为“优秀优秀”,8089分为分为“良好良好”,7079分为分为“中等中等”,6069分为分为“及格及格”,60分为分为“不合格不合格”使用使用IF语句实现的程序段如下:语句实现的程序段如下:If x=90 thenPrint 优秀优秀ElseIf x=80 ThenPrint 良好良好ElseIf x=70 ThenPrint 中等中等ElseIf x=60 ThenPrint 及格及格ElsePrint 不及格不及格End If比较书中比较书中P84的三种方法的三种方法一般形式为: IIf(表达式表达式1,表达式,表达式2,表达式,表达式3) 作用:先计算的值,当

17、的值为True时,返回执行的结果;否则,返回执行的结果。 例如: Max=IIf(x y,x,y) 5. IIf函数函数 例 输入任意数X(非零),若X大于0时,求2X,否则求X的平方。 x =Val(Inputbox(请输入任意数X: )y = IIf(x 0, 大于0,所以2X= & 2 * x, _ 小于0,所以X*X= & x * x)Label1.Caption = 输入的X是 & x & , & yx是数值是数值只能用只能用&作为连接符作为连接符 不能用不能用+6. Select Case语句语句 Select Case语句又称情况语

18、句,是多分支结构的另一种表示形式,这种语句条件表示直观,但必须符合其规定的语法规则书写。 Select Case语句一般形式为: Select Case 变量或表达式Case 表达式列表1语句块1Case 表达式列表2语句块2Case Else语句块n+1End Select 其中: “变量或表达式”:可以是数值型或字符串表达式 “表达式列表i”与“变量或表达式”的类型必须相同,可以是下面四种形式之一: (1) 表达式,例: A (2) 一组用逗号分隔的枚举值,例:2,4,6,8 (3) 表达式1 To 表达式2,例: 60 to 100 (4) Is 关系运算符表达式,例: Is = 90

19、Print 优秀 Case Is = 80 Print 良好 Case Is = 70 Print 中等 Case Is = 60 Print 及格 Case Else Print 不及格End SelectSelect Case Int(mark / 10) Case Is =9 Label2.Caption = 输入的成绩为优秀 Case Is=8 Label2.Caption = 输入的成绩为良好 Case Is=6 Label2.Caption = 输入的成绩为中等 Case Else Label2.Caption = 输入的成绩为差End Select或或 mark10Select

20、Case Int(mark / 10) Case Is =6 Label2.Caption = 输入的成绩为中等 Case Is=8 Label2.Caption = 输入的成绩为良好 Case Is=9 Label2.Caption = “输入的成绩为优秀 Case Else Label2.Caption = 输入的成绩为差End Select错误!错误!Dim mark%mark = val(Text1)Select Case Int(mark / 10) Case 9, 10 Label2.Caption = 输入的成绩为优秀 Case 8 Label2.Caption = 输入的成绩为

21、良好 Case 6 To 7 Label2.Caption = 输入的成绩为中等 Case Is 6 Label2.Caption = 输入的成绩为差End Select或或 mark10或或 Case Else 选择结构的嵌套选择结构的嵌套 在在IF语句的语句的Then分支和分支和Else分支中可以完整地嵌套另一分支中可以完整地嵌套另一IF语句或语句或Select Case语句,同样语句,同样Select Case语句每一个语句每一个Case分分支中都可嵌套另一支中都可嵌套另一IF语句或另一语句或另一Select Case语句。下面是两种语句。下面是两种正确的嵌套形式:正确的嵌套形式:(1)

22、IF Then . if 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 IF注意:注意: 只要在一个分支内嵌套,不出现交叉,满足结构只要在一个分支内嵌套,不出现交叉,满足结构规则,其嵌套的形式将有很多种,嵌套层次也可以任意规则,其嵌套的形式将有很多种,嵌套层次也可以任意多。多。 If If语句形式若不在一行上书写,必须与语句形式若不在一行上书写,必须与EndIfEndIf

23、配对。配对。配对的原则是:配对的原则是:多个多个If嵌套时,嵌套时,End If与它最接近的与它最接近的lf相配对。相配对。 在写含有多层嵌套的程序时,建议使用在写含有多层嵌套的程序时,建议使用缩进对齐缩进对齐方式方式,这样容易阅读和维护。,这样容易阅读和维护。活动三:求素数活动三:求素数 知识点:循环结构 FOR语句 Do语句 循环的嵌套 GoTo语句 活动三:求素数活动三:求素数活动说明 例 编写程序,当单击命令按钮后,在有滚动条的文本框中输出3100之间的素数,程序界面如图所示。 活动三:求素数活动三:求素数活动分析 分析: 素数(或称质数)即指除了1和它本身之外不能被其他整数整除的大于

24、等于2的整数。 判别某数n是否为素数的方法: 从i=2,3,n-1,判别n能否被i整除,只要有一个能整除,n不是素数;否则n是素数。 实际上n不可能大于Sqr(n)的整数,改进:i=2,3,int(Sqr(n) 设Flag作为标志变量,初始时Flag=1。如果在循环中n能被i整除,设置Flag=0,退出循环。当i int(Sqr(n)时, 若Flag=1,则n为素数。 活动三:求素数活动三:求素数编程实现Text1.Text = For n = 3 To 100 k = Int(Sqr(n) i = 2 : Flag = 1 Do While i 0 0 初值初值 终值终值 =1 =1 时,可

25、省略时,可省略0 终值终值=0 =0 死循环死循环步长步长活动三:求素数活动三:求素数学习支持 提示: 步长不能为0,否则会发生“死循环”。 循环变量被赋初值,它仅被赋值一次。 循环变量的值是否在终值内:当步长为正时,指循环变量的值终值,当步长为负时,指循环变量的值终值 循环次数:n=int(终值终值-初值初值)/步长步长+1) 在循环体内对循环控制变量可多次引用,但不要对其赋值,否则影响原来的循环控制规律。活动三:求素数活动三:求素数学习支持For循环语句执行过程循环语句执行过程 循循环环变变量量在在终终值值内内 图 1-3-13 For 循 环 语 句 语语 句句 块块 Exit For

26、语语 句句 块块 循循 环环 变变 量量 加加 步步 长长 T F 循循 环环 变变 量量 得得 初初 值值 赋赋循环次数循环次数) 1(步长初值终值Int例例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I 4) 1(3213Int循环执行次数循环执行次数 输出输出I的值分别为的值分别为: 2 5 8 11 出了循环输出为出了循环输出为: I=14 For i = 1 To 10 Print i Next i Print 退出时i, i例例 编程计算:编程计算:S=1+2+3+100Private Sub Form_Click() D

27、im S%, I%S=0 累加前变量累加前变量S为为0For I=1 to 100 S=S+INext IPrint 1+2+3+100=,S End Sub当当N Sqr(x) Then label2.caption= 是素数 Elselabel2.caption= “不是素数 End If求最大公约数和最小公倍数(注:最小公倍数=m*n/最大公约数)Dim m%,n%,i%,t%,g%m = Val(Text1.Text)n = Val(Text2.Text)If m n Then t = m: m = n: n = t End IfFor i = 1 To m If m Mod i =

28、0 And n Mod i = 0 Then g = i End IfNext iPrint g形式形式1:(当型循环):(当型循环) Do While|Until 语句块语句块 Exit Do 语句块语句块 Loop 条 件 F T F T E x it D o 语 句 块 语 句 块 E x it D o 语 句 块 语 句 块 表 达 式 列 表 1 图 1 -3 -1 6 D o L o o p W h ile D o W h ile L o o p执 行 过 程 2. DoLoop循环语句循环语句 形式形式2:(直到循环)直到循环)Do 语句块语句块 Exit Do 语句块语句块Lo

29、op While|Until 表 达 式 列 表 1 F T F T E x it D o 语 句 块 语 句 块 E x it D o 语 句 块 语 句 块 条 件 D o L o o p W h ile的 执 行 过 程 图 1 -3 -1 5 D o W h ile L o o p 条 件语句块语句块TFExit Do条 件语句块语句块TFExit Do Do UntilLoop执行过程执行过程 DoLoop Until执行过程执行过程 Dim s%s = 0Do While s 0 s = s - 1LoopPrint sDim s%s = 0Do s = s - 1Loop Whi

30、le s 0Print s比较说明:说明:(1 1)当使用)当使用WhileWhile 构成循环时,当条件为构成循环时,当条件为“真真” 则反复执行循环体,当条件为则反复执行循环体,当条件为“假假”,则退出循环。,则退出循环。(2)当使用)当使用Until 构成循环时,当条件为构成循环时,当条件为“假假”,则反复执行循环体,直到条件成立,即为,则反复执行循环体,直到条件成立,即为“真真”时,时, 则退出循环。则退出循环。(3 3)在循环体内一般应有一个专门用来改变条件表达式中)在循环体内一般应有一个专门用来改变条件表达式中 变量的语句,以使随着循环的执行,条件趋于不成立变量的语句,以使随着循环

31、的执行,条件趋于不成立 (或成立),最后达到退出循环。(或成立),最后达到退出循环。(4)语句)语句Exit Do的作用是退出它所在的循环结构,它只能的作用是退出它所在的循环结构,它只能 用在用在DO/Loop结构中,并且常常是同选择结构一起出现在循结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。环结构中,用来实现当满足某一条件时提前退出循环。请同学们改写请同学们改写1至至100求和的程序求和的程序 将1100求和分别用四种方式编写程序 将求最大公约数用do-while实现 例题:2003年我国GDP为10万亿元人民币,近几年我国GDP增长率年均为8%,

32、按此增长速度,多少年后我国GDP超过20万亿。 分析:10*(1+0.08)nDim gdp%,n%Gdp=10N=0Do while gdpn;2m除以n得余数r;3若r=0则n为求得的最大公约数,算法结束,否则执行步骤44 m = n ,n=r ;再重复执行步骤2。n为最大公约数 最小公倍数=两数相乘除以最大公约数。 m n r 24 10 4 10 4 2 4 2 0 活动三:求素数活动三:求素数学习支持m = Val(Text1)n = Val(Text2)If n = 0 Or m = 0 Then Print 数据出错: Exit Submn = m * n If m nr = m

33、 Mod nDo While (r 0) m = n n = r r = m Mod nLoopPrint Val(Text1); 和; Val(Text2); 的最大公约数是; nPrint Val(Text1); 和; Val(Text2); 的最小公倍数是 ; mn / n退出事件过程退出事件过程活动三:求素数活动三:求素数学习支持 例 一一个由30个数组成的数列,它的头两个数为1和2,从第3个数起是前2个数之和。编程在窗体中输出该数列(一行输出4列),如图所示。 活动三:求素数活动三:求素数学习支持Dim a!, b!, i%a = 1b = 2i = 1PrintDo Print a

34、, b, a = a + b b = b + a If i Mod 2 = 0 Then Print 一行输出4列 i = i + 1Loop Until i 151 2 3 5 8 13 a b a b a b每次计算并输出每次计算并输出2个数个数方法二:Dim a!, b!, c!, i%a = 1b = 2i = 1PrintDo Print a, c = a + b a = b b = c If i Mod 4 = 0 Then Print 一行输出4列 i = i + 1Loop Until i 30 循环的嵌套循环的嵌套多重循环结构多重循环结构 如果在一个循环内完整地包含另一个循环

35、结构,则称如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。嵌套一层称为二重循环,嵌套二层称为三重循环。 上面介绍的几种循环控制结构可以相互嵌套,下面是上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:几种常见的二重嵌套形式:(1)For I=. . 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 2 For j=1 to 3Print I,j Next jNext IPrint I,j想想运行结果?Dim i%, j%For i = 1 To 5 Print Spc(i); For j = 1 To 9 Print ; Next j PrintNext iFor i = 1 To 4Print Spc(8 - i); For j =

温馨提示

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

评论

0/150

提交评论