循环结构中“当型”与“直到型”判断的理解
新课标的高考考试中,每年都有一道与算法初步有关的试题,而这些试题大多数与循环结构有关。我们知道,循环结构分“当型”与“直到型”,而对这两种结构的判断,《数学》必修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 画出的程序框图
解:
两者的差异在于与执行与的先后顺序不同,判断框中的取值范围并不互补。这一点必须在教学中引起足够的重视。
循环结构中“当型”与“直到型”判断的理解相关推荐
- 判断人物眼型matlab,1分钟判断你的眼型,如何根据眼型画好眼妆?
原标题:1分钟判断你的眼型,如何根据眼型画好眼妆? 每个人的眼型都不一样,而且亚洲人的眼睛不比欧美人,不适合欧美那种大面积的眼影 下面就根据不同的眼型和眼睛的问题着手,手把手教你们怎么画眼影! 每个人 ...
- sql注入_字符型、数字型判断
如何判断sql注入是字符型还是数字型? 在进行sql注入时,字段类型分为字符型或者数字型,意味着我们需要构造不同的sql语句. 假设存在sql注入的url是:http://192.168.0.1/id ...
- 前端:JS/17/前篇总结(JS程序的基本语法,变量),数据类型-变量的类型(数值型,字符型,布尔型,未定义型,空型),数据类型转换,typeof()判断数据类型,从字符串提取整数或浮点数的函数
JS程序的基本语法 1,JS是区分大小写的,如:Name和name是不同的: 2,JS中每一条语句,一般以英文的分号(;)结束,在Java中是严格地一定要加上分号,不然会报错:但在JavaScript ...
- [初级]Java中的switch对整型、字符型、字符串的具体实现细节
转载自 [初级]Java中的switch对整型.字符型.字符串的具体实现细节 Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进.到目前为止switch支持这样 ...
- C语言循环结构中break,C语言-循环结构及break、continue
-------------------------- --1-- 结构循环1.1 while循环1.2do-while循环1.3 for循环--2-- break和continue2.1break关键 ...
- TLC1543交流电压测试(单片机)教训版(千万注意电压型电路供流能力问题,注意器件属于电压输入型还是电流输入型)
先说一下,交流电压,搞了我几个月,搞死我了,找了好几种方法转直流,进AD,就是不行.NND!!!! 在软件上仿真了好几个电路,都蛮好的波形.焊成板子就是不行,没出来电压,要么就是不滑,进了AD差天上去 ...
- 教训少占鱼之:TLC1543--AD测试(单片机)教训(注意电压型芯片限流问题,器件属于电压输入型还是电流输入型)
先说一下,交流电压,搞了我几个月,搞死我了,找了好几种方法转直流,进AD,就是不行.NND!!!! 在软件上仿真了好几个电路,都蛮好的波形.焊成板子就是不行,没出来电压,要么就是不滑,进了AD差天上去 ...
- 试利用记录型信号量和pv操作写出_腰椎间盘突出症病理分型中,退变型、膨出型、突出型约占该病的百分比?...
腰椎间盘突出症病理分型中,退变型.膨出型.突出型约占该病的百分比? 下列属于图画书的艺术特征的是()A:构图的连续性B:形象的直观性C:画面的趣味性D:整体的传达性 决定骨断裂抵抗力和变形特征的主要因 ...
- Python数据类型——整型、布尔型、列表、元祖、字典
Python解释器可以自动识别用户输入的数据类型.创建对象的数据类型,可以通过type查看.需要注意的是:用户通过input输入的数据,其类型均为字符串 num1 = input("plea ...
最新文章
- 汇总|Yolo开源项目
- ios开发笔记之 APNS推送服务的实现
- 2021 - 10 -7 ! 二叉树的前序、中序、后序遍历 非递归思路(迭代版本)
- C指针原理(18)-C指针基础
- 屏幕释放第八章 Libgdx输入处理(3)输入设备
- 利用Caffe训练模型(solver、deploy、train_val)+python使用已训练模型
- 【Unity】3.1 利用内置的3D对象创建三维模型
- googel的扩展插件导出与导入
- 真实可靠的Python清屏命令
- CVBS视频信号解析
- es中的keyword相关功能
- ARM CORTEX M3
- HTML教程(8)-播放音乐
- JAVA计算机毕业设计电影视频在线点播系统Mybatis+系统+数据库+调试部署
- Hadoop性能调优
- http-parser用法
- iPhone帮帮忙(全彩)
- 201771010137 赵栋 《面向对象程序设计(java)》第十三周学习总结
- 粤嵌GEC6818实现图片显示
- Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Origin‘ he