1、.1设计一算法,求和设计一算法,求和:1+2+3+100:1+2+3+100第一步第一步:确定首数:确定首数a a,尾数尾数b b,项数,项数n n;第二步第二步:利用公式:利用公式“总总和和=(=(首数首数+ +尾数)尾数)项项数数/2”/2”求和;求和;第三步第三步:输出求和结果。:输出求和结果。算法算法1:开始开始结束结束输入输入a,b,n输出输出S2)(nbas.2算法算法2:第一步第一步:从从1开始将开始将自然数自然数1、2、 3、100逐个相加逐个相加;第二步第二步:输出累加结果。输出累加结果。思考思考:1、上边的式子有怎样的规律呢?、上边的式子有怎样的规律呢?S=0S=S+ 1S
2、=S+ 2S=S+ 3S=S+ 1002、怎么用程序框图表示呢?、怎么用程序框图表示呢?S=S+ ii=i+1 4、如何使程序结束?、如何使程序结束?3、i有什么作用有什么作用?S呢?呢?S=S + i.3S=S+ ii= i+1解决方法就是加上一个判断,判断解决方法就是加上一个判断,判断是否已经加到了是否已经加到了100,如果加到了则,如果加到了则退出,否则继续加。退出,否则继续加。直到型结构直到型结构当型结构当型结构S=S+ ii=i + 1是是否否S=S+ i i= i+1否否是是i100?请填上判断的条件。请填上判断的条件。.4当型循环结构: 先判断,后执行. 是-执行直到型循环结构:
3、 先执行,后判断. 否-执行.5当型循环结构当型循环结构开始开始1i 0S 100?i N输出输出S结束结束1ii SSiY.6开始开始1i 0S 100?i Y输出输出S结束结束N直到型循环结构直到型循环结构1ii SSi第三步第三步:求求1+2+3+ +100第一步第一步:令令1,0iS 第四步第四步:若若 成立成立,则输出则输出S,结束算法结束算法.否则否则,返回第二步返回第二步.100i 第二步第二步:SSi1ii .7开始开始1i 0S 100?i N输出输出S结束结束1ii SSiY计数变量计数变量:用于记录循环次数用于记录循环次数,同时还用同时还用于判断循环是否终止于判断循环是否
4、终止.累加变量累加变量:用于输出结果用于输出结果,一般与计数变一般与计数变量同步执行量同步执行,累加一次累加一次,计数一次计数一次.循环终止条件循环终止条件循环体循环体.8 循环结构循环结构在一些算法中,经常会出现从某处开始,按照一定的条件,在一些算法中,经常会出现从某处开始,按照一定的条件,反复执行某些步骤的情况,这就是循环结构。反复执行的反复执行某些步骤的情况,这就是循环结构。反复执行的步骤称为循环体。步骤称为循环体。循环结构有以下两种结构:循环结构有以下两种结构:直到型循环结构直到型循环结构当型循环结构当型循环结构.9循环结构的设计步骤循环结构的设计步骤(1)(1)确定循环结构的循环变量
5、和初始条件确定循环结构的循环变量和初始条件; ;(2)(2)确定算法中需要反复执行的部分确定算法中需要反复执行的部分, ,即循环体;即循环体;(3)(3)确定循环的终止条件确定循环的终止条件. .循环结构的三要素循环结构的三要素循环变量循环变量, ,循环体、循环的终止条件循环体、循环的终止条件. . 循环结构一定包含条件结构循环结构一定包含条件结构,用以控制循环过程用以控制循环过程,避免出现避免出现“死循环死循环”.判断框内写上条件判断框内写上条件,两个出口分两个出口分别对应终止条件成立与否别对应终止条件成立与否,其中一个指向循环体其中一个指向循环体,经过经过循环体回到判断框的入口处循环体回到
6、判断框的入口处.10思考思考:如何用自然语言表述:如何用自然语言表述1.1-5中的算法?改进这一算法,中的算法?改进这一算法,表示输出表示输出1,12,123,123(n1)n (nN)的过程。)的过程。算法:算法:第一步第一步:令:令i1,s0;第二步第二步:计算:计算ssi;第三步第三步:计算:计算ii1;第四步第四步:判断:判断i n是否是否成立。若是,则输出成立。若是,则输出s;否则返回第二步。否则返回第二步。结束输出SS= S+i i= i+1in?否是S=0i=1开始1.1-5.11改进后的直到型循环结构程序图为:结束输出SS= S+i i= i+1否是S=0i=1开始输入输入ni
7、n?算法:算法:第一步第一步:令:令i1,s0;第二步第二步:输入一个正整数:输入一个正整数n。第三步第三步:计算:计算ssi;第四步第四步:计算:计算ii1;第五步第五步:输出:输出s第六步第六步:判断:判断i n是否成立。是否成立。若是,则结束算法;若是,则结束算法;否则返回第三步。否则返回第三步。.12 例例7.某工厂某工厂2005年的生产总值为年的生产总值为200万元万元,技术革新后技术革新后预计以后每年的生产总值比上一年增加预计以后每年的生产总值比上一年增加5%.设计一个程序设计一个程序框图,输出预计年生产总值超过框图,输出预计年生产总值超过300万元的最早年份万元的最早年份.算法算
8、法第一步:输入第一步:输入2005年的年生产总值年的年生产总值.第二步:计算下一年的年生产总值第二步:计算下一年的年生产总值.第三步:判断所得结果是否大于第三步:判断所得结果是否大于300.若是,输出该年若是,输出该年年份年份;否则,返回第二步否则,返回第二步.循环结构的设计步骤循环结构的设计步骤(1)(1)确定循环结构的确定循环结构的循环变量循环变量和和初始条件初始条件; ;(2)(2)确定算法中需要反复执行的部分确定算法中需要反复执行的部分, ,即即循环体循环体;(3)(3)确定循环的确定循环的终止条件终止条件. .,a n200,2005an 0.051taaatnn 300?a 直到型
9、循环结构直到型循环结构0.05aa 300?a 当型循环结构当型循环结构.13开始开始2005n 200a 0.05ta aat 1nn 300?a 否否结束结束输出输出n是是开始开始2005n 200a 300?a 结束结束输出输出n否否当型循环结构当型循环结构直到型循环结构直到型循环结构0.05ta aat 1nn 是是.14程序框图的画法程序框图的画法 通过以上两个知识点可以看出,画出一个算法的程序通过以上两个知识点可以看出,画出一个算法的程序框图很有必要框图很有必要.我们可以借助三种基本逻辑结构来表示这我们可以借助三种基本逻辑结构来表示这样的算法,使得算法清楚、简练,便于阅读和交流样的
10、算法,使得算法清楚、简练,便于阅读和交流.一般地,一个算法的程序框图有以下几个步骤:第一步:用自然语言表述算法步骤第一步:用自然语言表述算法步骤.第二步:确定每一个算法步骤所包含的逻辑结构,并第二步:确定每一个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图用相应的程序框图表示,得到该步骤的程序框图.第三步:将所有步骤的程序框图用流程线连接起来,第三步:将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图并加上终端框,得到表示整个算法的程序框图.15【例【例2】写出用写出用“二分法二分法”求方程求方程 近似解的算近似解的算法法)0(022 xx第
11、一步:令第一步:令, 2)(2 xxf给定精确度给定精确度d第三步:取区间中点第三步:取区间中点2bam .,ba含零点的区间为含零点的区间为.,bm第四步:若第四步:若( )()0,f af m 则含零点的区间为则含零点的区间为;,ma否则,否则,将新得到的含零点的区间仍记为将新得到的含零点的区间仍记为第二步:确定区间第二步:确定区间满足满足0)()( bfaf,ba第五步:判断第五步:判断,ba的长度是否小于的长度是否小于d或或f(m)是否等于是否等于0若是,则若是,则m是方程的近似值;否则,返回第三步是方程的近似值;否则,返回第三步顺序结构顺序结构条件结构条件结构循环结构循环结构.16第
12、一步:令第一步:令, 2)(2 xxf给定精确度给定精确度d第三步:取区间中点第三步:取区间中点2bam 第二步:确定区间第二步:确定区间满足满足0)()( bfaf,ba顺序结构顺序结构2( )2f xx 输入精确度输入精确度d和初始值和初始值,a b2abm .17.,ba含零点的区间为含零点的区间为.,bm第四步:若第四步:若( )()0,f af m 则含零点的区间为则含零点的区间为;,ma否则,否则,将新得到的含零点的区间仍记为将新得到的含零点的区间仍记为条件结构条件结构( ) ()0?f a f m am 否否bm 是是.18|abd或或()0?f m 第四步第四步第三步第三步否否
13、输出输出m是是2bam 否则,否则,第三步:取区间中点第三步:取区间中点.,ba含零点的区间为含零点的区间为.,bm第四步:若第四步:若( )()0,f af m 则含零点的区间为则含零点的区间为;,ma将新得到的含零点的区间仍记为将新得到的含零点的区间仍记为第五步:判断第五步:判断,ba的长度是否小于的长度是否小于d或或f(m)是否等于是否等于0若是,则若是,则m是方程的近似值;否则,返回第三步是方程的近似值;否则,返回第三步循环结构循环结构.19|abd或或()0?f m am 否否bm 是是2abm ( ) ()0?f a f m 否否输入精确度输入精确度d和初始值和初始值,a b2( )2f xx 开始开始结束结束输出输出m是是.20课堂总结课堂总结直到型结构直到型结构当型结构当型结构