福建省高职单招计算机专业3-4.ppt_第1页
福建省高职单招计算机专业3-4.ppt_第2页
福建省高职单招计算机专业3-4.ppt_第3页
福建省高职单招计算机专业3-4.ppt_第4页
福建省高职单招计算机专业3-4.ppt_第5页
免费预览已结束,剩余53页可下载查看

下载本文档

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

文档简介

1、Visual Basic程序设计,第五章 选择控制结构 第六章 循环控制结构,1,第五章 选择控制结构,第 0 节 选择控制结构简介 第一节 单行结构IF语句 第二节 块结构IF语句 第三节 Select Case语句,2,选择控制结构简介,选择控制结构简介 如果要在多个操作中选择其中一个操作或需要根据条件决定是否执行某操作,就应该用选择控制结构。 选择控制结构包括If语句(条件语句)和Select Case语句(情况语句)两种。,3,单行结构IF语句 1,一、单分支结构 1、格式:If 条件 Then 语句 说明: “条件”是由关系表达式或逻辑表达式得到的逻辑值(True,False),程序

2、根据其值执行相应操作。 如果“条件”为True,则执行“Then 语句”,否则不做任何操作。,4,单行结构IF语句 2,例1:从输入的两个整数a和b中,比较a和b。如果数a(b)较大,则输出a(b)。如果相等,则输出两者一样大。 练习1:已知两个数x和y,比较它们的大小,使得x大于y。 If xy Then t=x: x=y: y=t,5,单行结构IF语句 3,二、双分支结构 2、格式:If 条件 Then 语句1 Else 语句2 说明: 如果“条件”为True,则执行“Then 语句”;“条件”为False,则执行“Else 语句2” 。 例2:计算分段函数 单分支结构实现: If x=0

3、 Then y=cos(x)x3+3*x If x0 Then y=sin(x)+sqrt(x*x+1),6,单行结构IF语句 4,双分支结构实现: If x0 Then y=sin(x)+sqrt(x*x+1) Else y=cos(x)x3+3*x 练习2:输入两个不相同的数a和b,判断其大小,并输出其中的大者。(用双分支结构),7,单行结构IF语句 5,三、嵌套If语句 例3:计算符号函数 ,程序要求:输入x,输出x和y的值。 单分支结构实现:,8,单行结构IF语句 6,三、嵌套If语句 格式1: If 条件1 Then 语句1 Else If 条件2 Then 语句2 Else 语句3

4、,9,单行结构IF语句 7,三、嵌套If语句 格式2: If 条件1 Then If 条件2 Then 语句1 Else 语句2 Else 语句3,10,单行结构IF语句 8,练习4:根据输入的成绩将其转换为成绩等级:大等于85分的为优秀,大等于60分的为合格;小于60分的为不及格。,格式1,格式2,11,单行结构IF语句 9,思考题:输入x、y、z三个不相同的数,使得xyz。,12,块结构IF语句 1,格式: If 条件1 Then 语句块1 ElseIf 条件2 Then 语句块2 Else 语句块n End If,13,块结构IF语句 2,说明: 如果“条件1”为True,则执行“语句块

5、1”。否则如果“条件2” True,则执行“语句块2”否则执行“语句块n”。 “语句块”,可以是一个语句,也可以时多个语句。当为多个语句要分行书写;如写在一行中,则各语句间用冒号隔开。,14,块结构IF语句 3,例4:根据输入的成绩将其转换为成绩等级:大等于85分的为优秀,大等于60分的为合格;小于60分的为不及格。,格式2,例5:根据输入的成绩将其转换为成绩等级:大等于85分的为优秀;大等于75分的为良;大等于60分的为合格;小于60分的为不及格。,15,块结构IF语句 4,练习5:已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。,If Ucase(strC)

6、= A And Ucase (strC) = 0 And strC = 9 Then Print strC + 是数字字符 Else Print strC + 其他字符 End If,16,块结构IF语句 5,练习6:比较3个不相同的整数a、b和c中输出其中的大者。,17,Select Case语句 1,格式: Select Case 测试表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 . . . . . . Case Else 语句块n End Select,18,Select Case语句 2,功能: 首先对“测试表达式”求值; 然后,选择匹配的一个“表达式列表

7、” ,并执行其对应的语句块; 如果都没有匹配的,则执行Case Else的语句块。 说明: 1、“测试表达式”可以是数值(字符串)表达式,通常是变量或常量。,19,Select Case语句 3,2、表达式列表也称为域值。有3种形式: 表达式1,表达式2 例如:Case 1,3,5+1,7*2 表达式1 TO 表达式2 例如: Case 2 TO 10 注:表达式2的值要大于表达式1 Is关系运算表达式 例如:Case Is=10 和 Case Is 10 And Is=20 注:只能使用关系运算符,不能使用逻辑运算符! 3、表达式列表中的表达式应与测试表达式的数据类型相同,否则表达式无效!,

8、20,Select Case语句 4,例1:根据输入的成绩将其转换为成绩等级:大等于85分的为成绩优秀;大等于75分的为成绩良好;大等于60分的为成绩合格;小于60分的为补考。,Select Case cj Case Is=85 Print “成绩优秀 Case Is=75 Print “成绩良好“ Case Is=60 Print “成绩合格“ Case Else Print “补考“ End Select,21,Select Case months Case Is=1,3,5,7,8,10,12 Print days=31 Case Is=4,6,9,11 Print day=30 Cas

9、e Is=2 If years Mod 400 = 0 or years Mod 4 = 0 and _ years Mod 100 0 Then day = 29 Else day = 28 End Select,Select Case语句 5,例2:输入年、月,输出该年该月有几天。,Dim years As Integer ,months As Integer,days As Integer years=InputBox(“请输入年份”) months=InputBox(“请输入月份”) Select Case months Case Is=1,3,5,7,8,10,12 Print da

10、ys=31 Case Is=4,6,9,11 Print days=30 Case Is=2 If years Mod 400 = 0 or years Mod 4 = 0 and _ years Mod 100 0 Then day = 29 Else day = 28 End Select Print years Print “abc” Next i,Exit For,25,For循环控制结构 2,说明: 1、Next必须和For配合使用,二者的循环变量必须一致! 2、循环体是需要重复执行的若干语句行,当然也可以是循环语句。 3、当循环变量的值超过终值时,结束循环。 4、步长是循环变量的增

11、量,它的值可以是正数也可以是负数,但不能是0!如步长为1,可省略。 5、For循环中的初值、终值、步长均为数值表达式,但其值并不一定是整数。 6、For循环的嵌套层数没有限制的。但每个循环中的循环变量必须是唯一的、而且一致的!,26,For循环控制结构 3,例1、求1+2+3+100的值。,Dim i As Integer , s As Integer s=0 For i = 1 To 100 s = s + i Next i Print “s=” ; s,Dim i As Integer , s As Integer s=0 For i = 100 To 1 Step -1 s = s +

12、i Next i Print “s=” ; s,27,For循环控制结构 4,例2:键盘输入10个数,分别输出正数、负数之和。,Dim i As Integer , x As Single Dim ZSum As Single , FSum As Single For i = 1 To 10 x=InputBox(“请输入第” Fsum,28,For循环控制结构 5,作业1:输入10个数,分别输出正数、负数之和。如输入的数为0,则退出循环。(用Select Case),Dim i As Integer , x As Single Dim ZSum As Single , FSum As Sin

13、gle For i = 1 To 10 x=InputBox(“请输入第” Zsum,29,For循环控制结构 6,例4:找出100999之间的所有梅花数。所谓梅花数是指:该数各位的立方和等于其本身的整数。如153=1+5+3,则153是梅花数。,Dim n As Integer , x As Integer Dim y As Integer , z As Integer For n = 100 To 999 x = n Mod 10 y = n 10 Mod 10 z = n 100 If n = x3 + y3 + z3 Then Print n ; ”为梅花数!” Next n,30,F

14、or循环控制结构 7,阅读程序1:输入一个正整数=2,判断是否为素数。素数是指除了1和它自身之外不能被整除的正整数。,n=InputBox(“请输入一个大等于2的正整数” ) ISPRIME=True For i = 2 To Sqr(n) If n Mod i = 0 Then ISPRIME = False Exit For End if Next i If ISPRIME Then Print n;”是素数” Else Print n;”不是素数” End If,31,For循环控制结构 8,阅读程序2:,Dim n As Long , i As Integer n=InputBox(“

15、请输入一个大于3的正整数” ) For i = 2 To Sqr(n) If n Mod i = 0 Then Print n ; “不是素数!” Exit For ElseIf n Mod i 0 And i = Int(Sqr(n) Then Print n ; “是素数!” End If Next i,32,While循环控制结构 1,While循环控制结构格式: While 条件 语句块 Wend,x = 5 While x 0 s = s + x x = x - 1 Wend,33,While循环控制结构 2,注意: “条件”表达式的值,为True(非0值),则执行循环体;为Fals

16、e(值为0),则结束循环,接着执行Wend后的语句。 说明: 1、Wend必须和While配合使用。While循环可以嵌套,且嵌套层数没有限制,每个Wend和最近的While相匹配。 2、“条件”表达式是关系表达式或逻辑表达式,也可以是常量或变量。 3、循环体中应包含对“条件”表达式的值进行修改的语句,否则会成为“死循环”!,34,While循环控制结构 3,例1、求1+2+3+100的值。 如果将j = 100,那么While循环语句如何改写?,Dim Sum As Integer , j As Integer Sum = 0 : j = 1 While j = 100 Sum = Sum

17、+ j j = j + 1 Wend Print “Sum=”;Sum,35,While循环控制结构 4,例2:从键盘输入10个数,分别输出正数、负数之和。,Dim Zsum As Single , Fsum As Single,j As Integer Zsum = 0 : Fsum = 0 : j = 1 While j 0 Then Zsum = Zsum + x ElseIf x 0 Then Fsum = Fsum + x End If j = j + 1 Wend Print “Zsum=” ; Zsum , “Fsum=” ; Fsum,36,While循环控制结构 5,例3:从

18、键盘输入任一正整数,输出该数各位之和。,Dim Sum As Integer , j As Integer Sum = 0 j = InputBox(输入任一正整数) While j 0 Sum = Sum + j Mod 10 j = j 10 Wend Print “该数的各位之和为” ; Sum,Dim Sum As Integer , j As String , i As Integer Sum = 0 j = InputBox(输入任一正整数) k = Len(j) For i = 1 to k Sum = Sum + j Mod 10 j = j 10 Next i Print 该

19、数的各位之和为 ; Sum,37,While循环控制结构 6,例4:找出100999之间的所有梅花数。所谓梅花数是指:该数各位的立方和等于其本身的整数。如153=1+5+3,则153是梅花数。,38,While循环控制结构 7,程序阅读:输入某同学的各科考试成绩,求该生的平均成绩,当从键盘输入的值为-1时,结束成绩输入。,Sum = 0 : n = 0 x = InputBox(请输入第1科成绩:) While x -1 Sum = Sum + x n = n + 1 x = InputBox(请输入第 aver End If,39,小结 1,For循环语句和While循环语句的比较 循环次数

20、的比较: For循环中,当决定初值、终值和步长值时,其循环的次数就确定了。 循环次数=1 + |终值-初值| |步长值| While循环中,循环次数由“条件”表达式和循环体内相关语句决定。 设置循环变量变化的方式: For循环中,循环变量的变化方式,是在初值基础上增加步长值。 While循环中,循环变量的变化方式,非常灵活。,40,小结 2,结束循环方式的比较 For循环有两种结束循环的方式: 一种:当循环变量的值超过终值时,结束For循环。 另一种:当出现“Exit For”时,强制结束For循环。 While循环只有“条件”表达式为False时,才能退出循环。 总结:当For循环中没有Ex

21、it For时,For循环是可以用While循环来替代的!,41,Do循环控制结构 1,Do循环不仅可以不按照限定的次数执行循环体内的语句块,而且可以根据循环条件是True或False决定是否结束循环。,Do语句格式1: Do 语句块 Exit Do Loop While | Until 条件,Do语句格式2: Do While | Until 条件 语句块 Exit Do Loop,42,Do循环控制结构 2,Do语句格式1: Do 语句块 Exit Do Loop While 条件,Do语句格式1: Do 语句块 Exit Do Loop Until 条件,i = 1 : j = 0 Do

22、 j = j + i i = i + 1 Loop While i = 5,i = 1 : j = 0 Do j = j + i i = i + 1 Loop Until i 5,43,Do循环控制结构 3,Do语句格式2: Do While 条件 语句块 Exit Do Loop,Do语句格式2: Do Until 条件 语句块 Exit Do Loop,i = 1 : j = 0 Do While i = 5 j = j + i i = i + 1 Loop,i = 1 : j = 0 Do Until i 5 j = j + i i = i + 1 Loop,44,Do循环控制结构 4,

23、说明: 1、格式1是先执行循环体,再进行“条件”判断;而格式2是先进行“条件”判断,再执行循环体。所以,格式1的循环体至少被执行一次;而格式2的循环体可能一次也不执行。 Exit Do用来强制退出循环,它通常和If语句配合使用。 While和Until都是可省略参数。如果不选,必须在循环体中使用Exit Do强制退出循环,否则会变成死循环。,i = 1 : j = 0 Do j = j + i If i = 5 Then Exit Do i = i + 1 Loop,45,Do循环控制结构 5,例1 假设我国国民生产总值平均以8%递增,问:多少年后可以翻一番?,P= 1 : n = 0 Do

24、P = P * 1.08 n = n + 1 Loop While P 2 Print n = ; n , P = ; P,P= 1 : n = 0 Do P = P * 1.08 n = n + 1 Loop Until P = 2 Print n = ; n , P = ; P,46,Do循环控制结构 6,例2 已知公式 ,求的近似值,直到最后一项的绝对值小于10-6为止。,T= 1 : n = 1 : s = 1 : Pi = 0 Do Pi = Pi + T n = 2n + 1 : s = -s : T = s / n Loop Until Abs(T) 0.000001 Pi =

25、Pi * 4 Print = ; Pi,T= 1 : n = 1 : s = 1 : Pi = 0 Do Pi = Pi + T n = 2n + 1 : s = -s : T = s / n Loop While Abs(T) = 0.000001 Pi = Pi * 4 Print = ; Pi,47,Do循环控制结构 7,例3 输入十个数,输出最大数和最小数。,Dim x As Single , Max As Single , Min As Single Dim n As Integer x = InputBox(请输入要比较的数) Max = x : Min = x : n = 1 D

26、o x = InputBox(请再输入要比较的数) If Max x Then Min = x n = n + 1 Loop While n 10 Print 最大数为 ; Max , 最小数为 ; Min,Dim x As Single , Max As Single , Min As Single Dim n As Integer Max = x : Min = x : n = 1 Do x = InputBox(“请输入第” Min,48,Do循环控制结构 8,输入某同学的各科考试成绩,求该生的平均成绩,当从键盘输入的值为-1时,结束成绩输入。,Dim Sum As Single , a

27、ver As Single , n As Integer Sum = 0 : n = 0 : aver = 0 : x = 0 Do x = InputBox(请输入第 aver :Exit Do ElseIf x = -1 And n = 0 Then Exit Do End If n = n + 1 Sum = Sum + x Loop,Dim Sum As Single , aver As Single , n As Integer Sum = 0 : n = 0 : aver = 0 : x = 0 x= InputBox(请输入第1科成绩: ) Do While x -1 n = n

28、 + 1 Sum = Sum + x x = InputBox(请输入第 aver End If,49,多重循环 1,例1 打印N行如右图所示的三角形。,Dim n As Integer , i As Integer Dim j As Integer n = InputBox(请输入行数n的:) For i = 1 To n Print Tab(20 - i); For j = 1 To 2 * i - 1 Print * ; Next j Print Next i,50,多重循环 2,例2 输出5001000之间的所有素数。 (另一种算法),For n = 501 To 1000 Step

29、2 k = Int(Sqr(n) : i = 2 : ISPRIME = 0 While i = k and ISPRIME = 0 If n Mod i = 0 Then ISPRIME = 1 Else i = i + 1 End If Wend If ISPRIME = 0 Then Print n; ; End If Next n,51,多重循环 3,例3 求1!+2!+3!+N!(3N20)。,Dim n As Integer , terms As Boolean , k As Integer Dim Sum As Integer , s As Integer terms = Tru

30、e Do While terms n = InputBox(请输入一个3至20之间的整数:) If n = 3 And n = 20 Then terms = false Loop k = 1 : Sum = 0 While k = n s= 1 For i = 1 To k s = s * i Next i Sum = Sum + s : k = k + 1 Wend Print 总和为; Sum,52,多重循环 4,例4 求1!+(1!+2!)+(1!+2!+3!)+(1!+2!+3!+ +N!) (3N20) 。,Dim n As Integer , terms As Integer terms = 1 Do While terms 0 n = InputB

温馨提示

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

评论

0/150

提交评论