资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1.1.2,算法的基本逻辑结构,循环结构,前面我们学习了顺序结构和选择结构,并学习了利用变量和赋值来描述算法,变量和赋值能够使算法具有普遍性和代表性,利用它我们可以解决一类问题。,复习回顾,新课,循环结构,在一些算法中,也经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这种结构称为,循环结构,.,反复执行的处理步骤称为,循环体,。,直到型循环:,在执行了一次循环体之后,对控制循环体进行判断,当条件不满足时执行循环体,满足则停止,.,当型循环:,在每次执行循环体前对控制循环条件进行判断,当条件满足时执行循环体,不满足则停止,.,例:写出求,1+2+3+100,的一个算法(累加问题),写出求,123100,的一个算法(累乘问题),1:令n=100,2,:,计算,3,:,输出结果,算法一:,1:0+1=1,2:1+2=3,3:3+3=6,100:4950+100=5050,算法二:,探讨累加、累乘问题的一般算法:,分析算法二:,第(,i,1,),步的结果,i=,第,i,步的结果,表示为:,S=S+i,S,:,累加变量,i,:,计数变量,算 法:,第一步:令,i=1,,,S=0,;,第二步:若,i100,成立,则执行第三步;,否则,输出,S,,,结束算法;,第三步:,S=S+i,;,第四步:,i=i+1,,,返回第二步。,程序框图:,开始,i=1,S=0,i=i+1,i100?,输出,S,结束,是,否,S=S+i,当型循环,算 法:,程序框图:,开始,i=1,S=0,i=i+1,否,i100?,输出,S,结束,是,S=S+i,直到型循环,第一步:令,i=1,;,S=0,第四步:判断,i,100,是否成立,若是,,则输出,S,;,否则,返回第二步;,第二步:计算,S=S+i,;,第三步:计算,i=i+1,;,开始,i=1,S=0,i=i+1,i100?,输出,S,结束,是,否,S=S+i,当型循环,开始,i=1,S=0,i=i+1,否,i100?,输出,S,结束,是,S=S+i,直到型循环,当型循环与直到型循环的区别:,1,、当型循环可以不执行循环体,直到型循环至少执,行一次循环体,.,2,、当型循环先判断后执行,直到型循环先执行后判断,.,3,、对同一算法来说,当型循环和直到型循环的条件,互为反条件,.,1,三种逻辑结构中,顺序结构是最简单的结构,循环结构必然包含条件结构,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过这三种结构来表达。,3,在循环结构中都有一个计数变量和累加变量。计数变量用于记录循环次数,累加变量用于输出结果。计数变量和累加变量一般是同步执行的,累加一次,计数一次。,2,循环结构要在某个条件下终止循环,这就需要条件结构来判断。因此,循环结构中一定包含条件结构,但不允许,“,死循环,”,。,4,画循环结构程序框图前要注意:,确定循环变量和初始条件;,确定算法中反复执行的部分,即循环体;,确定循环的转向位置;,确定循环的终止条件,.,小 结:,第一步:令,i=1,;,S=0,第六步:判断,i,n,是否成立,若是,,结束算法;否则,返回第三步;,第三步:计算,S=S+i,;,第四步:计算,i=i+1,;,否,开始,i=1,S=0,i=i+1,in?,输出,S,结束,是,S=S+i,输入,n,第二步:输入,n,;,第五步:输出,S,;,思考:,改进算法,表示输出,1,,,1+2,,,1+2+3,,,,,1+2+3+,(,n,1,),+n,(,n,是正整数)的过程。,算法如下:,开始,S=1,i=2,S=Si,i=i+1,i100?,输出,S,结束,是,否,练习:,写出求,123100,的一个算法(累乘问题),第一步:令,S=1,;,i=2,第四步:若,i,100,不成立,则返回第二步;,否则,输出,S,,,结束算法;,第二步:,S=S i,;,第三步:,i=i+1,;,练习:,2,、写出求 的和的一个算法,,并画出流程图,1,、写出求,13 5 7 99,的积的一个算法,,并画出流程图。,作业:,2,:写出求,13 5 7 99,的一个算法,并画出流程图。,S1:T=1,S2:,i,=3,S3:T=T,i,S4:i=i+2,S5,:,若,i99,则输出,T,,,算法结束,否则转,S3,解:算法,开始,T=1,i,=3,T=T,i,i=i+2,i99,输出,T,结束,Y,N,下课了。,例,7,某工厂,2005,年的年生产总值为,200,万元,技术革新后预计以后每年的年生产总值都比上一年增长,5%,。设计一个程序框图,输出预计年生产总值超过,300,万元的最早年份。,写出求 (共有,6,个,2,)的值的一个算法,,并画出流程图。,练习:,开始,S=1/2,I,=1,S=1/(2+S),i,=,i,+1,i,6?,输出,S,结束,Y,N,例,1,设计一种算法,输出,1000,以内的能被,3,和,5,整除的所有整数,画出流程图,分析:,1.,这个问题很简单,凡是能被,3,和,5,整除的整数都是,15,的倍数由于,1000=1566+10,,因此在,1000,内,这样的数共有,66,个。,2.,这种前面的顺序结构和选择结构来完成,这样会非常复杂和费时,因此我们将它和变量与赋值联系起来,循环结构就是用来处理这种问题的,解,引入变量,a,表示待输出的数,则,a=15n (n=1,2,66),n,表示从,1,到,66,,反复输出,a,赋值,就能输出,1000,内所有能被,3,和,5,整除的正整数。,算法流程如图:,说明:,1,循环体是算法的核心,循环体,2,循环变量控制着循环的开始和结束,循环变量,3,循环体必须有终止条件,终止条件,你还有其他的算法吗?,例,2,大自然的造化充满无尽的秘密,下面的这些花纹和我们的数学充满了联系,它的花纹刚好是斐波那挈数列的一个自然现象的体现,斐波那挈数列表示这样一列数:,0,1,1,2,3,5,后一项等于前两项的和,请你设计一个算法流程,输出这个数列的前,50,项。,分析:,设这,50,个变量为,a1,a2,a3,a50,这相邻的三项为,a,i-2,a,i-1,a,i,则它们之间存在关系:,a,i-2,+a,i-1,a,i,因此我们可以这样来设计算法:,
展开阅读全文