河北省石家庄市第一中学高中数学必修三《1.1.2 程序框图与算法的基本逻辑结构》教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教材章节:§1.1.2课题:程序框图与逻辑结构
教学目标:
1.知识与能力:
(1)掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构.
(2)掌握画程序框图的基本规则,能正确画出程序框图.
(3)通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图.
2.过程与方法:
在我们描述算法或画程序框图时,必须遵循一定的逻辑结构,事实证明,无论如何复杂的问题,我们在设计它们的算法时,只需用顺序结构、条件结构和循环结构这三种基本逻辑就可以了,因此我们必须掌握并正确地运用这三种基本逻辑结构.
3.情态与价值:
通过本节的学习,使我们对程序框图有一个基本的了解;掌握算法语言的三种基本逻辑结构,明确程序框图的基本要求;认识到学习程序框图是我们学习计算机的一个基本步骤,也是我们学习计算机语言的必经之路。
培养学生独立思考、合作交流的意识;增强学生算法意识,理解算法思想.
重点:程序框图的基本概念、基本图形符号和三种基本逻辑结构.
难点:能综合运用这些知识正确地画出程序框图.
教学过程:
算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表示它.
一、程序框图
1.程序构图的概念:
程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.
一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要的文字说明.
2.构成程序框的图形符号及其作用:
学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:
(1)使用标准的图形符号.
(2)框图一般按从上到下、从左到右的方向画.
(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点.判断框具有超过一个退出点的唯一符号.
(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果.
(5)在图形符号内描述的语言要非常简练清楚.
二、算法的基本逻辑结构
1.顺序结构:
是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本Array算法结构.
顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤.如在示意图中,A框和B框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作.
例1.(见教材P9 例3)任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.算法分析:
2.条件结构:
(1)条件结构是指在算法中通过对条件的判断,根据条件是否成立而选择不同流向的算法结构.常见的条件结构有两种形式:
(2)此结构中包含一个判断框,根据给定的条件P是否成立而选择执行A框或B 框.无论P条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框,也不可能A框、B框都不执行.
(3)一个判断结构可以有多个判断框.
(4)在许多算法中,需要对问题的条件作出逻辑判断,判断后依据条件是否成立而进行不同的处理方式,这就需要用条件结构来实现算法.
例2.(见教材P10 例4)任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.
解:程序框图:
说明:凡必须根据条件作出判断,然后再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断框,应用条件结构.
例3.(见教材P10 例5)
例4.设计求一个数x 的绝对值的算法,并画出相应的程序框图.
分析:根据绝对值的意义,当x ≥0时,∣x ∣=x ,当x <0时,∣x ∣=-x .该问题实际上是一个分段函数,因为根据分段函数的变量在不同范围内函数的关系式不同,因而当给出一个自变量x 求对应的函数值时,必须先判断x 的范围,然后再用该范围内的函数关系式计算相应的函数值.该例仅用顺序结构是办不到的.
解:算法如下: 第一步:输入x ;
第二步:如果x ≥0,则∣x ∣=x ,否则,∣x ∣=-x ; 第三步:输出∣x
小结:两个例题的程序框图只讨论了一次,引入了一个判断框,而练习中需要引入两个判断框,是因为讨论了两次,判断了两次.
3.循环结构:
(1)需要重复执行同一操作的结构称为循环结构.即从某处开始,按照一定条件反复执行某一处理步骤.反复执行的处理步骤称为循环体.
循环结构有两种形式:当型循环结构和直到型循环结构.
p
当型循环结构直到型循环结构(2)循环结构不是永无终止的“死循环”,一定要在某个条件下终止循环,这就需要条件结构来判断.因此,循环结构中一定包含条件结构.
(3)循环结构在程序框图中也是利用判断框来表示,判断框内写上条件,两个出口分别对应着条件成立和条件不成立时时执行的不同指令,其中一个指向循环体,然后再从循环体回到判断框的入口处.
(4)在循环结构中都有一个计数变量和累加变量.计数变量用于记录循环次数,累加变量用于输出结果.计数变量和累加变量一般是同步执行的,累加一次,计数一次.例5.(见教材P13 例6)设计一个计算1+2+3+…+1000的值的算法,并画出程序框图.
解:由于加数较多,采用逐个相加的方法程序太长,是不可取的,因此应采取引入变量应用循环的办法.
算法如下:
第一步:sum=0;
第二步:i=1;
第三步:sum=sum+i;
第四步:i=i+1;
第五步:如果i不大于1000,返回重新执行第三步,第四步,第五步,否则,算法结束,最后得到的sum值就是1+2+3+…+1000的值.
程序框图(当型循环结构):
练习:设计一个算法,求使1+2+3+…+n >2005成立的最小自然数,画出程序框图.
例6.(见教材P1.5 例7) 小结:
1.在画程序框图时如何进行结构的选择?
若求只含有一个关系式的解析式的函数值时,只用顺序结构就能解决;若是分段函数或执行时需要判断后才能执行后继步骤的,就必须引入选择结构;如果问题里涉及的运算进行了许多重复的步骤,且数之间有相同的规律,就可引入变量,应用循环结构.
2.在具体画程序框图时,要注意的问题: (1)流程线上要有标志执行顺序的前头;
(2)判断框后边的流程线应根据情况标注“是”或“否”;
(3)在循环结构中,要注意根据条件设计合理的计数变量、累加变量等,特别要条件的表述要恰当、精确.
三、程序框图的画法
在用自然语言表述一个算法后,可以画出程序框图,用三种逻辑结构表示这个算法,这样表示的算法清楚、简练,便于阅读和交流. 1.多重条件结构的程序框图:
例1.解关于x 的方程0ax b +=的算法步骤如何设计? 第一步,输入实数a ,b .
第二步,判断a 是否为0.若是,执行第三步;否则,计算b
x a
=-,并输出x ,结束算法.
第三步,判断b 是否为0.若是,则输出“方程的解为任意实数”;否则,输出“方程无实数解”.
该算法的程序框图如何表示?
2.混合逻辑结构的程序框图:
例2.(见教材P17)写出用“二分法”求方程2
20x -=(0)x >
例3.已知1
()21
x f x =+,写出求(4)(3)(2)(4)f f f f -+-+-++L 画出流程图.
解:1S 0S ←;
2S 4I ←-; 3S 1
()21
I f I ←
+; 4S ()S S f I ←+; 5S 1I I ←+;
6S 若4I ≤,转3S ,否则输出S .
练习1.已知一列数1a ,2a ,3a ,…,n a ,…且 11a =,21a =,12n n n a a a --=+(3n ≥), 这个数列叫做斐波那契数列.写出求该数列
第10个数的一个算法,并画出流程图. 解:算法如下:
1S 1a ←; 2S 1b ←; 3S 3n ←; 4S x a b ←+; 5S a b ←; 6S b x ←; 7S 1n n ←+
8S 若10n ≤,转4S ,否则输出x .
例4.高一某班一共有50名学生,设计一个算法,统计班上数学成绩良好(分数大于80且小于90)和优秀(分数大或等于90)的学生人数,并画出流程图. 解:算法如下:
1S 1n ←,0a ←,0b ←;
2S 输入成绩r ;
3S 若89r >,则1a a ←+,转5S ; 4S 若80r >,则1b b ←+; 5S 1n n ←+; 6S 若50n ≤,转2S ,
否则,输出a 和b ;
3.程序框图的阅读与理解 例3.考察下列程序框图:
思考1:怎样理解该程序框图中包含的逻辑结构?
思考2:该程序框图中的循环结构属于那种类型?
思考3:该程序框图反映的实际问题是什么?
理论迁移
例4.画出求三个不同实数中的最大值的程序框图.
小结:设计一个算法的程序框图的基本思路:
第一步,用自然语言表述算法步骤.
第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示.第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框.
四、布置作业。