§2.2算法框图的基本结构及设计2.2.3循环结构第二章算法初步•1开始输入a1,a2,a3,a4,a5将a1,a2比较,大数记作b将b,a3比较,大数记作b将b,a4比较,大数记作b将b,a5比较,大数记作b输出b结束1.若要从五个不同的数中找出最大数,我们可以用什么结构呢?顺序结构如图所示2.设计一个算法,求100个数中的最大数,画出算法框图.我们是否还可以用上题的方法呢?不能,如果用上述的方法过程太繁杂了.下面介绍另一种结构来解决这类问题,即循环结构.1.进一步理解程序框图的概念;2.掌握运用程序框图表达循环结构的算法;(重点)3.掌握三种结构的区别与联系.例1设计算法,输出1000以内能被3和5整除的所有正整数,画出算法框图.分析:凡是能被3和5整除的正整数都是15的倍数,由于1000=15×66+10,因此1000以内一共有66个这样的正整数.解:引入变量a表示待输出的数,则a=15n(n=1,2,3,…,66).n从1变到66,反复输出a,就能输出1000以内的所有能被3和5整除的正整数.循环变量初始值结束开始n=1a=15n输出an=n+1n66否是循环体循环的终止条件循环变量的后继变量n控制着循环的开始和结束,称为循环变量.开始输出“y不是闰年”4整除y100整除y400整除y输出“y是闰年”否否是是是否y=2000y=y+1y2500否结束是例2阅读图中所示的框图,回答下列问题:(1)变量y在这个算法中的作用是什么?(2)这个算法的循环体是哪一部分,功能是什么?变量y是循环变量,控制着循环的开始和结束.虚线所框部分,其功能是判断年份y是否是闰年,并输出结果.(3)这个算法的处理功能是什么?由前面的分析,我们知道,这个算法的处理功能是:判断2000~2500(包括2500)年中,哪些年份是闰年,哪些年份不是闰年,并输出结果.循环结构的算法框图为:循环变量=初始值循环体循环变量=循环变量的后继值终止条件是否成立否是开始结束例3求100个数中的最大数,画出算法框图.分析:引入变量b与i,并用ai(i=1,2,3,…,100)表示待比较的数.赋予b的初始值b=a1,算法中反复执行的部分为:比较b与ai,如果bai,则b=ai.框图如图所示:这就是循环体是否在循环体中,操作都是一样的,待比较的数可能有变化.因此用变量i来表示待比较的数的序号,则变量i的初始值为2,终止值为100.这个循环体不能无限制地执行,当i=100时,进行的是最后一次比较,因此循环的终止条件为i100.是是开始输入a1,a2,…,a100i=2b=a1baib=ai否i=i+1i100输出b结束否赋予变量初始值循环体循环的终止条件循环变量的后继解:算法框图如图:本节主要介绍如何用循环结构来描述算法,一般地,在画出算法框图之前,需要确定三要素:①确定循环变量和初始条件;②确定算法中反复执行的部分,即循环体;③确定循环的终止条件.例4有这样一列数:0,1,1,2,3,5,…,从第三项起每一项等于前两项的和.设计一个算法框图,输出这个数列的前50项.分析:设置50个变量:A1,A2,A3,…,A50,表示数列的前50项.由这个递推关系知道,只要知道这个数列的前两项,就能将后面的所有项都输出来,因为算法中,反复计算和输出的步骤都是一样的,因此,可以用循环结构来描述这个算法.如果设Ai-2,Ai-1,Ai分别表示数列中连续的三项,则Ai-1+Ai-2Ai=(1)循环变量和初始条件设下标i为循环变量,初始条件为:3为i的初始值.(2)循环体算法中反复执行部分为:Ai=Ai-1+Ai-2;输出Ai.(3)终止条件当i50时,算法结束.解:算法框图如图所示:i50开始A1=0,A2=1输出Aii=i+1结束否是i=3Ai=Ai-1+Ai-2输出A1,A2思考:(1)你还记得二分法吗?二分法的步骤是什么?(2)怎样设计本题的算法?(3)算法框图如何画?我们知道,对于给定的一元方程f(x)=0,要求精度为0.01的近似解的算法如下:(2)如果不为0,则分下列两种情形:【分析理解】(2)如果区间长度大于0.01,则在新的有解区间的基础上重复上述步骤.5.判断新的有解区间的长度是否不大于0.01:(1)如果区间长度不大于0.01,则此区间内任意值均可作为方程的近似解;在上述算法中:(1)循环变量和初始条件(2)循环体(3)终止条件注意终止条件解:算法框图如图:开始结束是否是是否否思考:请观察给出的框图,这是一个求和算法的框图,请运行几步看一看,指出该循环结构的循环体,循环变量和循环的终止条件.开始s=0i=1输出ss=s+ii4结束否是i=i+1循环变量:i终止条件:i4处理功能:s=1+2+3+4=10输出结果:10循环体开始s=0i=1输出ss=s+ii4结束否是i=i+1变式练习:若改为右图,则输出的结果为______.141.(安徽高考)如图所示,算法框图的输出结果是()A.34B.55C.78D.89B图1是否结束输出si=i+1i≤ni=1,s=1输入n开始s=s+(i-1)2.(广东高考)执行如图所示的程序框图,若输入n的值为3,则输出S的值是()A.1B.2C.4D.7C3.(北京高考)执行如图所示的程序框图,输出的S值为()A.1B.3C.7D.15【解析】选C.k=0,S=0;S=0+20=1,k=1;S=1+21=3,k=2;S=3+22=7,k=3.C4.(天津高考)阅读如图所示的程序框图,运行相应的程序,若输入x的值为1,则输出S的值为()A.64B.73C.512D.585【解析】因为输入的x的值为1,第一次循环S=1,x=2;第二次循环S=9,x=4;第三次循环S=73,此时满足输出条件,故输出S的值为73.B开始输入xs=0s=s+x3x=2xs≥50输出s结束是否1.理解循环结构的逻辑,主要用在反复做某项工作的问题中;2.画循环结构程序框图前,需确定以下几个要素:①确定循环变量和初始条件;②确定算法中反复执行的部分,即循环体;③确定循环的转向位置;④确定循环的终止条件.3.选择结构与循环结构的区别与联系:区别:选择结构通过判断分支只是执行一次;循环结构通过条件判断可以反复执行.联系:循环结构是通过选择结构来实现的.“知人”,从知道自己到了解他人,都要摆对位置才行.