算法与程序框图知识讲解Word下载.docx
《算法与程序框图知识讲解Word下载.docx》由会员分享,可在线阅读,更多相关《算法与程序框图知识讲解Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
5是可以做到的.
4、算法的描述:
(1)自然语言:
自然语言就是人们日常使用的语言,可以是汉语、英语或数学语言等.用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解.缺点是如果算法中包含判断和转向,并且操作步骤较多时,就不那么直观清晰了.
(2)程序框图:
所谓框图,就是指用规定的图形符号来描述算法,用框图描述算法具有直观、结构清晰、条理分明、通俗易懂、便于检查修改及交流等特点.
(3)程序语言:
算法最终可以通过程序的形式编写出来,并在计算机上执行.
要点诠释:
算法的特点:
思路简单清晰,叙述复杂,步骤繁琐,计算量大,完全依靠人力难以完成,而这些恰恰就是计算机的特长,它能不厌其烦地完成枯燥的、重复的繁琐的工作,正因为这些,现代算法的作用之一就是使计算机代替人完成某些工作,这也是我们学习算法的重要原因之一.
事实上,算法中出现的程序只是用基本的语句把程序的主要结构描述出来,与真正的程序还有差距,所以算法描述的许多程序并不能直接运行,要运行程序,还要把程序按照某种语言的严格要求重新改写才行.
要点二、程序框图
1、程序框图的概念:
程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形.
2、构成程序框的图形符号及其作用
程序框
名称
功能
起止框
表示一个算法的起始和结束,是任何算法程序框图不可缺少的.
输入、输出框
表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置.
处理框
赋值、计算.算法中处理数据需要的算式、公式等,它们分别写在不同的用以处理数据的处理框内.
判断框
判断某一条件是否成立,成立时在出口处标明“是”或“Y”;
不成立时在出口处则标明“否”或“N”.
流程线
算法进行的前进方向以及先后顺序
连结点
连接另一页或另一部分的框图
3、程序框图的构成
一个程序框图包括以下几部分:
实现不同算法功能的相对应的程序框;
带箭头的流程线;
程序框内必要的说明文字.
4、算法的三种基本逻辑结构
(1)顺序结构
顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.它是由若干个依次执行的步骤组成的,它是任何一个算法都离不开的一种基本算法结构.
见示意图和实例:
顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤.如在示意图中,A框和B框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作.
(2)条件结构
如下面图示中虚线框内是一个条件结构,此结构中含有一个判断框,算法执行到此判断给定的条件P是否成立,选择不同的执行框(A框、B框).无论P条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框,也不可能A框、B框都不执行.A框或B框中可以有一个是空的,即不执行任何操作.
见示意图
条件结构中的条件要准确,不能含混不清,要清楚在什么情况下需要作怎样的判断,用什么条件来区分.
(3)循环结构
在一些算法中要求重复执行同一操作的结构称为循环结构.即从算法某处开始,按照一定条件重复执行某一处理过程.重复执行的处理步骤称为循环体.
循环结构有两种形式:
当型循环结构和直到型循环结构.
①当型循环结构,如左下图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,返回来再判断条件P是否成立,如果仍然成立,返回来再执行A框,如此反复执行A框,直到某一次返回来判断条件P不成立时为止,此时不再执行A框,离开循环结构,继续执行下面的框图.
②直到型循环结构,如右下图所示,它的功能是先执行重复执行的A框,然后判断给定的条件P是否成立,如果P仍然不成立,则返回来继续执行A框,再判断条件P是否成立,依次重复操作,直到某一次给定的判断条件P成立为止,此时不再返回来执行A框,离开循环结构,继续执行下面的框图.
循环结构中使用什么样的条件控制循环的开始和结束,要清楚满足某个条件的变量的次数与循环次数的联系与区别.
误区提醒
1、框图中的流程线不能出现交叉的现象.若有交叉,则程序语句无法写出;
2、各种框图有其固定的格式和作用,不要乱用.如条件结构中不要忘了“是”与“否”,流程线不要忘记画箭头;
3、条件分支结构的方向要准确;
4、循环结构中,计数变量要赋初值,计数变量的自加不要忘记,自加多少不能弄错.另外计数变量一般只负责计数任务;
5、循环结构中循环的次数要严格把握,区分“<”与“≤”等.循环变量的取值与循环结构(当型与直到型)有关,需区分清楚.另外,同一问题用两种不同的结构解决时,其判断条件恰是相反的;
6、程序框图不要出现死循环(无限步的循环).
【典型例题】
类型一:
算法的概念
例1.下列对算法的理解不正确的是()
A.算法有一个共同特点就是对一类问题都有效(而不是个别问题)
B.算法要求一步步执行,且每一步都能得到唯一的结果
C.算法一般是机械的,有时要进行大量重复的计算,它的优点是一种通法
D.任何问题都可以用算法来解决
【答案】D
【解析】算法是解决问题的精确的描述,但是并不是所有问题都有算法.
【总结升华】算法一般是机械的,有时需要进行大量的重复计算,只要按部就班去做,总能算出结果.通常把算法过程称为“数学机械化”,数学机械化的最大优点是它可以借助计算机来完成.实际上处理任何问题都需要算法,如:
中国象棋有中国象棋的棋谱、走法、胜负的评判准则;
而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;
再比如申请出国有一系列的先后手续,购买物品也有相关的手续…….
举一反三:
【变式1】我们已学过的算法有求解一元二次方程的求根公式,加减消元法求二元一次方程组的解,二分法求出函数的零点等,对算法的描述有:
①对一类问题都有效;
②算法可执行的步骤必须是有限的;
③算法可以一步一步地进行,每一步都有确切的含义;
④是一种通法,只要按部就班地做,总能得到结果.以上算法的描述正确的有().
A.1个B.2个C.3个D.4个
【答案】D
【变式2】下列哪个不是算法的特征()
A.抽象性 B.精确性 C.有穷性 D.唯一性
【答案】D.
类型二:
算法的描述
例2.写出求解二元一次方程组
的一个算法.
【解析】
因为是二元一次方程组,所以a1、a2不能同时为0.
第一步,假设a1≠0(若a1=0,可将第一个方程与第二个方程互换),
,得到
.
即方程组化为
第二步,若a1b2-a2b1≠0,解③得
④
第三步,将④代入①,整理得
第四步,输出结果x、y.
如果a1b2-a2b1=0,从③可以看出,方程组无解或有无穷多组解.
【总结升华】一般化,得到求二元一次方程组
的高斯消去算法步骤:
第一步:
计算
;
第二步:
若
,则原方程组无解或有无穷多组解,否则(
)
.
第三步:
输出计算的结果
、
或者无法求解的信息.
举一反三:
【变式1】试描述求解三元一次方程组
的算法步骤.
【解析】
算法1:
第一步,①+③,得x=5.④
第二步,将④分别代入①式和②式可得
第三步,⑥-⑤,得y=-4.⑦
第四步,将⑦代入⑤可得z=11.
第五步,得到方程组的解为
算法2:
第一步,①+②,得2x-y=14.④
第二步,②-③,得x-y=9.⑤
第三步,④-⑤,得x=5.⑥
第四步,将⑥代入⑤式,得y=-4.⑦
第五步,将⑥和⑦代入①式,得z=11.
第六步,得到方程组的解为
【变式2】鸡兔同笼问题:
一群小兔一群鸡,两群合到一群里,要数腿48,要数脑袋17,多少小兔多少鸡?
【解析】算术算法:
小兔的只数:
小鸡的只数:
17-7=10.
应用解二元一次方程组的方法来求解鸡兔同笼问题的步骤.
设有小鸡x只,小兔y只,则有
将方程组中的第一个方程两边乘-2加到第二个方程中去,得到
,得到y=7;
将y=7代入
(1)得x=10.
类型三:
算法的设计
例3、给出求1+2+3+4+5的一个算法.
【解析】本题可以按照逐一相加的程序进行,也可以运用公式
直接计算,还可以用循环方法求和.
算法1
计算1+2,得到3;
将第一步中的运算结果3与3相加,得到6;
将第二步中的运算结果6与4相加,得到10;
第四步:
将第三步中的运算结果10与5相加,得到15.
算法2
取
=5;
输出运算结果.
算法3
使
第五步:
如果
,则返回第三步,否则输出
【总结升华】①一个问题的算法可能不唯一;
②若将本例改为“给出求
的一个算法”,则上述算法2和算法3表达较为方便.
【变式1】写出求
的一个算法.
【答案】
,;
第六步:
【变式2】求1×
5×
7×
9×
11的值,写出其算法.
第一步,先求1×
3,得到结果3;
第二步,将第一步所得结果3再乘以5,得到结果15;
第三步,再将15乘以7,得到结果105;
第四步,再将105乘以9,得到945;
第五步,再将945乘以11,得到10395,即是最后结果.
算法2:
用P表示被乘数,i表示乘数.
第一步,使P=1;
第二步,使i=3;
第三步,使P=P×
i;
第四步,使i=i+2;
第五步,若i≤11,则返回到第三步继续执行;
否则算法结束.
类型四:
顺序结构的应用
例4.设计算法,求两底半径分别为1和4,且高为4的圆台的表面积及体积,并画出程序框图.
【解析】先求出斜高,再分别求出两个底面面积和侧面面积,则表面积与体积可得.
【答案】算法如下:
第一步,令r1=1,r2=4,h=4;
第二步,计算斜高
第三步,令
,
第四步,计算圆台的表面积S=S1+S2+S3,圆台的体积
第五步,输出S,V.
该算法的程序框图如图所示.
【变式1】半径为r的圆,面积公式为S=πr2,当r=10时,写出计算圆面积的算法,画出程序框图.
【解析】算法如下:
输入r=10.
计算S=πr2.
输出S.
程序框图如图所示.
【总结升华】本题主要考查算法结构中的顺序结构.对套用公式型的问题,关键是明确所给公式中变量的个数及数值,以及输入、输出部分的设计.
类型五:
条件结构的应用
例5.已知函数
,写出求该函数的函数值的算法,并画出程序框图.
【解析】该函数是分段函数,因此当给出一个自变量x的值时,需先判断x的范围,然后确定利用哪一段的解析式求函数值.画程序框图时,必须采用条件分支结构,因为函数解析式分了三段,所以需要两个判断框,即进行两次判断.
算法如下:
第一步,输入x.
第二步,如果x<0,那么使y=2x-1,输出y;
否则,执行第三步.
第三步,如果0≤x<1,那么使y=x2+1,输出y;
否则,执行第四步.
第四步,y=x2+2x
第五步,输出y.
程序框图如下图所示.
【总结升华】凡是必须先根据条件作出判断,然后再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断框,采用条件结构.而像本题求分段函数的函数值的程序框图的画法,如果是分两段的函数,只需引入一个判断框;
如果是分三段的函数,需引入两个判断框;
分四段的函数需引入三个判断框,依此类推.判断框内的内容是没有固定顺序的.
【变式1】已知函数
,写出求函数
的任一函数值的一个算法并画出程序框图.
【解析】记y=f(x).
算法:
输入x.
如果x>0,那么使y=-1;
如果x=0,那么使y=0;
如果x<0,那么使y=1.
输出函数值y.
【变式2】设计算法判断一元二次方程
是否有实数根,并画出相应程序框图.
【解析】算法步骤如下:
输入一元二次方程的系数:
a,b,c;
计算Δ
的值;
判断Δ≥0是否成立.若Δ≥0成立,输出“方程有实根”;
否则输出“方程无实根”.结束算法.相应的程序框图如图.
类型六:
循环结构的应用
例6.设计算法输出1000以内能被3和5整除的所有正整数,画出程序框图.
【解析】本题是计数型循环结构,凡被3和5整除的正整数都是15的倍数,而1000=15×
66+10,因此1000以内一共有66个这样的正整数,引入变量a表示输出的数,引入计数变量n,n可以从1~66,反复输出a,就能输出1000以内的所有能被3和5整除的正整数.
算法如下:
S1:
n=1;
S2:
若n≤66,则执行S3,否则执行S6;
S3:
a=15n;
S4:
输出a:
S5:
n=n+1,返回S2;
S6:
结束.
程序框图如下图所示:
【总结升华】
(1)本题中描述算法的结构中反复执行的第③部分称为循环体.
(2)变量n控制循环的开始和结束,称为循环变量.
(3)第①部分是赋予循环变量的初始值,预示循环开始.
(4)第②部分判断是否继续执行循环体,称为循环终止条件.
【变式1】画出计算
的值的一个程序框图.
【解析】所求程序框图如下图所示
类型七:
三种结构的综合应用
例7.以下是某次考试中某班15名同学的数学成绩:
72,91,58,63,84,88,90,55,61,73,64,77,82,94,60.要求将80分以上的同学的平均分求出来并画出程序框图.
【解析】用条件分支结构来判断成绩是否高于80分,用循环结构控制输入的次数,同时引进两个累加变量,分别计算高于80分的成绩的总和和人数.
程序框图如图所示.
【总结升华】对于此类要求把所给的多个数据逐一检验是否满足条件的问题,可采用条件结构和循环结构相结合的算法.
下图表示的是给定x的值,求其对应的函数值y的程序框图,①处应填写__________;
②处应填写__________.
【解析】分段函数
中x的范围对应程序框图中的判断条件,填
解析式对应赋值框的内容,填
【变式2】先看一个小材料:
1+2+3+…+()>10000,这个问题的答案不唯一,只要确定出满足条件的最小正整数n0,括号内填写的数字只要大于或等于n0即可.
写出寻找满足条件的最小正整数n0的算法,并画出相应的程序框图.
【解析】算法:
取n的值等于1.
如果S的值大于10000,那么n即为所求;
否则,让n的值增加1,然后转到第二步重复操作.
根据以上的操作步骤,画出程序框图如下图所示.
类型八:
利用算法和程序框图解决实际问题
例8.北京获得了2008年第29届奥运会主办权.你知道在申办奥运会的最后阶段,国际奥委会是如何通过投票决定主办权归属的吗?
对选出的5个申办城市进行表决的操作程序是:
首先进行第一轮投票,如果有一个城市得票超过总票数的一半,那么该城市就获得主办权;
如果所有申办城市得票数都不超过总票数的一半,则将得票最少的城市淘汰,然后重复上述过程,直到选出一个申办城市为止.试画出该过程的程序框图.
【解析】本题为算法中与现实生活相联系的题目,从选举的方法看,应选择循环结构来描述算法.
如图所示:
【总结升华】解决与现实相关的问题时首先要理清题意,此循环结构中对用哪一个步骤控制循环,哪一个步骤作为循环体,要有清晰的思路.
【变式1】儿童乘坐火车时,若身高不超过1.1m,则无需购票;
若身高超过1.1m,但不超过1.4m,可买半票;
若超过1.4m,应买全票,请设计一个算法,并画出程序框图.
【解析】根据题意,该题的算法中应用条件结构,首先以身高为标准,分成买和免票,在买票中再分出半票和全票.
买票的算法步骤如下:
测量儿童身高h.
如果h≤1.1m,那么免费乘车,否则若h≤1.4m,则买半票,否则买全票.
【总结升华】本题的程序框图中有两个判断点,一个是以1.1m为判断点,1.1m把身高分为两段,在大于1.1m的一段中,1.4m又将其分两段,因此1.4m这个判断是套在1.1m的判断里的.所以我们用到两个条件结构.