【本讲教育信息】
一、教学内容:
算法与程序框图
二、教学目标:
1. 通过对解决具体问题过程与步骤的分析(如,二元一次方程组求解等问题),体会算法的思想,了解算法的含义;
2. 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程。在具体问题的解决过程中,理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。
三、知识要点分析:
1. 算法的概念
(1)算法的定义:广义的算法是指完成某项工作的方法和步骤,在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
(2)算法的特征:
①确定性:算法的每一步都应当做到准确无误、“不重不漏”。“不重”是指不是可有可无的、甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务。
②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣。分工明确,“前一步”是“后一步”的前提,“后一步”是“前一步”的继续。
③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行。
(3)算法的描述:自然语言、程序框图、程序语言。
2. 程序框图
(1)程序框图的概念:是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形;
(2)构成程序框的图形符号及其作用
程序框 |
名称 |
功能 |
|
起止框 |
表示一个算法的起始和结束,是任何算法程序框图不可缺少的。 |
|
输入、输出框 |
表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。 |
|
处理框 |
赋值、计算。算法中处理数据需要的算式、公式等,它们分别写在不同的用以处理数据的处理框内。 |
|
判断框 |
判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时在出口处标明“否”或“N”。 |
|
流程线 |
算法进行的前进方向以及先后顺序 |
|
连结点 |
连接另一页或另一部分的框图 |
|
注释框 |
帮助编者或阅读者理解框图 |
(3)程序框图的构成
一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字。
3. 画程序框图的规则如下:
(1)一个完整的程序框图必须有起止框,用来表示程序的开始和结束。
(2)使用标准的图形符号表示操作,带箭头的流程线表示算法步骤的先后顺序,框图一般按从上到下、从左到右的方向画。
(3)算法中间要处理数据或计算,可分别写在不同的处理框中。
(4)如果一个流程由于纸面等原因需要分开画。要在断开处画上连结点,并标出连结的号码。
(5)注释框不是流程图必需的部分,只是为了提示用户一部分框图的作用以及对某些框图的操作结果进行说明。它帮助阅读流程图的用户更好的理解流程图的来龙去脉。
(6)在图形符号内用于描述的语言要非常简练清楚。
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. 给出求1+2+3+4+5的一个算法.
解:算法1 按照逐一相加的程序进行.
第一步:计算1+2,得到3;
第二步:将第一步中的运算结果3与3相加,得到6;
第三步:将第二步中的运算结果6与4相加,得到10;
第四步:将第三步中的运算结果10与5相加,得到15.
算法2 运用公式直接计算.
第一步:取=5;
第二步:计算;
第三步:输出运算结果.
算法3 用循环方法求和.
第一步:使,;
第二步:使;
第三步:使;
第四步:使;
第五步:如果,则返回第三步,否则输出.
说明:①一个问题的算法可能不唯一.
②若将本例改为“给出求的一个算法”,则上述算法2和算法3表达较为方便.
例2. 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊。该人应如何将动物转移过河?请设计算法?
解析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要少于羚羊的数量,故在算法的构造过程中应尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势,具体算法如下:
算法步骤:
第一步:人带两只狼过河,并自己返回;
第二步:人带一只狼过河,自己返回;
第三步:人带两只羚羊过河,并带两只狼返回;
第四步:人带一只羊过河,自己返回;
第五步:人带两只狼过河。
点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的。这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性。本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的问题经常遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使问题变得简单,而且可以提高工作效率。
例3. 设计算法判断一元二次方程是否有实数根,并画出相应的程序框图。
解析:算法步骤如下:
第一步:输入一元二次方程的系数:a,b,c;
第二步:计算△的值;
第三步:判断△≥0是否成立。若△≥0成立,输出“方程有实根”;否则输出“方程无实根”。结束算法。
相应的程序框图如下:
点评:根据一元二次方程的意义,需要计算判别式△的值。再分成两种情况处理:(1)当△≥0时,一元二次方程有实数根;(2)当△<0时,一元二次方程无实数根。该问题实际上是一个分类讨论问题,根据一元二次方程系数的不同情况,最后结果就不同。因而当给出一个一元二次方程时,必须先确定判别式的值,然后再用判别式的值的取值情况确定方程是否有解。该例仅用顺序结构是办不到的,要对判别式的值进行判断,需要用到条件分支结构。
例4. 设计一个算法,求的值,并画出程序框图。
解析:算法步骤:
第一步:sum=0;
第二步:i=0;
第三步:sum=sum+2i;
第四步:i=i+1;
第五步:判断i是否大于49,若成立,则输出sum,结束;否则返回第三步重新执行。
程序框图:
点评:
1. 如果算法问题里涉及的运算进行了许多次重复的操作,且先后参与运算的数之间有相同的规律,就可引入变量循环参与运算(我们称之为循环变量),应用于循环结构。在循环结构中,要注意根据条件设计合理的计数变量、累加和累乘变量及其个数等,特别要求条件的表述要恰当、精确。
2. 累加变量的初始值一般取成0,而累乘变量的初始值一般取成1。
例5. 高一某班一共有50名学生,设计一个算法,统计班上数学成绩良好(分数大于80且小于90)和优秀(分数大于或等于90)的学生人数,并画出程序框图.
解:算法如下:
,,;
输入成绩;
若,则,转;
若,则;
;
若,转,
否则,输出和;
本讲涉及的数学思想、方法
描述算法可以用不同的方式。例如:可以用自然语言和数学语言加以叙述,也可以借助形式语言(算法语言)给出精确的说明,还可以用程序框图直观的显示算法全貌。算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的。这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性。
预习导学案
(基本算法语句)
(一)预习前知
1. 算法的三种逻辑结构是什么?
2. 画程序框图的规则是什么?
(二)预习导学
探究反思
探究反思的任务:赋值、输入和输出语句,条件语句与循环语句。
1. 赋值语句
(1)概念:用来表明赋给某一个变量一个______的语句。
(2)一般格式:__________
(3)作用:计算出________的值,把该值赋给________,使该变量的值等于______的值。
2. 输入语句
(1)概念:用来控制________的语句。
(2)一般格式:_________________________
(3)作用:把_____和__________分开。
3. 输出语句
(1)概念:用来控制把______在屏幕上显示(或打印)的语句。
(2)一般格式:_____________________
(3)作用:_________________
4. 条件语句
(1)概念:处理___________的算法语句,叫做条件语句。
(2)一般格式(if语句)
①一般格式
__________
___________;
else
___________;
end
最简单的格式
__________
___________;
end
(3)作用
①一般格式:如果表达式的结果为____,则执行表达式后面的语句序列1;如果表达式的结果为_____,则执行else后面的语句序列2。
②最简单格式:如果表达式结果为______,则执行表达式后面的语句序列1,否则_____________。
5. 循环语句
(1)循环语句的概念
用来处理算法中的__________的语句。
(2)循环语句的一般格式
①for循环的格式
______循环变量=_____________
________
__________
②while循环的格式
_______ _____________
__________
______
(3)作用
循环语句是用来控制有规律的___________或者在程序中需要对某些语句进行________的语句。
【模拟试题】(答题时间:90分钟)
一、选择题
1. 下列说法正确的是( )
A. 算法就是某个问题的解题过程;
B. 算法执行后可以产生不同的结果;
C. 解决某一个具体问题,算法不同结果不同;
D. 算法执行步骤的次数不可以为很大,否则无法实施。
2. 下列语句中是算法的个数为( )
①从济南到巴黎:先从济南坐火车到北京,再坐飞机到巴黎;
②统筹法中“烧水泡茶”的故事;
③测量某棵树的高度,判断其是否为大树;
④已知三角形的一部分边长和角,借助正余弦定理求得剩余的边角,再利用三角形的面积公式求出该三角形的面积。
A. 1
B.
3、对于下面的程序框图,当输入的值是5,则输出的值是( )
4、下边的框图表示的程序所输出的结果是( )
A. 3 B. 12 C. 60 D. 360
*5、若下框图所给程序运行的结果为S=90,那么判断框中应填入的关于k的判断条件是( )
A. B. C. D.
**6、为调查深圳市中学生平均每人每天参加体育锻炼时间(单位:分钟),按锻炼时间分下列四种情况统计:①0~10分钟;②11~20分钟;③21~30分钟;④30分钟以上. 有10000名中学生参加了此项活动,下图是此次调查中某一项的流程图,其输出的结果是6200,则平均每天参加体育锻炼时间在0~20分钟内的学生的频率是 ( )
A. 3800 B. 6200 C. 0.38 D. 0.62
二、填空题
7、运行如下图所示的程序,则输出结果为
8、按下列程序框图来计算:
如果x=5,应该运算_______次才停止。
*9、若某一程序框图如图所示,则该程序运行后,输出的S等于 .
三、计算题
10、给出求解方程组的一个算法.
*11、设计算法,找出输入的三个不相等实数a、b、c中的最大值,并画出流程图。
**12、设计算法,求的解,并画出流程图。
【试题答案】
1. B;
选项B,例如:判断一个整数是否为偶数,结果为“是偶数”和“不是偶数”两种;选项A ,算法不能等同于解法;选项C,解决某一个具体问题,算法不同结果应该相同,否则算法的构造有问题;选项D,算法可以为很多次,但不可以无限次。
2、C
③中我们对“树的大小”没有明确的标准,无法完成任务,不是有效的算法构造。①中,勾画了从济南到巴黎的行程安排,完成了任务;②中,节约时间,烧水泡茶完成了任务;④中,纯数学问题,借助正、余弦定理解三角形,进而求出三角形的面积。
3、C 4、D 5、D 6、C 7、13 8、4
9、
10、解:用消元法解这个方程组,步骤是:
第一步:方程①不动,将方程②中的系数除以方程①中的系数,得到乘数;
第二步:方程②减去乘以方程①,消去方程②中的项,得到
;
第三步:将上面的方程组自下而上回代求解,得到,.
所以原方程组的解为.
11、解析:算法步骤:
第一步:输入a,b,c的值;
第二步:判断a>b是否成立,若成立,则执行第三步;否则执行第四步;
第三步:判断a>c是否成立,若成立,则输出a,并结束;否则输出c,并结束;
第四步:判断b>c是否成立,若成立,则输出b,并结束;否则输出c,并结束。
程序框图:
12、解析:对于方程来讲,应该分情况讨论方程的解。
我们要对一次项系数a和常数项b的取值情况进行分类,分类如下:
(1)当a≠0时,方程有唯一的实数解是;
(2)当a=0,b=0时,全体实数都是方程的解;
(3)当a=0,b≠0时,方程无解。
联想数学中的分类讨论的处理方式。可得如下算法步骤:
第一步:判断a是否不为零。若成立,输出结果“解为”;
第二步:判断a=0,b=0是否同时成立。若成立,输出结果“解集为R”;
第三步:判断a=0,b≠0是否同时成立。若成立,输出结果“方程无解”,结束。
程序框图: