师:好,各位同学,大家好,欢迎进入高中数学课堂。这节课我们来共同学习高中数学人教A版选修1 - 2第四章第一节流程图第一课时。在算法初步一章中,我们学习了程序框图,知道程序框图是算法直观而精确的表达和应用,是一座沟通算法、自然语言和程序语言的思维桥梁。
在生产生活中,我们还需要形形色色的框图。比如在数学教科书中,每一章的小结部分都包含一个知识结构图。框图不仅广泛应用于算法、计算机程序设计、工程流程的表述、设计方案的比较等方面,而且已经成为日常活动以及各种学术交流活动的常用表达形式。本章中,我们将学习用流程图来刻画数学问题以及其他问题的解决过程,用结构图来表达某些系统的结构或者组成。在这个过程中,我们将体验用框图表示数学问题的解决过程以及事物发生发展过程的优越性,提高抽象概括能力、逻辑思维能力,以及清晰地表达和交流思想的能力。
本章分两部分,第一部分是动态的流程图,第二部分是静态的结构图。首先我们进入第一部分的学习。为了更好地学习新知识,我们先来回顾一下之前学过的程序框图。下面通过一个具体实例来说明画一个程序框图的基本步骤:画出用二分法求方程(x^2 - 2 = 0)的近似根的程序框图。我们先用自然语言把这个算法描述出来,逐步细化算法步骤,然后画出相应的程序框图。
第一步,令(f(x) = x^2 - 2),设定精确度为(\epsilon)。因为(f(1) < 0),(f(2) > 0),所以取(x_1 = 1),(x_2 = 2)。
第二步,令(m = \frac{x_1 + x_2}{2}),判断(f(m))是否为(0)。如果(f(m) = 0),那么(m)就是方程的根;如果(f(m) \neq 0),那么判断(f(x_1) \times f(m))的符号。
第三步,如果(f(x_1) \times f(m) > 0),则令(x_1 = m);否则令(x_2 = m)。
第四步,判断(\vert x_1 - x_2 \vert \leq \epsilon)是否成立。如果成立,那么(m)就是方程的近似解,因为它符合我们精确度的要求,结束这个算法;否则,重新回到第二步,令(m = \frac{x_1 + x_2}{2}),再进行第二步和第三步的循环。
自然语言描述完以后,下面我们把它改写成程序框图。第一步,因为有(f(x) = x^2 - 2),所以先把这个输入进去,然后判断(f(x_1))与(f(x_2))乘积是否异号,同时提前输入精确度,这是运算必备条件。这样得到的程序框图为:输入(f(x) = x^2 - 2),确定精确度和(x_1)、(x_2)初值。
那么第二步包含什么样的逻辑结构呢?怎样用程序框图来表达这个过程?因为第二步有判断(f(m))是否等于(0)的步骤,所以第二步包含一个条件结构。用框图表示就是:先计算(\frac{x_1 + x_2}{2})并令其等于(m),然后判断(f(m) = 0)是否成立。若成立,输出(m),即得到符合要求的近似解;若不成立,则进行第三步。
接着看第三步,它又包含什么样的逻辑结构呢?用程序框图如何表示?这一步与第二步类似,也有判断(f(x_1) \times f(m) > 0)是否成立的过程,所以同样包含条件结构。用程序框图表达为:先判断(f(x_1) \times f(m) > 0)是否成立,若成立令(x_1 = m),否则令(x_2 = m)。
再看第四步,这是整个算法的最后一步,它包含什么样的逻辑结构呢?与前两步逻辑结构是否一样?怎样用程序框图表达?这一步中有判断是否成立的过程,若成立,(m)就是近似解,算法结束;若不成立则返回第二步。这个返回过程是一个循环运算过程,所以这一步与第二步、第三步构成一个循环结构。循环体是第二步和第三步,循环结构的条件是(\vert x_1 - x_2 \vert < \epsilon)或者(f(m) = 0)。这一步的程序框图形式为:第二步和第三步在循环体里,然后判断(\vert x_1 - x_2 \vert < \epsilon)或者(f(m) = 0)是否成立。若成立,(m)就是要找的近似值;否则循环第二步和第三步,重新进行一轮运算。
上述四步是算法的自然语言,目的是将其改成程序框图。下面把这四步用合适的流程线连接起来,就得到了本问题的程序框图。同学们看这个图,第一步还是输入(f(x) = x^2 - 2)、精确度以及(x_1)与(x_2)的初值,这里输入的是(1)和(2)。第二步、第三步有两个判断,第四步是一个循环。
通过这个例子可以明显看出程序框图在解决问题过程中有明显优势,它比自然语言表示的算法更加直观明确,流向更清楚,更容易改成计算机语言,还能动态地表示从开始到结束的全部过程。
那它有没有不足的地方呢?以上述例子的程序框图为例,这个程序框图是求(x^2 - 2 = 0)方程近似根的。根据刚才的解读,它的第一步、第二步、第三步、第四步很清晰。但如果没有刚才的解读,仅看这个框图,很难分离出算法的基本步骤。所以程序框图的不足也很明显,就是不容易轻易地分解出算法的基本步骤。
实际上在生活中还会遇到形形色色的图示。比如图书馆用这样的图示说明借阅流程:首先入库,然后找书,找书后进行阅览,接着借书,之后出库,最后还书。按照这个指示,借阅者很容易完成图书借阅工作,这个图给借阅带来很大便捷。
再看某中学新生报到的流程示意图:首先到智臻楼102室出示录取通知书,并填写新生注册信息表。如果已进行网上交费,就直接到智臻楼103室出示新生注册信息表、交费凭证,领取分班编码;如果未进行网上交费,先到智臻楼106室交费,再到智臻楼103室出示新生注册信息表、交费凭证,领取分班编码。完成此工作后,持分班编码到第二号楼对应教室领取教材、生活用品等,最后持分班编码到生活区3号楼10室办理住宿。这个入学报道示意图能帮助刚进入高中的新生快速完成入学报道工作,体现了图示的便捷性、指引性和方便性。
