1、算法的基本结构,循环结构,新乐一中 刘焕,北京取得2008奥运会主办权。国际奥委会对遴选出的五个城市进行投票表决的操作程序:首先进行第一轮投票,如果有一个城市得票超过一半,那么这个城市取得主办权;如果没有一个城市得票超过一半,那么将其中得票最少的城市淘汰,然后重复上述过程,直到选出一个城市为止。你能利用算法语言叙述上述过程吗?,问题情景,奥运会主办权投票过程的算法结构:,S1 投票;S2 计票。如果有一个城市得票超过一半,那么这个城市取得主办权,进入S3;否则淘汰得票数最少的城市,转入S1;S3 宣布主办城市。,奥运会主办权投票表决流程图,选出该城市,投票,有一城市过半票?,开始,淘汰得票最少
2、者,结束,奥运会主办权投票表决流程图,y,n,这个结构有何特点?,一变量与赋值,变量:指算法中可取不同数值的量,赋值:把一个常数或表达式的值赋给一个变量,一般格式:变量名表达式,分析下面程序执行的结果,输入A,BB = A+BA = B-AB = B-A输出 A,B(运行时从键盘输入3,7),(1),(2),A = -1000A = A+100输出A,将一个变量的值赋给另一个变量,前一个变量的值保持不变;可先后给一个变量赋多个不同的值,但变量的取值总是最近被赋予的值 。,A=900,A,B =7 , 3,写出1+2+3+4+5的一个算法,第一步:s=0;第二步:s=s+1;第三步:s=s+2;
3、第四步:s=s+3;第五步:s=s+4;第六步:s=s+5第七步:输出s.,1+2+3+4+5= 3 +3+4+5= 6 +4+5= 10 +5 =15,思考:上边的式子有怎样的规律呢?,问题情景,引进一个计数变量,通过循环结构实现程序简单化,S1 s0S2 i1S3 ss+iS4 ii+1S5 如果i不大于5,则返回执行S3 ; 如果大于5,则执行S6 。S6 输出s,二.循环结构,在算法中出现从某处开始,按照一定的条件反复执行某些步骤的情况为循环结构.反复执行的步骤称为循环体三.循环结构的框图表示,解决方法就是加上一个判断,判断是否已经加到了,如果加到了则退出,否则继续加。,试分析两种流程
4、的异同点,直到型结构,当型结构,i?,i?,请填上判断的条件。,i i + 1,SS + i,最后结果,直到型结构,当型结构,循环结构,“直到”型循环特点:先运算后判断典型例证:吃饭,“当”型循环特点:先判断后运算典型例证:资格认证,循环体,终止条件,循环变量初始值,循环体,终止条件,循环结构三要素,练习:,写出123+100的一个算法,上述算法的程序框图表示为:,当型循环结构,第二步,如果i100成立,则执行第三步,否则,输出S,结束算法.,第一步,令i=1,S=0.,第三步, S=S+i.,第四步, i=i+1,返回第二步.,如果用直到型循环结构,上述算法的程序框图如何表示?,第四步,判断
5、i100是否成立.若是,则输出S,结束算法;否则,返回第二步.,第一步,令i=1,S=0.,第二步,计算S+i,仍用S表示.,第三步,计算i+1,仍用i表示.,例1.写出123100算法的程序框图.,引伸: 写出求下列式子的一个算法, 并画出流程图,(2) 设计一算法,表示输出1,12,1+2+3,1+2+3+(n-1)+n,(n为正整数)的过程,并用框图表示.,(1) 2+4+6+8+10+100,(求平均数呢?),探究,若将条件“i”改为“ ”,输出结果是什么?,2. 若将” i i + 1” 与 “S S + i”交换,则输出结果是什么?若保持原结果不变,需要作什么修改?,例 7 某工厂
6、2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预计年生产总值超过300万元的最早年份.,第三步,判断所得的结果是否大于300. 若是,则输出该年的年份; 否则,返回第二步.,第一步, 输入2005年的年生产总值.,第二步,计算下一年的年生产总值.,算法分析:,(3)设定循环控制条件:当“a300”时终止循环.,(1)循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则t=0.05a,a=a+t,n=n+1.,(2)初始值:n=2005,a=200.,循环结构:,程序框图:,小结,1.你今天学到了那些知识?2.通
7、过今天的学习告诉我们在以后思考问题时要注意什么?3.今天学到了那些数学思想?,1. 某些循环结构用程序框图可以表示为:,这种循环结构称为直到型循环结构,在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.,2. 还有一些循环结构用程序框图可以表示为:,这种循环结构称为当型循环结构,在每次执行循环体前,对条件进行判断,如果条件满足,就执行循环体,否则终止循环.,循环结构第二课时,巩固循环结构,如右图,执行该程序框图后,输出的S的值 .,i3,5,2程序框图输出的结果为 _.,练 习,3.如图,根据条件填空,把程序框图补充完整,求12008所有偶数之和,
8、则应填:(1) ,(2) .,练 习,4.如图给出的是计算 的值的一个程序框图,其中判断框内应填入的条件是( )A BC D,5如图所示的程序框图中,语句“输出i”被执行的次数为 ( )A32 B33 C34 D35,6如果右边程序框图的输出结果为 -18,那么在判断框中表示的“条件”应该是( )A B C D,7.设计一个算法求的和,并画出程序框图.,二算法建模,1给出10个数,要求把大于或等于40的数找出并输出,设计算法并画出流程图。,解:算法步骤:令i=1;输入数x;判断x40是否成立?若是,则输出x;否则执行第4步;令i=i+1;判断i10是否成立,若是,则结束,否则返回第2步变式:求大于或等于40的数的平均数.,2利用二分法求方程 的近似解的算法流程图.,