1.1算法与程序框图1.1.2程序框图与算法的基本逻辑结构第3课时循环结构、程序框图的画法第一章算法初步课前自主预习1.循环结构的概念及相关内容在算法中,从某处开始,按照一定的条件执行某些步骤的结构称为循环结构,反复执行的步骤称为可以用下图(1)(2)所示的程序框图表示.□01反复□02循环体2.循环结构的分类及特征结构图示特征直到型循环在执行了一次循环体后,对条件进行判断,如果条件就继续执行循环体,直到条件时终止循环□03不满足□04满足结构图示特征当型循环在每次执行循环体前,对条件进行判断,当条件时,执行循环体,否则终止循环□05满足3.程序框图的画法设计一个算法的程序框图通常需要经过以下步骤:第一步,用表述算法步骤(又称为算法分析).第二步,确定每一个算法步骤所包含的,并用相应的程序框图表示,得到该步骤的程序框图.第三步,将所有步骤的程序框图用连接起来,并加上,得到表示整个算法的程序框图.□06自然语言□07逻辑结构□08流程线□09终端框1.判一判(正确的打“√”,错误的打“×”)(1)循环结构中一定包含条件结构.()(2)循环结构分为直到型循环结构和当型循环结构,两种结构不能相互转化.()(3)含有循环结构的程序框图中的判断框内的条件是唯一的.()√××2.做一做(1)以下说法不正确的是()A.顺序结构是由若干个依次执行的处理步骤组成的,每一个算法都离不开顺序结构B.循环结构是在一些算法中从某处开始按照一定条件,反复执行某一处理步骤,故循环结构中一定包含条件结构C.循环结构中不一定包含条件结构D.用程序框图表示算法,使之更加直观形象,容易理解解析循环结构中一定包含条件结构.(2)下列框图是循环结构的是()A.①②B.②③C.③④D.②④解析由循环结构的特点知③④是循环结构,其中①是顺序结构,②是条件结构.(3)执行如图所示的程序框图,输出的s值为________.53解析运行该程序,k=0,s=1,k3;k=0+1=1,s=1+11=2,k3;k=1+1=2,s=2+12=32,k3;k=1+2=3,s=32+132=53,k3不成立,输出s=53.课堂互动探究探究1当型循环结构与直到型循环结构例1设计一个算法,计算12-22+32-42+…+992-1002的值,并画出程序框图.[解]算法步骤如下:第一步,s=0,i=1.第二步,如果i≤100,则执行第三步;否则输出s.第三步,如果i是偶数,则s=s-i2;否则s=s+i2.第四步,i=i+1,转到第二步.程序框图如图所示:拓展提升当型循环结构与直到型循环结构的联系和区别(1)联系①当型循环结构与直到型循环结构可以相互转化;②循环结构中必然包含条件结构,以保证在适当的时候终止循环;③循环结构只有一个入口和一个出口;④循环结构内不存在死循环,即不存在无终止的循环.(2)区别直到型循环结构是先执行一次循环体,然后再判断是否继续执行循环体,当型循环结构是先判断是否执行循环体;直到型循环结构是在条件不满足时执行循环体,当型循环结构是在条件满足时执行循环体.要掌握这两种循环结构,必须抓住它们的区别.【跟踪训练1】设计一个算法,求13+23+33+…+1003的值,并画出程序框图.解算法如下:第一步,使S=0.第二步,使I=1.第三步,使S=S+I3.第四步,使I=I+1.第五步,若I100,则输出S,算法结束;否则,返回第三步.程序框图如图所示:探究2累加、累乘问题算法的程序框图例2画出计算1+13+15+…+1999的值的一个程序框图.[解]程序框图如下图所示.拓展提升用循环结构描述算法应注意的事项(1)不要漏掉流程线的箭头.(2)与判断框相连的流程线上要标注“是”或“否”.(3)循环结构要在某个条件下终止循环,这就需要用条件结构来判断,因此循环结构中一定包含条件结构,但不允许是死循环.【跟踪训练2】设计一个计算1×3×5×…×99的算法,并画出程序框图.解算法如下:第一步,令i=1,S=1.第二步,S=S×i.第三步,i=i+2.第四步,判断i>99是否成立,若成立,则输出S;否则执行第二步.程序框图如图所示:探究3利用循环结构求满足条件的最值问题例3设计一个程序框图,求满足1×3×5×7×…×n60000的最小正整数n.[解]拓展提升求满足条件的最值问题的实质及注意事项(1)实质:利用计算机的快速运算功能,对所有满足条件的变量逐一测试,直到产生第一个不满足条件的值时结束循环.(2)注意事项:①要明确数字的结构特征,决定循环的终止条件与数的结构特征的关系及循环次数.②要注意要统计的数出现的次数与循环次数的区别.③要特别注意判断框中循环变量的取值限制,是“”“”还是“≥”“≤”,它们的意义是不同的.【跟踪训练3】设计一个求1+2+3+…+n20000的最小正整数n的程序框图.解程序框图为:探究4循环结构程序框图的识别与解读例4如图是为求1~1000的所有偶数的和而设计的一个程序框图,将空白处补上,并指明它是循环结构中的哪一种类型,并画出它的另一种循环结构框图.[解]当i≤1000时开始执行①②两部分,结合循环结构的形式可知,该程序为当型循环结构,又i=2,S=0,且计算2+4+6+…+1000的值,故①②两处分别填S=S+i,i=i+2.直到型循环结构如图所示.拓展提升解决此类问题的关键是根据程序框图理解算法的功能.考试考查的重点是程序框图的输出功能、程序框图的补充,以及算法思想和基本的运算能力、逻辑思维能力,题目难度不大,大多可以按照程序框图的流程逐步运算而得到.【跟踪训练4】执行如图所示的程序框图,如果输入的x=0,y=1,n=1,则输出x,y的值满足()A.y=2xB.y=3xC.y=4xD.y=5x解析通过列表可清晰显示程序框图的执行过程:循环体执行次数xx=x+n-12y(y=ny)判断x2+y2≥36是否输出n(n=n+1)执行前011第一次01否2第二次122否3第三次326是是输出x=32,y=6,满足y=4x.探究5循环结构的实际应用例5某商场第一年销售计算机5000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达40000台?画出解决此问题的程序框图.[解]程序框图如图所示.拓展提升利用含循环结构的程序框图解决实际问题的步骤【跟踪训练5】相传古代的印度国王要奖赏国际象棋的发明者,问他需要什么.发明者说:“陛下,在国际象棋的第一个格子里面放1粒麦子,在第二个格子里面放2粒麦子,第三个格子放4粒麦子.以后每个格子中的麦粒数都是它前一个格子中麦粒数的二倍,以此类推(国际象棋棋盘共有64个格子).请将这些麦子赏给我,我将感激不尽.”国王想这还不容易,就让人扛了一袋小麦,但不到一会就没了,最后一算结果,全印度一年生产的粮食也不够.国王很奇怪,小小的“棋盘”,不足100个格子,如此计算怎么能放这么多麦子?试用程序框图表示一下算法过程.解该问题就是求1+2+22+23+24+…+263的和.1.循环结构(1)循环结构的核心是循环体,构造循环结构描述算法,一般来说首先需要确定三件事:①循环变量和初始条件;②算法中反复执行的步骤,即循环体;③循环结构中的循环条件.(2)循环结构不能是永无终止的“死循环”,一定要在某个条件下终止循环,这就需要用条件结构来作出判断,因此循环结构中一定要包含条件结构.2.常见的两种循环结构直到型和当型循环结构的区别与联系(1)区别:直到型循环结构中的循环条件是终止循环的,只要一满足条件,就终止执行循环体;而当型循环结构中的循环条件是保持循环的,只有满足条件才执行循环体.(2)联系:两种循环结构中的条件是对立关系.两种循环结构虽形式不同,但功能和作用是相同的,一般情况下,两种循环结构可以互相转化,最终达到的目的是一样的.3.对计数变量与累计变量的有关理解一般地,循环结构中都有一个计数变量和累加变量:计数变量用于记录循环次数,同时它的取值还用于判断循环是否终止;累加变量用于表示每一步的计算结果.计数变量和累加变量一般是同步执行的,累加一次,计数一次.(1)变量i是一个计数变量,它可以统计执行的循环次数,它控制着循环的开始和结束;算法在执行循环结构时,就赋予计数变量初始值,预示循环的开始,每执行一次循环结构,计数变量的值就发生变化,并在每一次重复执行完循环体时或重新开始执行循环体时,要判断循环体的条件是否已达到终止循环的要求.(2)变量S是一个累加变量,它是我们编写算法中至关重要的量,我们根据要求制定它的变化情况,通常情况下与计数变量有相应关系.每执行一次循环结构,累加变量的值就发生一次变化,并在每一次重复执行完循环体时或重新开始执行循环体时,观察累加变量值的情况,并根据题意对累加变量的要求设置循环结构、终止循环的条件.随堂达标自测1.下列关于循环结构的说法正确的是()A.循环结构中,判断框内的条件是唯一的B.判断框中的条件成立时,要结束循环向下执行C.循环体中要对判断框中的条件变量有所改变才会使循环结构不会出现“死循环”D.循环结构就是无限循环的结构,执行程序时会永无止境地运行下去解析由于判断框内的条件不唯一,故A错误;由于当型循环结构中,判断框中的条件成立时执行循环体,故B错误;由于循环结构不是无限循环的,故C正确,D错误.2.阅读如图所示的程序框图,则输出的S等于()A.14B.30C.20D.55解析第一次循环,S=1,i=2;第二次循环,S=1+22=5,i=3;第三次循环,S=5+32=14,i=4;第四次循环,S=14+42=30,i=5,满足条件,输出S=30.3.某程序框图如图所示,执行该程序,若输入的a值为1,则输出的a值为()A.1B.2C.3D.5解析由题知:a=1,i=1,a=2-1=1,i=2,执行“否”语句;a=2×2-1=3,i=3,执行“否”语句;a=6-3=3,i=4,执行“是”语句,则输出的a为3.4.如图所示的程序框图是为了求出满足3n-2n1000的最小偶数n,那么在和两个空白框中,可以分别填入()A.A1000?和n=n+1B.A1000?和n=n+2C.A≤1000?和n=n+1D.A≤1000?和n=n+2解析程序框图中A=3n-2n,故判断框中应填入A≤1000,由于初始值n=0,要求满足A=3n-2n1000的最小偶数,则执行框中应填入n=n+2.5.设计求1+3+5+7+…+31的算法,并画出相应的程序框图.解第一步,S=0.第二步,i=1.第三步,S=S+i.第四步,i=i+2.第五步,若i不大于31,返回执行第三步;否则执行第六步.第六步,输出S值.程序框图如图: