新课标的高考考试中,每年都有一道与算法初步有关的试题,而这些试题大多数与循环结构有关。我们知道,循环结构分“当型”与“直到型”,而对这两种结构的判断,《数学》必修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 画出的程序框图

解:

     

两者的差异在于与执行的先后顺序不同,判断框中的取值范围并不互补。这一点必须在教学中引起足够的重视。

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

  1. 判断人物眼型matlab,1分钟判断你的眼型,如何根据眼型画好眼妆?

    原标题:1分钟判断你的眼型,如何根据眼型画好眼妆? 每个人的眼型都不一样,而且亚洲人的眼睛不比欧美人,不适合欧美那种大面积的眼影 下面就根据不同的眼型和眼睛的问题着手,手把手教你们怎么画眼影! 每个人 ...

  2. sql注入_字符型、数字型判断

    如何判断sql注入是字符型还是数字型? 在进行sql注入时,字段类型分为字符型或者数字型,意味着我们需要构造不同的sql语句. 假设存在sql注入的url是:http://192.168.0.1/id ...

  3. 前端:JS/17/前篇总结(JS程序的基本语法,变量),数据类型-变量的类型(数值型,字符型,布尔型,未定义型,空型),数据类型转换,typeof()判断数据类型,从字符串提取整数或浮点数的函数

    JS程序的基本语法 1,JS是区分大小写的,如:Name和name是不同的: 2,JS中每一条语句,一般以英文的分号(;)结束,在Java中是严格地一定要加上分号,不然会报错:但在JavaScript ...

  4. [初级]Java中的switch对整型、字符型、字符串的具体实现细节

    转载自 [初级]Java中的switch对整型.字符型.字符串的具体实现细节 Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进.到目前为止switch支持这样 ...

  5. C语言循环结构中break,C语言-循环结构及break、continue

    -------------------------- --1-- 结构循环1.1 while循环1.2do-while循环1.3 for循环--2-- break和continue2.1break关键 ...

  6. TLC1543交流电压测试(单片机)教训版(千万注意电压型电路供流能力问题,注意器件属于电压输入型还是电流输入型)

    先说一下,交流电压,搞了我几个月,搞死我了,找了好几种方法转直流,进AD,就是不行.NND!!!! 在软件上仿真了好几个电路,都蛮好的波形.焊成板子就是不行,没出来电压,要么就是不滑,进了AD差天上去 ...

  7. 教训少占鱼之:TLC1543--AD测试(单片机)教训(注意电压型芯片限流问题,器件属于电压输入型还是电流输入型)

    先说一下,交流电压,搞了我几个月,搞死我了,找了好几种方法转直流,进AD,就是不行.NND!!!! 在软件上仿真了好几个电路,都蛮好的波形.焊成板子就是不行,没出来电压,要么就是不滑,进了AD差天上去 ...

  8. 试利用记录型信号量和pv操作写出_腰椎间盘突出症病理分型中,退变型、膨出型、突出型约占该病的百分比?...

    腰椎间盘突出症病理分型中,退变型.膨出型.突出型约占该病的百分比? 下列属于图画书的艺术特征的是()A:构图的连续性B:形象的直观性C:画面的趣味性D:整体的传达性 决定骨断裂抵抗力和变形特征的主要因 ...

  9. Python数据类型——整型、布尔型、列表、元祖、字典

    Python解释器可以自动识别用户输入的数据类型.创建对象的数据类型,可以通过type查看.需要注意的是:用户通过input输入的数据,其类型均为字符串 num1 = input("plea ...

最新文章

  1. 汇总|Yolo开源项目
  2. ios开发笔记之 APNS推送服务的实现
  3. 2021 - 10 -7 ! 二叉树的前序、中序、后序遍历 非递归思路(迭代版本)
  4. C指针原理(18)-C指针基础
  5. 屏幕释放第八章 Libgdx输入处理(3)输入设备
  6. 利用Caffe训练模型(solver、deploy、train_val)+python使用已训练模型
  7. 【Unity】3.1 利用内置的3D对象创建三维模型
  8. googel的扩展插件导出与导入
  9. 真实可靠的Python清屏命令
  10. CVBS视频信号解析
  11. es中的keyword相关功能
  12. ARM CORTEX M3
  13. HTML教程(8)-播放音乐
  14. JAVA计算机毕业设计电影视频在线点播系统Mybatis+系统+数据库+调试部署
  15. Hadoop性能调优
  16. http-parser用法
  17. iPhone帮帮忙(全彩)
  18. 201771010137 赵栋 《面向对象程序设计(java)》第十三周学习总结
  19. 粤嵌GEC6818实现图片显示
  20. Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Origin‘ he

热门文章

  1. 读书笔记《学习之道》芭芭拉·奥克利 - 三 最后总结
  2. 织梦未审核文档禁止动态浏览
  3. 2012年9月 《UDID罗生门》
  4. Redis 性能测试
  5. 大疆OSMO POCKET(大疆灵眸)使用无线模块连接手机后瞬间断开连接的解决办法
  6. 工业无线数传终端DTU 支持环保212协议
  7. python与seo应用_Python在我SEO工作中的应用一 - 数据采集
  8. AJAX使用淘宝API查询手机归属地和运营商信息
  9. Python可视化常用方法和常见问题解决方案
  10. Python 代码调试二三事