四川省岳池县第一中学高中数学必修三学案:1.1.2 程序框图与算法
的基本逻辑结构(2)
1.通过设计流程图来表达解决问题的过程。
2. 掌握算法的条件结构和循环结构。
1016
复习1:回顾程序框图的基本符号及功能表。
复习2:算法的三种基本逻辑结构:___________,
__________________, _______________________.
复习3:顺序结构的程序框图。
二、新课导学
※ 探索新知
探究1:条件结构
问题:如何判断某个年份是否为闰年?写出该问题
的算法步骤。这个算法靠单一的顺序结构还能完成吗?
新知1:一些简单的算法可以用顺序结构来表示,但是这种结构无法对描述对象进行逻辑判断,并根据判断结果进行不同的处理.因此,需要有另一种逻辑结构来处理这类问题,这种结构叫做条件结构.它是根据指定条件选择执行不同指令的控制结构.
思考:条件结构的框图如何画呢?
届奥运会的主办权。你知道在申奥的最后阶段,国际奥委会是如何通过投票决定主办权归属的吗?对选出的5个申办城市进行表决的操作程序是:首先进行第一轮投票,如果有一个城市得票超过总票数的一半,那么该城市就获得举办权;如果所有申办城市得票数都不超过总票数的一半,则将得票数最少的城市淘汰,然后重复上述过程,直到选出一个申办城市为止。你能写出算法步骤,画出算法框图吗?
解:算法为:1S 投票; 2S 统计票数,如果有一个城市得票超过总票数的一半,那么该城市就获得举办权,转3S ,否则淘汰得票数最少的城市,转1S ;3S 宣布主办城市.
上述算法可以用流程图表示为:
新知2:在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是循环结构,反复执行的步骤称为循环体。显然,循环结构中一定包含条件结构。 循环结构可细分为两类:
(1)直到型循环结构的特征:在执行了一次循环后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环。框图模型如下:
用于确定何时终止执行循环体。
※ 典型例题
例1 任意给定3个正实数,设计一个算法,判断以这3个正实数为三条边边长的三角形是否存在,并画出这个算法的程序框图.
例2 设计一个计算1+2+---+100的值的算法,并画出程序框图。(要求用循环结构)
※ 动手试试
练1.设计一个求解一元二次方程02=++c bx ax 的算法,并画出程序框图表示.
三、总结提升
※ 学习小结
1. 在条件结构中,要注意对问题分析全面,特别是在分类中,常会出现由于分类不全或不分类而出现算法步骤不全的情况。
2. 循环结构它主要用在反复做某项工作的问题中。 3.用循环结构画流程图:确定算法中反复执行的部分,确定循环的转向位置和终止条件。 ※ 知识拓展
条件结构与循环结构的区别与联系:区别:条件结构通过判断执行分支,只是执行一次;循环结构通过条件判断可以反复执行;联系:循环结构是通过选择结构来实现的,循环结构中一定包含选择结构。
1. 算法的三种基本结构是 ( )
A. 顺序结构、模块结构、条件结构
B. 顺序结构、循环结构、模块结构
C. 顺序结构、条件结构、循环结构
D. 模块结构、条件结构、循环结构
2.如图给出的是求20
1614121+???+++的值的一个程序框图,其中判断框内应填入的条件是 ( )
A.i>10?
B.i<10?
C.i>20?
D.i<20?
1.设计一个算法求22221009921++???++的值,并画出程序框图。
§1.1.2 程序框图与算法的基本逻辑结构(3)
1.掌握程序框图的概念;会用图形符号表示算法,掌握算法的三个基本逻辑结构。
2.掌握画程序框图的基本规则,能正确画出程序框图。
3.通过模仿、操作、探索,设计程序框图表达解决问题的过程;学会灵活、正确地画程序框
1719
复习1:条件结构与循环结构的区别与联系是什么?区别:条件结构通过判断执行分支,只是执行一次;循环结构通过条件判断可以反复执行;联系:循环结构是通过选择结构来实现的,循环结构中一定包含选择结构。
复习2:在循环结构中计数变量和累加变量的作用是什么?
计数变量:用于记录循环次数,累加变量:用于输出结果。计数变量与累加变量一般是同步进行的,累加一次,计数一次。
二、新课导学
※ 探索新知
探究1:多重条件结构的程序框图
问题1:解关于x 的方程a x+b=0的算法步骤如何设计?
分析:
第一步,输入实数a ,b.
第二步,判断a 是否为0.若是,执行第三步;否则,计算a
b x -=,并输出x ,结束算法. 第三步,判断b 是否为0.若是,则输出“方程的解为任意实数”;否则,输出“方程无实数解”.
问题2:该算法的程序框图如何表示?
探究2:混合逻辑结构的程序框图
问题3:用“二分法”求方程220(0)x x -=>的近似解的算法如何设计?
第一步,令f(x)=x 2
-2,给定精确度d.
第二步,确定区间[a ,b],满足f(a)·f(b)<0.
第三步,取区间中点m.
第四步,若f(a)·f(m)<0,则含零点的区间为[a ,m];否则,含零点的区间为[m ,b].将新得到的含零点的区间仍记为[a ,b].
第五步,判断[a ,b]的长度是否小于d 或f(m)是否等于0.若是,则m 是方程的近似解;否则,返回第三步.
问题4:该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何? 问题5:该算法中第四步是什么逻辑结构?这个步骤用程序框图如何表示?
问题6:该算法中哪几个步骤构成循环结构?这个循环结构用程序框图如何表示?
问题7:根据上述分析,你能画出表示整个算法的程序框图吗?(见教科书18页.)
探究3:程序框图的阅读与理解
考察下列程序框图:
问题8:怎样理解该程序框图中包含的逻辑结构?
问题9:该程序框图中的循环结构属于那种类型?
问题10:该程序框图反映的实际问题是什么?
※ 典型例题
例1 某工厂2010年的年生产总值为200万元,技术革新后预计以后每年的生产总值都比上一年增长5%,设计一个程序框图,输出预计年生产总值超过300万元的最早年份。
例2 设计并画出判断一个大于2的正整数是否为质数的程序框图.
※ 动手试试
练1.画出求三个不同实数中的最大值的程序框图.
三、总结提升 ※ 学习小结
设计一个算法的程序框图的基本思路:
第一步,用自然语言表述算法步骤.
第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示.
第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框.
※ 知识拓展
本节课主要讲述了程序框图的画法,无论怎样复杂的算法,它都包含三种基本逻辑结构,即顺序结构、条件结构和循环结构。它们相互支撑的,共同构成了算法的基本结构。画完整的
且 1.执行右边的程序框图,若p=0.8,则输出的n =________.
2.给出以下四个问题:
①输入一个数x ,输出它的相反数;
②求面积为6的正方形的周长;
③求三个数a ,b ,c ,中的最大数;
④求函数?
??<+≥-=)0(2)0(1)(x x x x x f 的函数值;
⑤求两个正整数a,b相除的商及余数.
其中不需要用条件语句来描述其算法的有____________.