收藏 分销(赏)

第4章-结构化程序设计上课用.ppt

上传人:仙人****88 文档编号:14746873 上传时间:2026-11-13 格式:PPT 页数:40 大小:323KB 下载积分:10 金币
下载 相关
第4章-结构化程序设计上课用.ppt_第1页
第1页 / 共40页
第4章-结构化程序设计上课用.ppt_第2页
第2页 / 共40页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,本章目录,第,4,章,结构化程序设计,徐奕奕,第,4,章,结构化程序设计,4.1,结构化程序设计导学实例,4.2,顺序结构程序设计,4.3,选择结构程序设计,4.4,循环结构程序设计,4.5,综合应用,4.6,扩展与提高,2,4.1,结构化程序设计导学实例,结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。,【,例,4.1,】,循环输入半径求,2,个圆的面积。,(,1,)按书写顺序执行就是顺序结构;,(,2,)用,Do While i2 LOOP,构成的循环结构,控制程序两次接收圆的半径并计算面积;,(,3,)用,If R 0 Then else end if,构成的选择结构处理半径小于,0,时的情况。,VB,具有结构化程序设计的三种程序控制结构,它们是程序设计的基础。,3,4.2,顺序结构程序设计,4.2.1,常用流程图符号,流程图是用一些特定的图形符号和必要的文字来描述解题步骤的图示。,4.2.2,顺序结构的构成,语句按出现的先后次序执行,案例,两个杯子液体的交换,(动画),4,Private Sub Command1_Click(),Dim x As Integer,y As Integer,temp As Integer 0,变量定义,x =3,:,y=4,t=x 1,x=y 2,y=t 3,print“,交换后:”,print x,print y,End Sub,5,4.3,选择结构程序设计,计算机要处理的问题往往复杂多变,仅采用顺序结构是不够的。必须利用选择结构等来解决实际应用中的各种问题,使计算机具有解题智能。,VB,提供了多种形式的选择结构语句来对情况进行判断,根据判断结果,做出不同反应。主要有,If,语句和,Select,语句。,6,IF:,单分支,If Then,语句块,End If,双分支,If Then,语句块,1,Else,语句块,2,End If,7,多分支:,If,表达式,1 Then,语句块,1,ElseIf,表达式,2 Then,语句块,2,Else,语句块,n+1,End If,If,语句的嵌套,8,SELECT CASE,语句,功能:选择结构的又一种形式,案例,心理测试,9,选择结构(情况语句),Select Case,格式:,Select Case,变量或表达式,Case,表达式列表,1,语句块,1,Case,表达式列表,2,语句块,2,Case Else,语句块,n+1,End Select,本章目录,与,变量或表达式,的,类型,必须,相同,是如下四种形式之,1,:,(,1,)表达式。如:,2,、,3,、,2*4,等;,(,2,)数据范围。如,8 to 20,等;,(,3,)用,Is,开头的关系表达式,如:,Is20,、,Is 0 And y 0 Then,Print,在第一象限,ElseIf,x 0 Then,Print,在第二象限,ElseIf,x 0 And y 0 And y 0 And y 0,Print,在第一象限,Case x 0,Print,在第二象限,Case x 0 And y 0 And y 0,初值,终值 步长的设置必须使循环变,终值 量的变化趋向于终值。,=0,死循环,循环次数,循环程序阅读:循环次数?循环变量终值?,For i=2 To 13 Step 3,循环执行次数,Print i,输出,i,的值分别为,:,Next i,2 5 8 11,Print,Print“I=“,i,终值:,I=14,步长:,步长设置及循环次数计算:,17,【,例,4】,编程序计算:,1+2+3+100=,?,Private Sub Command1_Click(),Dim S,i As Integer,S=0,For i=1 To 100,S=S+i,Next i,Print“1+2+3+100=”;S,End Sub,运行结果:,5050,S,累加器,用分步循环累加完成整个计算。,注意:初值为,0,i,循环变量,由于符合连加数变化规律,故用作为累加变量。,累加是程序设计的基本算法,将有规律长串数据的连加,拆分成短表达式的循环累加,灵活性增强。请考虑,1,到,1000,的累加,应如何修改程序。,18,【,例,4.12】,编程序计算:,10!=,?,分析:因为:,10!=1*2*3*9*10,拆为短表达式,用循环完成,它可改写:,1!=1,2!=1!*2,3!=2!*3,9!=8!*9,10!=9!*10,所以,由,1,!,=1,,可求出,2!,,再求出,3,!,,最后可求出,10,!。,设累乘器,T,,其初值为,1,,循环控制变量为,i,。,实现程序:考虑如何求,n!?,Private Sub Command1_Click(),Dim T As Long,i As Integer,T=1,For i=2 To 10,T=T*i,Next i,Print 10!=1*2*3*.*10=;T,End Sub,注意累乘器,T,的初值为,1,。,19,一起完成小汽车的案例,20,本次课后实验内容安排,1.,让小汽车能,GO,、,BACK.,2.,让小汽车改变奔跑的速度。,3.,在小汽车行驶的过程中控制汽车停止。,4.,任意想象:让车以复杂的的轨迹跑。,21,4.4.2 DoLoop,循环,Do,循环用于循环条件已知而循环次数未知的情况。,形式,1,:,Do,While|Until,语句块,Exit Do,语句块,Loop,功能:,形式,1,为先判断后执行,有可能一次也不执行;,形式,2,为先执行后判断,至少执行一次。,While,:当型循环,当条件成立循环。,Until,:,直到型循环,循环直到条件成立,即,条件成立就退出循环。,形式,2,:,Do,语句块,Exit Do,语句块,Loop While|Until,本章目录,22,条件循环流程图,doloop,本章目录,先判断再执行,先执行后判断,23,改写例,4.10,,编程序计算:,1+2+3+100=,?用,Do,循环完成,Private Sub Command1_Click(),Dim S,i As Integer,i=1,S=0,Do While i100 ,直到型循环,S=S+i,i=i+1,Loop,Print“1+2+3+100=”;S,End Sub,24,【,例,4.13】,阅读下面的程序,哪个程序可以实现求,1,到,10,的自然数的平方和,说明理由。,程序,1,:,PrivateSub,Command1_Click(),Dim S,i As Integer,S=0,i=1,Do While i=10,S=S+i*i,Loop,Print S,End Sub,程序,2,:,PrivateSub,Command1_Click(),Dim S,i As Integer,S=0,i=1,Do Until i10 Then Exit Do,Loop,Print S,End Sub,程序,3,、,4,可实现,,1,死循环、,2,循环条件错?,26,一起改写小汽车的案例,27,小结,28,Private Sub Command1_Click(),Dim I%,I=12,Do while I10,I=I+5,Loop,Print “I=“;I,End dub,Dim I%,I=12,Do until I10,I=I+5,Loop,Print “I=“;I,几种,D0,循环的比较,Dim I%,I=12,Do,I=I+5,Loop while I10,Print “I=“;I,一次也不执行,I=12,死循环,无输出,执行一次,I=17,29,4.4.3,循环的嵌套,当循环结构中的循环体又包含循环结构,就构成了多重循环,也称为循环的嵌套。,本章目录,自然而然,地想到。,30,在使用循环的嵌套时应注意以下几个问题:,(1),循环嵌套可以一层套一层,但不能相互交叉。如:形式,1,是正确的嵌套形式,而形式,2,是错误的。,形式,1,形式,2,31,4.5,综合应用,【,例,4.16,】,假设一个班的人数为,rs,,每输入一个同学的分数,n,(要求是合法的分数),就转换成等级,并求这五个等级的人数。转换方式如表,4.6,所示。,分析:用循环结构对每一个同学的分数进行处理,用,If,语句编程实现输入的分数,/,班级人数必须为合法数据,否则可用,MsgBox,提醒重新输入分数,/,人数,将分数转换成相应的等级可用多分支选择结构实现,并求出各等级的人数。,32,【,例,4.17,】,随机产生,20,个,10,到,100,之间的数,求最小值。,分析:在若干个数中求最小值,方法一,先假设一个最大的数为最小值的初值,若无法估计较小的值,即方法一不能实施,则取第一个为最小值的初值;然后将每一个数与最小值比较,若该数小于最小值,将该数替换为最小值,依次逐个比较。,33,【,例,4.18,】,求斐波那契级数的前,20,项:,1,,,1,,,2,,,3,,,5,,,8,,,13,,,。第,1,项和第,2,项为,1,,从第三项开始,每一项是前,2,项之和。分析如下:,方法一:每次产生一项。用,A,、,B,表示每组数的第一项和第二项,产生新的一项,C=A+B,,此时,新一组数的第一项为,B,(把它保存到,A,中),第二项为,C,(把它保存到,B,中),再循环产生新的一项。,方法二:每次产生一组两项。用,A,、,B,表示每组数的第一项和第二项,产生新的一组数中的第一项,C=A+B,(把它保存到,A,中),第二项为,D=B+C,(把它保存到,B,中),再循环产生新的一组数。,34,【,例,4.19】,计算,1!+2!+3!+n!=?,分析:这是一个累加、累乘问题。,Private Sub Command1_Click(),n=,Val(InputBox,(,请输入,n:),S=0:T=1,For i=1 To n,T=i*T,S=S+T,Next i,Print S=;S,End Sub,35,【,例,4.20,】,某小学搬砖问题:,24,块砖,男教师搬,4,块,女教师搬,3,块,,2,个学生抬,1,块,要求,1,次全部搬完,问需男教师、女教师和学生各多少人?,分析:穷举法。,设男教师、女教师和学生人数各为,m,w,s,,则有:,4m+3w+0.5s=24,三个未知数,一个方程,可有若干个解。,其中:,0m6,0w8,0s48,。,36,【,例,4.21,】,求,1-500,中能同时满足用,3,除余,2,,用,5,除余,3,,用,7,除余,2,的所有整数,并求出其个数及和。,Private Sub,Form_Click,(),单击窗体,Dim i,js,s As Integer,js,=0:s=0,For i=1 To 500,If i Mod 3=2 And i Mod 5=3 And i Mod 7=5,Then,Print i;,js,=,js,+1 :s=s+i,End If,Next i,Print,Print,满足条件的数共有:,;,js,;,个,和为:,;s,End Sub,37,4.6,扩展与提高,GoTo,语句的使用。,尽管使用,GoTo,控制流程会影响程序的质量,但在某些情况下还是有用的。,格式:,GoTo,标号,|,行号,功能:无条件地转移到标号或行号指定的程序行。,说明:,标号是字符序列,且必须以英文字母或中文开头。任何转移到的标号后应有冒号。,行号是一个整型数,后面不能跟有冒号。,38,【,例,4.22,】,求,n,(,2,)以 内的素数。,分析:一个大于,2,且只能被,1,和它本身整除的整数称为素数。,判断素数的方法很多,从素数的定义求解:对于,m,,,i=1,,,2,,,,,m-1,,判断,m,是否能被,i,整除,只要能被一个整除,,m,就不是素数,否则就是素数;改进的算法:,i,的最后一个数取值为。,39,THE END,40,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服