时循环结构程序框图的画法.pptx
北京取得北京取得20082008奥运会主办权奥运会主办权.国际奥委会对遴选出国际奥委会对遴选出的五个城市进行投票表决的操作程序:的五个城市进行投票表决的操作程序:首先进行第一轮投票,如果有一个城市得票超过首先进行第一轮投票,如果有一个城市得票超过一半,那么这个城市取得主办权;如果没有一个城市一半,那么这个城市取得主办权;如果没有一个城市得票超过一半,那么将其中得票最少的城市淘汰;然得票超过一半,那么将其中得票最少的城市淘汰;然后重复上述过程,直到选出一个城市为止后重复上述过程,直到选出一个城市为止.问题:问题:你能利用算法语言叙述上述过程吗?你能利用算法语言叙述上述过程吗?第1页/共30页第一步,投票第一步,投票.第二步,统计票数第二步,统计票数.如果有一个城市得票超过一半,如果有一个城市得票超过一半,那么这个城市取得主办权,转入第三步;否则淘汰那么这个城市取得主办权,转入第三步;否则淘汰得票数最少的城市,转入第一步得票数最少的城市,转入第一步.第三步,宣布主办城市第三步,宣布主办城市.奥运会主办权投票过程的算法结构:第2页/共30页开始投票有一个城市得票数超过总票 数的一半?输出该城市结束淘汰得票数最少的城市是是否否 在一些算法中,经常会出现从某些地方开始,按照一定条件,反复执行某一步骤的情况,这就是循环结构.第3页/共30页算法的循环结构算法的循环结构 在在一一些些算算法法中中,经经常常会会出出现现从从某某处处开开始始,按按照照一一定定的的条条件件反反复复执执行行某某些些步步骤骤的的情情况况,这这就就是是循循环环结结构构,反反复执行的步骤称为复执行的步骤称为循环体循环体.第4页/共30页一些循环结构用程序框图可以表示为:一些循环结构用程序框图可以表示为:循环体循环体满足条件?满足条件?是是否否这种循环结构称为这种循环结构称为直到型循环结构直到型循环结构.特征:特征:在执行了一次循在执行了一次循环体后,对条件进行判断,环体后,对条件进行判断,如果条件不满足,就继续执如果条件不满足,就继续执行循环体,直到条件满足时行循环体,直到条件满足时终止循环终止循环.第5页/共30页还有一些循环结构用程序框图可以表示为:还有一些循环结构用程序框图可以表示为:循环体循环体满足条件?满足条件?是是否否这种循环结构称为这种循环结构称为当型循环结构当型循环结构.在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则终止循环.第6页/共30页例例1 1:设计一个计算:设计一个计算1+2+3+1001+2+3+100的值的算法,并画出程的值的算法,并画出程序框图序框图.第一步,第一步,0+1=1.0+1=1.第二步,第二步,1+2=3.1+2=3.第三步,第三步,3+3=6.3+3=6.第四步,第四步,6+4=10.6+4=10.第一百步,第一百步,4 950+100=5 050.4 950+100=5 050.算法分析:算法分析:通常,我们按照下列过程计算通常,我们按照下列过程计算1+2+1001+2+100的值的值第7页/共30页我们用一个我们用一个累加变量累加变量S表示每一步的计算结果,即把表示每一步的计算结果,即把S+i的结果仍记为的结果仍记为S,从而把第,从而把第i步表示为步表示为S=S+i,其中,其中S的的初始值为初始值为0,i依次取依次取1,2,100,由于,由于i同时记录了循同时记录了循环的次数,所以也称为环的次数,所以也称为计数变量计数变量.第一步,第一步,令令i=1,S=0.第二步,第二步,如果如果i100成立,则执行第三步,否则,输出成立,则执行第三步,否则,输出S,结束算法,结束算法.第三步,第三步,S=S+i.第四步,第四步,i=i+1,返回第二步,返回第二步.第8页/共30页上述算法的程序框图表示为:上述算法的程序框图表示为:当型循环结构当型循环结构.开始开始i=1结束结束输出输出S否否是是S=0S=S+ii100?i=i+1第9页/共30页 如果用如果用直到型循环结构直到型循环结构,上述算,上述算法的程序框图如何表示?法的程序框图如何表示?第一步,第一步,令令i=1=1,S=0.S=0.第二步,第二步,计算计算S+S+i,仍用,仍用S S表示表示.第三步,第三步,计算计算i+1+1,仍用,仍用i表示表示.第四步,第四步,判断判断i100100是否成立是否成立.若是,若是,则输出则输出S S,结束算法;否则,返回第,结束算法;否则,返回第二步二步.开始开始i=1i100?是是输出输出S结束结束S=0i=i+1S=S+i否否第10页/共30页设计算法求设计算法求的值,并画出程序框图的值,并画出程序框图.分析:分析:这是一个共有这是一个共有100100项的累加求和题,需要设计一个计项的累加求和题,需要设计一个计数变量,一个累加变量,用循环结构实现这一算法数变量,一个累加变量,用循环结构实现这一算法.第11页/共30页解:解:算法如下:算法如下:第一步,令第一步,令S=0,k=1.S=0,k=1.第二步,若第二步,若k k100100成立,则执行第三步;成立,则执行第三步;否则,输出否则,输出S S,结束算法,结束算法.第三步,第三步,第四步,第四步,k=k+1k=k+1,返回第二步,返回第二步.程序框图如图所示:程序框图如图所示:第12页/共30页利用循环结构表示算法的步骤利用循环结构表示算法的步骤利用循环结构表示算法,第一要准确地表示累计的变量;利用循环结构表示算法,第一要准确地表示累计的变量;第二要注意在哪一步开始循环,满足什么条件不再执行第二要注意在哪一步开始循环,满足什么条件不再执行循环体循环体.提升总结提升总结第13页/共30页例例2 2 某工厂某工厂20052005年的年生产总值为年的年生产总值为200200万元,技术革新后预万元,技术革新后预计以后每年的年生产总值都比上一年增长计以后每年的年生产总值都比上一年增长5%.5%.设计一个程序设计一个程序框图,输出预计年生产总值超过框图,输出预计年生产总值超过300300万元的最早年份万元的最早年份.算法分析算法分析:第一步,第一步,输入输入20052005年的年生产总值年的年生产总值.第二步,第二步,计算下一年的年生产总值计算下一年的年生产总值.第三步,第三步,判断所得的结果是否大于判断所得的结果是否大于300.300.若是,则输出该年若是,则输出该年的年份;否则,返回第二步的年份;否则,返回第二步.第14页/共30页循环结构:(1)确定循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则循环体为t=0.05a,a=a+t,n=n+1.(2)初始化变量:n=2 005,a=200.(3)设定循环控制条件:当“a300”时终止循环.第15页/共30页开始开始n=2005a=200t=0.05aa=a+tn=n+1 a300?结束结束输出输出n是是否否程序框图程序框图:第16页/共30页程序框图的画法程序框图的画法用用“二分法二分法”求方程求方程x x2 2-2=0(x0)-2=0(x0)的近似解的算法如何设的近似解的算法如何设计?计?第一步,第一步,令令f(x)=xf(x)=x2 2-2-2,给定精确度,给定精确度d.d.第二步,第二步,确定区间确定区间aa,bb,满足,满足f(a)f(a)f(b)0.f(b)0.第三步,第三步,取区间中点取区间中点m=(a+b)/2.m=(a+b)/2.第17页/共30页第四步,第四步,若若f(a)f(a)f(m)0f(m)0,则含零点的区间为,则含零点的区间为aa,mm;否;否则,含零点的区间为则,含零点的区间为mm,b.b.将新得到的含零点的区间仍将新得到的含零点的区间仍记为记为aa,b.b.第五步,第五步,判断判断aa,bb的长度是否小于的长度是否小于d d或或f(m)f(m)是否等于是否等于0.0.若是,则若是,则m m是方程的近似解;否则,返回第三步是方程的近似解;否则,返回第三步.第18页/共30页思考思考1:1:该算法中哪几个步骤可以用顺序结构来表示?这个该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何?顺序结构的程序框图如何?f(x)=xf(x)=x2 2-2-2输入精确度输入精确度d d和初始值和初始值a a,b b第19页/共30页思考思考2:2:该算法中第四步是什么逻辑结构?这个步骤用程序该算法中第四步是什么逻辑结构?这个步骤用程序框图如何表示?框图如何表示?f(a)f(m)0?a=mb=m是是否否第20页/共30页思考思考3:3:该算法中哪几个步骤构成循环结构?这个循环结构用该算法中哪几个步骤构成循环结构?这个循环结构用程序框图如何表示?程序框图如何表示?第三步第三步第四步第四步|a-b|d或或f(m)=0?输出输出m是是否否第21页/共30页思考思考4:4:根据上述分析,根据上述分析,你能画出表示整个算法你能画出表示整个算法的程序框图吗?的程序框图吗?开始开始结束结束f(a)f(m)0?f(a)f(m)0?a=ma=mb=mb=m是是否否|a-b|d|a-b|d或或f(m)=0?f(m)=0?输出输出m m是是否否f(x)=xf(x)=x2 2-2-2输入精确度输入精确度d d和初始值和初始值a a,b b第22页/共30页1.1.如图给出的是计算如图给出的是计算 的值的一个程序框图,其中判断框的值的一个程序框图,其中判断框内应填入的条件是内应填入的条件是_._.解:解:由框图可知,该过程由框图可知,该过程共执行循环体共执行循环体1010次次.答案:i10?S SS SS S S S第23页/共30页2.2.画出计算画出计算1 12 24 42 27 72 21001002 2的值的程序框图的值的程序框图.解:解:算法分析:需要一个计数变量算法分析:需要一个计数变量和一个累加变量,和一个累加变量,将累加变量的初始值设为将累加变量的初始值设为0 0,计数,计数变量的值每次加变量的值每次加3 3,从,从1 1到到100.100.程程序框图如图所示:序框图如图所示:?,第24页/共30页3.3.设计一个用有理指数幂逼近无理指数幂设计一个用有理指数幂逼近无理指数幂 的算的算法,并估计法,并估计 的近似值,画出算法的程序框图的近似值,画出算法的程序框图.第25页/共30页解:解:算法步骤如下:算法步骤如下:第一步,第一步,给定精确度给定精确度d d,令,令i=1=1;第二步,第二步,取出取出 的到小数点后第的到小数点后第i位的不足近似值,记位的不足近似值,记为为a;a;取出取出 的到小数点后第的到小数点后第i位的过剩近似值,记为位的过剩近似值,记为b b;第三步,第三步,计算计算m=5m=5b b-5-5a a;第四步,第四步,若若md,md,则得到则得到 的近似值为的近似值为5 5a a;否则,将;否则,将i的的值增加值增加1,1,返回第二步;返回第二步;第五步,第五步,得到得到 的近似值为的近似值为5 5a a.第26页/共30页程序框图如下:程序框图如下:开始输入误差dmd?m=5b-5a输出5a结束否否i=1是是将的到小数点后第i位的不足近似值记为a将的到小数点后第i位的过剩近似值记为bi=i+1第27页/共30页开始S=0i=i+1i=1S=S+i*ii100?输出S 结束否否是是4.4.设计一个算法求设计一个算法求1 12 22 22 23 32 2.+99.+992 2+100+1002 2的值,并画的值,并画出程序框图出程序框图.程序框图如下:程序框图如下:第28页/共30页设计一个算法的程序框图的基本思路:设计一个算法的程序框图的基本思路:第一步,第一步,用自然语言表述算法步骤用自然语言表述算法步骤.第二步,第二步,确定每个算法步骤所包含的逻辑结构,并用相应确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示的程序框图表示.第三步,第三步,将所有步骤的程序框图用流程线连接起来,并加将所有步骤的程序框图用流程线连接起来,并加上两个终端框上两个终端框.第29页/共30页感谢您的观看。第30页/共30页