当型与直到型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环结构中“当型”与“直到型”判断的理解
贵州省贵定一中 莫云勇 赵云龙
新课标的高考考试中,每年都有一道与算法初步有关的试题,而这些试题大多数与循环结构有关。我们知道,循环结构分“当型”与“直到型”,而对这两种结构的判断,《数学》必修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 画出的程序框图
解:
两者的差异在于与执行与的先后顺序不同,判断框中的取值范围并不互补。这一点必须在教学中引起足够的重视。