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