您的位置:首页 > 其它

循环结构中“当型”与“直到型”判断的理解

2013-03-26 10:19 239 查看
新课标的高考考试中,每年都有一道与算法初步有关的试题,而这些试题大多数与循环结构有关。我们知道,循环结构分“当型”与“直到型”,而对这两种结构的判断,《数学》必修3,人民教育出版社,A版(以下简称教材),在对这两种结构的特征描述上不够准确,仅各以一种形式加以表述,给部分老师在教学上带来困惑,以至于学生不能理解二者的区别。故作此文,期望能与同行商榷,以达到抛砖引玉之功效。

在教材中,有如下描述(P12-13):循环结构可以用程序框图表示为(图1.1-12)

           


这个循环结构有如下特征:在执行了一次循环后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环。因此,这种循环结构称为直到型循环结构

除直到型循环结构外,图1.1-13表示的也是常见的循环结构,它有如下特征:在每次执行循环体前,对条件进行判定,当条件满足时,执行循环体,否则终止循环。因此,这种循环结构称为当型循环结构

        


从以上两种不同形式的循环结构可以看出,循环结构中一定包含条件结构,用于确定何时终止循环体。

无独有偶,在《数学周报》人教版3.2011-2012学年第27期第三版《算法与程序框图检测题》基础训练第4题:

例1 直到型循环结构的框图为( )

   


其所提供的参考答案为(B)。这样的判断合理吗?

让我们来看,教材第十五页例7:

例2 某工厂2005年的年生产总值为200万元,技术革新后,预计以后每年的年生产总值都比上一年增长,设计程序框图,输出预计年生产总会超过300万元的最早年份。

说明:图甲是教材原图,图乙是笔者作改动后的框图:

    


很显然,两个框图执行结果完全一样,请仔细观察两框图中,虚线框住部分:图甲明显满足教材中对“直到型”循环的特征要求,而图乙却是先执行判断后执行循环体,那么图乙是“当型”循环?很显然不对,因为“当型”的另一个特征是跳出循环体的方式是“条件不满足”。

据此,由“先判断条件是否满足,再执行循环”作为判断是否是“直到型”或“当型”循环结构是不恰当的。

在谭浩强主编的《QBASIC语文教程》(电子工业出版社,1997年2月版)第七章循环结构中,详细介绍了循环结构及其特征:

为了清晰地找出循环的出口,人们希望循环的结束点发生在循环的开头或结束处,一般用带WHILE或UNTIL子句的循环。对于“当型”(WHILE子句)的作用是:当指定的条件为真时继续执行循环体,当条件为假时不再执行循环,即下图(图一)中的(A)格式,是在循环的入口处检查指定的条件是否满足,即“前测试”当型循环;(B)格式是在循环体的结束处检查指定的条件是否为真,它是“后测试”当型循环,因此使用这种结构,至少应执行一次循环体。

   


对于“直到型”(带UNTIL子句)的作用是:当指定的条件为真时就终止循环的执行,这是与WHILE的主要区别。同样也分为两类:一类是“前测试”循环,即在循环开始时检查指定的条件是否满足,格式如图一(C);另一类是“后测试”循环,即在循环体结束处测试条件,格式如图一(D)。这两类的区别是(C)中指定条件满足则一次也不执行循环体,而(D)是无条件执行一次循环体,然后再测试条件。

在此我们可以认为,判定一个循环结构是否“当型”或“直到型”,与是否执行了一次循环体无关,只能是以跳出循环体的方式来确定,结论为:

以“是”来脱离循环体为“直到型”循环,“否”脱离循环体为“当型”循环。

故而很显然,本文中提到的例1(D)选项也是直到型循环。

另外,当将一个“直到型”循环改成“当型”循环的框图时,条件框中的条件不一定互为补集(在题目中所涵指的数集内)

例3 画出

的程序框图

解:

     


两者的差异在于与执行



的先后顺序不同,判断框中的取值范围并不互补。这一点必须在教学中引起足够的重视。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: