算法与程序框图改j

上传人:汽*** 文档编号:578448955 上传时间:2024-08-24 格式:PPT 页数:58 大小:628.60KB
返回 下载 相关 举报
算法与程序框图改j_第1页
第1页 / 共58页
算法与程序框图改j_第2页
第2页 / 共58页
算法与程序框图改j_第3页
第3页 / 共58页
算法与程序框图改j_第4页
第4页 / 共58页
算法与程序框图改j_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《算法与程序框图改j》由会员分享,可在线阅读,更多相关《算法与程序框图改j(58页珍藏版)》请在金锄头文库上搜索。

1、1.1.1 算法的概念算法的概念学习目标:学习目标: 1理解算法是描述处理有有限多个步骤的问题理解算法是描述处理有有限多个步骤的问题的方法的一种的方法的一种“语言语言”; 2会用自然语言描述解方程组等数学问题的算会用自然语言描述解方程组等数学问题的算法。法。学习重点:能从整体上把握具体问题的解题步骤。学习重点:能从整体上把握具体问题的解题步骤。学习难点:会用明确的语言描述算法的每一个步骤。学习难点:会用明确的语言描述算法的每一个步骤。问题问题1请你写出用加减消元法解以下二元一次请你写出用加减消元法解以下二元一次方程组的详细求解过程方程组的详细求解过程. 对于一般的二元一次方程组也可以按照对于一

2、般的二元一次方程组也可以按照上述步骤求解上述步骤求解.第一步第一步:2+得得: 5x=1 第二步第二步:解解得得:x=1/5第三步第三步:将将x=1/5代入代入得得:y=3/5第四步第四步:得到方程组的解为得到方程组的解为: 这些步骤就构成了解二元一次方程组的这些步骤就构成了解二元一次方程组的算法算法,我们可以根据这一算法编制计算机程序,我们可以根据这一算法编制计算机程序,“教会教会”计算机解二元一次方程组。计算机解二元一次方程组。算法的概念与特征算法的概念与特征 算法算法(algorithm)这个词出现于这个词出现于12世纪,世纪,指的是用阿拉伯数字进行算术运算的过程。指的是用阿拉伯数字进行

3、算术运算的过程。 在数学上在数学上,“算法算法”通常是指按照一定规通常是指按照一定规则解决某一类问题的则解决某一类问题的明确明确和和有限有限的步骤。算的步骤。算法具有法具有程序性、有限性、构造性、精确性程序性、有限性、构造性、精确性的的特点。现在,算法通常可以编成计算机程序,特点。现在,算法通常可以编成计算机程序,让计算机执行并解决问题。让计算机执行并解决问题。算法学的发展算法学的发展 随着科学技术的日新月异随着科学技术的日新月异, ,算法学也算法学也得到了前所未有的发展得到了前所未有的发展, ,现在已经发展现在已经发展到了各个领域到了各个领域. .有遗传算法有遗传算法, ,排序算法排序算法,

4、 ,加密算法加密算法, ,蚁群算法等蚁群算法等, ,与生物学与生物学, ,计算计算机科学等有着很广泛的联系机科学等有着很广泛的联系, ,尤其是在尤其是在现在的航空航天中现在的航空航天中, ,更是有着更广泛的更是有着更广泛的应用应用. . 很多复杂的运算都是借助计算机和很多复杂的运算都是借助计算机和算法来完成的算法来完成的, ,在高端科学技术中有着在高端科学技术中有着很重要的地位很重要的地位. .科学家王小云主导破解两大密科学家王小云主导破解两大密码算法获百万大奖码算法获百万大奖杨振宁教授为杨振宁教授为获得获得“求是杰出科求是杰出科学家奖学家奖”的山东大的山东大学特聘教授王小云学特聘教授王小云颁

5、发了获奖证书和颁发了获奖证书和奖金奖金100100万元人民万元人民币,表彰其密码学币,表彰其密码学领域的杰出成就。领域的杰出成就。 例例1:任意给定一个大于任意给定一个大于2的整数的整数n,试设计一个,试设计一个程序或步骤对程序或步骤对n是否为质数做出判定。是否为质数做出判定。算法分析算法分析:第一步第一步:给定大于给定大于2的整数的整数n第二步:令第二步:令i=2 第三步第三步:用用i除除n,得到余数,得到余数r 第四步第四步:判断判断r=0是否成立,若是,则是否成立,若是,则n不是不是质数,结束算法;若否,质数,结束算法;若否,i=i+1; 第五步第五步:判断判断in-1是否成立,若是,则

6、是否成立,若是,则n是质是质数,结束算法;若否,则返回第三步。数,结束算法;若否,则返回第三步。 若是若是,则则m为所求为所求; 例例2:用二分法设计一个求方程用二分法设计一个求方程x2-2=0(x0)的的近似根的算法近似根的算法.算法分析算法分析:设所求近似根与精确解的差的绝对设所求近似根与精确解的差的绝对值不超过值不超过=0.005.第一步第一步:令令f(x)=x2-2.因为因为f(1)0,所以设所以设a=1,b=2.第二步第二步:令令判断判断f(m)是否为是否为0.若否若否,则继续判断则继续判断f(a) f(m)大于大于0还是小于还是小于0.第三步第三步:若若f(a) (m)0,则令则令

7、a=m;否则否则,令令b=m. 第四步第四步:判断判断|a-b|7时时)解解:y与与x之间的函数关系为之间的函数关系为:(当当0x7时时)(当当x7时时)求该函数值的算法分析求该函数值的算法分析:第一步第一步:输入每月用水量输入每月用水量x;第二步第二步:判断判断x是否大于是否大于7。若是,则。若是,则y=1.9x4.9;若否,则;若否,则y=1.2x。第三步第三步:输出应交纳的水费输出应交纳的水费y。作业作业:课本课本P51页复习参考题页复习参考题B组组T3: 设计一个算法,判断一个正的设计一个算法,判断一个正的n(n2)位数位数是不是回文数?是不是回文数? (只需用自然语言写出算法步骤只需

8、用自然语言写出算法步骤) 注:回文数是指从左到右读与从右到左读注:回文数是指从左到右读与从右到左读都是一样的正整数,如都是一样的正整数,如121,94249等。等。1.1.2 程序框图(程序框图(1) 学习目标:学习目标: 1了解程序框图的顺序结构、条件结构的画了解程序框图的顺序结构、条件结构的画法及功能;法及功能; 2能在能在“人肉计算机人肉计算机”中运行程序框图描述中运行程序框图描述的算法。的算法。学习重点:学习重点: 启动启动“人肉计算机人肉计算机”,运行大量简单程序。,运行大量简单程序。学习难点:学习难点: 如何用多重条件结构处理复杂的分类讨论问题。如何用多重条件结构处理复杂的分类讨论

9、问题。 从上节课我们知道从上节课我们知道:算法可以用自然语言来描算法可以用自然语言来描述述.如例如例1: 为了使算法的程序或步骤表达得更为直观为了使算法的程序或步骤表达得更为直观,我们更经常地用我们更经常地用图形图形方式来表示它方式来表示它. 任意给定一个大于任意给定一个大于1的整数的整数n,试设计一个程,试设计一个程序或步骤对序或步骤对n是否为质数做出判定。是否为质数做出判定。算法分析算法分析:第一步第一步:判断判断n是否等于是否等于2. 若若n=2,则则n是质数是质数;若若n2,则执行第二步则执行第二步. 第二步第二步:依次检验从依次检验从2到到(n-1)这些数能否整除这些数能否整除n。若

10、有这样的数,则。若有这样的数,则n不是质数;若没有这样不是质数;若没有这样的数,则的数,则n是质数。是质数。开始开始输入输入ni=2求求n除以除以i的余数的余数ri的值增加的值增加1仍用仍用i表示表示in或或r=0?n不是质数不是质数结束结束是是否否是是n是质数是质数否否r=0?设设n是一个大是一个大于于2的整数的整数.一般用一般用i=i+1表示表示. i=i+1说明说明:i表示从表示从2(n-1)的所有正整数的所有正整数,用用以判断例以判断例1步骤步骤2是否是否终止终止,i是一个计数变是一个计数变量量,有了这个变量有了这个变量,算算法才能依次执行法才能依次执行.逐逐步考察从步考察从2(n-1

11、)的的所有正整数中是否有所有正整数中是否有n的因数存在的因数存在.思考:思考:比较自然语言和程序框图这两种不同的比较自然语言和程序框图这两种不同的表达方式,你觉得用程序框图来表达算法有哪表达方式,你觉得用程序框图来表达算法有哪些优点些优点?答:更加答:更加简洁,直观,执行的流程更清晰简洁,直观,执行的流程更清晰。 程序框图程序框图又称又称流程图,流程图,是一种用规定的图形、是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的指向线及文字说明来准确、直观地表示算法的图形。图形。基本的程序框和它们各自表示的功能如下基本的程序框和它们各自表示的功能如下:图形符号图形符号名称名称功能功能终端框

12、终端框(起止框起止框)表示算法的起始和结表示算法的起始和结束束输入、输输入、输出框出框表示算法输入和输出表示算法输入和输出的信息的信息处理框处理框(执行框执行框)根据某条件是否成立改根据某条件是否成立改变程序执行的流向变程序执行的流向判断框判断框赋值、计算等赋值、计算等流程线流程线连接程序框连接程序框连接点连接点连接程序框图的两部分连接程序框图的两部分程序框图的三种基本的逻辑结构程序框图的三种基本的逻辑结构顺序结构顺序结构条件结构条件结构循环结构循环结构开始开始输入输入ni=2求求n除以除以i的余数的余数ri=i+1in或或r=0?n不是质数不是质数结束结束是是否否是是n是质数是质数否否r=0

13、?顺序结构顺序结构用程序框图来表示算法,有用程序框图来表示算法,有三种不同的基本逻辑结构:三种不同的基本逻辑结构:条件结构条件结构循环结构循环结构(1)顺序结构顺序结构-是由若干个依次执行的处是由若干个依次执行的处理步骤组成的。这是任何一个算法都离不开理步骤组成的。这是任何一个算法都离不开的基本结构。的基本结构。例例1:已知一个三角形的三边边长分别为已知一个三角形的三边边长分别为2,3,4,利用海伦,利用海伦-秦九韶公式设计一个算法,求出秦九韶公式设计一个算法,求出它的面积,画出算法的程序框图。它的面积,画出算法的程序框图。已知三角形三边长分别为已知三角形三边长分别为a,b,c,则三角则三角形

14、的面积为形的面积为 其中其中 这个公式被称为这个公式被称为海伦海伦秦九韶秦九韶公式公式.算法分析算法分析:第二步第二步:计算计算p的值。的值。第三步第三步:计算计算S=第四步第四步:输出输出S的值。的值。程序框图程序框图:开始开始输出输出S结束结束(2)条件结构条件结构-在一个算法中,经常会遇在一个算法中,经常会遇到一些条件的判断,算法的流向根据条件到一些条件的判断,算法的流向根据条件是否成立有不同的流向。条件结构就是处是否成立有不同的流向。条件结构就是处理这种过程的结构。理这种过程的结构。例例2:任意给定任意给定3个正实数,设计一个算法,判断个正实数,设计一个算法,判断分别以这分别以这3个数

15、为三边边长的三角形是否存在。个数为三边边长的三角形是否存在。画出这个算法的程序框图。画出这个算法的程序框图。算法分析算法分析:第一步第一步:输入输入3个正实数个正实数a,b,c;第二步第二步:判断判断a+bc,a+cb,b+ca是否同时成是否同时成立。若是,则能组成三角形;若否,则组不成三立。若是,则能组成三角形;若否,则组不成三角形。角形。程序框图程序框图:开始开始输入输入a,b,ca+bc,a+cb,b+ca是否是否同时成立同时成立?是是存在这样的存在这样的三角形三角形不存在这样的不存在这样的三角形三角形否否结束结束例例3:(上节课已经做过此题)(上节课已经做过此题)为了加强居民为了加强居

16、民的节水意识,某市制订了以下生活用水收费的节水意识,某市制订了以下生活用水收费标准:每户每月用水未超过标准:每户每月用水未超过7m3时,每立方时,每立方米收费米收费1.0元,并加收元,并加收0.2元的城市污水处理元的城市污水处理费;超过费;超过7m3的部分,每立方米收费的部分,每立方米收费1.5元,元,并加收并加收0.4元的城市污水处理费,请你写出某元的城市污水处理费,请你写出某户居民每月应交纳的水费户居民每月应交纳的水费y(元元)与用水量与用水量x(m3)之间的函数关系,然后设计一个求该函之间的函数关系,然后设计一个求该函数值的算法数值的算法,并画出程序框图并画出程序框图。解解:y与与x之间

17、的函数关系为之间的函数关系为:(当当0x7时时)(当当x7时时)解解:y与与x之间的函数关系为之间的函数关系为:(当当0x7时时)(当当x7时时)算法分析算法分析:第一步第一步:输入每月用水量输入每月用水量x;第二步第二步:判断判断x是否大于是否大于7。若是,则若是,则y=1.9x4.9;若;若否,则否,则y=1.2x。第三步第三步:输出应交纳的水费输出应交纳的水费y.开始开始输入输入xx7?是是y=1.9x4.9否否y=1.2x输出输出y结束结束程序框图程序框图是是练习练习1.设计一个求任意数的绝对值的算法,并画设计一个求任意数的绝对值的算法,并画出程序框图。出程序框图。算法分析算法分析:第

18、一步第一步:输入数输入数x;第二步第二步:判断判断x0是是否成立否成立?若是若是,则则|x|=x;若否若否,则则|x|=-x.程序框图程序框图:开始开始输入输入xx0?输出输出x否否输出输出-x结束结束返回返回例例4.(课本课本P50复复习参考题习参考题A组组T1(1)画程序框图画程序框图,对对于输入的于输入的x值值,输输出相应的出相应的y值值.开始开始程序框图程序框图x0?是是y=0否否x100?是是输出输出S结束结束否否直到直到型循型循环结环结构构开始开始i=1S=0i100?是是S=S+ii=i+1否否输出输出S结束结束当型循环当型循环结构结构说明说明:(1)一般地,循环结构中都有计数变

19、量和一般地,循环结构中都有计数变量和累加变量。计数变量用于记录循环次数,同时累加变量。计数变量用于记录循环次数,同时它的取值还用于判断循环是否终止,累加变量它的取值还用于判断循环是否终止,累加变量用于输出结果。累加和计数操作一般是在循环用于输出结果。累加和计数操作一般是在循环体中都作一次,即累加一次,并且记数一次。体中都作一次,即累加一次,并且记数一次。(2)循环结构分为两种循环结构分为两种-当型和直到型当型和直到型.当型循环当型循环在每次执行循环体前对循环条件在每次执行循环体前对循环条件进行判断,当条件满足时执行循环体,不满足进行判断,当条件满足时执行循环体,不满足则停止;则停止;(当当条件

20、满足时反复执行循环体条件满足时反复执行循环体)直到型循环直到型循环在执行了一次循环体之后,对在执行了一次循环体之后,对控制循环的条件进行判断,当条件不满足时执控制循环的条件进行判断,当条件不满足时执行循环体,满足则停止。行循环体,满足则停止。(反复执行循环体,反复执行循环体,直到直到条件满足条件满足)程序框图程序框图:开始开始i=1S=0S=S+ii=i+1i100?是是输出输出S结束结束否否直到直到型循型循环结环结构构开始开始i=1S=0i100?是是S=S+ii=i+1否否输出输出S结束结束当型循环当型循环结构结构开始开始输入输入ni=2求求n除以除以i的余数的余数ri=i+1in或或r=

21、0?n不是质数不是质数结束结束是是否否是是n是质数是质数否否r=0?以下判断以下判断n是否为质数的程序框是否为质数的程序框图中用虚线框住的循环结构是图中用虚线框住的循环结构是当型循环,还是直到型循环?当型循环,还是直到型循环?循环结构循环结构直到型循直到型循环结构环结构 若是若是,则则m为所求为所求; (备用,参考上上节课例题(备用,参考上上节课例题2)例)例6:画出用二分画出用二分法求方程法求方程x2-2=0的近似根的近似根(精确度为精确度为0.005)的程的程序框图。序框图。算法分析算法分析:第一步第一步:令令f(x)=x2-2.因为因为f(1)0,所以设所以设a=1,b=2.第二步第二步

22、:令令判断判断f(m)是否为是否为0.若否若否,则继续判断则继续判断f(a) (m)大于大于0还是小于还是小于0.第三步第三步:若若f(a) (m)0,则令则令a=m;否则否则,令令b=m. 第四步第四步:判断判断|a-b|0?程序框图程序框图开始开始f(x)=x2-2输入误差输入误差和初值和初值a,bf(m)=0?a=m否否b=m|a-b|0?程序框图程序框图开始开始f(x)=x2-2输入误差输入误差和初值和初值a,ba=m否否b=m|a-b|100?是是输出输出S结束结束否否直到直到型循型循环结环结构构开始开始i=1S=0i100?是是S=S+i2i=i+1否否输出输出S结束结束当型循环当

23、型循环结构结构P20页页A组组T2.是是(P20页页A组组T3)程序框图程序框图:开始开始输入输入xx3?否否结束结束输入输入yy=5y=1.2x+1.4 设计一个求解二元一次方程组设计一个求解二元一次方程组其中其中 的算法的算法,并画出程序框图并画出程序框图.算法分析算法分析:第一步第一步:判断判断a1是否等于是否等于0. 如果如果a10,由由+u,得得 (b2+b1u)y=c2+c1u;如果如果a1=0,执行第三步执行第三步.第二步第二步:解解,得得输出输出y.第三步第三步:将将y值代入值代入,得得输出输出x.P20B组组T1开始开始程序框图程序框图输入输入a1,b1,c1,a2,b2,c

24、2a10?是是u=-a2/a1b=b2+b1uc=c2+c1uy=c/bx=(c2-b2y)/a2否否y=c1/b1输出输出x,y结束结束 .某高中男子体育小组的某高中男子体育小组的50m跑成绩跑成绩(单位单位:s)为为: 6.4, 6.5, 7.0, 6.8, 7.1, 7.3, 6.9, 7.4, 7.5.设计一个算法设计一个算法,从这些成绩中搜出小于从这些成绩中搜出小于6.8s的成绩的成绩.算法分析算法分析:第一步第一步:把计数变量把计数变量n的初值设为的初值设为1.第二步第二步:输入一个成绩输入一个成绩r,判断判断r与与6.8的大小的大小.若若r6.8,则执行下一步则执行下一步;若若r

25、9,则结束则结束.P20BT2开始开始n=1程序框图程序框图输入输入rr6.8?是是n=n+1n9?是是否否输出输出r否否结束结束直到型循直到型循环结构环结构(P50页页A组组T1(1)开始开始程序框图程序框图x0?是是y=0否否0x1?是是y=1否否y=x输出输出y结束结束输入输入x(P50页页A组组T1(2)开始开始程序框图程序框图x3?是是结束结束输入输入yy=0.2y=0.1t注:注:t表示不大于表示不大于t的最大的最大整数。例如:整数。例如:3=3,3.5=3,4.2=4。开始开始i=1S=0S=S+i=i+1in?是是输出输出S结束结束否否直到直到型循型循环结环结构构开始开始i=1

26、S=0in?是是S=S+i=i+1否否输出输出S结束结束当型循环当型循环结构结构P50页页A组组T4.输入输入n输入输入n(P51页页B组组T3)设计一个算法设计一个算法,判断一个正的判断一个正的n(n2)位数是不是回文数位数是不是回文数,用自然语言描述算用自然语言描述算法步骤法步骤.算法步骤算法步骤:第一步第一步:输入一个正整数输入一个正整数x和它的位数和它的位数.第二步第二步:判断判断n是不是偶数是不是偶数,如果是偶数如果是偶数,令令m=n/2;如果是奇数如果是奇数,令令m=(n-1)/2.第三步第三步:当当i从从1取到取到m值时值时,依次判断依次判断x的第的第i位与第位与第(n+1-i)位上的数字是不是相等位上的数字是不是相等,如果如果都相等都相等,则则x是回文数是回文数;否则否则,x不是回文数不是回文数.回文数是指从左到右读与从回文数是指从左到右读与从右到左读都是一样的正整数右到左读都是一样的正整数,如如121,676,94249,234432等。等。开始开始程序框图程序框图输入正整数输入正整数x和它的位数和它的位数nn是偶数?是偶数?是是m=n/2否否m=(n-1)/2第第i位与第位与第(n+1-i)(i=1,2,m)位上的数字相等位上的数字相等?是是x是回文数是回文数否否x不是回文数不是回文数结束结束

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号