关于“程序框图的循环结构”教学的若干反思.doc_第1页
关于“程序框图的循环结构”教学的若干反思.doc_第2页
关于“程序框图的循环结构”教学的若干反思.doc_第3页
关于“程序框图的循环结构”教学的若干反思.doc_第4页
关于“程序框图的循环结构”教学的若干反思.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于“程序框图的循环结构”教学的若干反思 福建师大附中 刘文清 算法初步是高中新课程中的一项新增内容,而且作为高中数学必修内容的一部分。新课程标准里指出:算法是数学的重要组成部分,是计算理论、计算机理论和技术的基础。可见算法的重要地位和作用。在数学中,算法通常是按照一定规则解决某一类问题的明确和有限的步骤。通俗地说,算法就是用计算机求解某一问题的方法,解决问题的过程就是实现算法的过程。问题的不同求解过程就是不同的算法。算法是程序设计的“灵魂”,但算法又独立于任何具体的程序设计语言,一个算法可以用各种程序设计语言来实现,比如:可以用BASIC语言,也可以用C语言等来实现。由于BASIC语言具有简单、易学等特点,数学课本必修3介绍算法语句时就使用QBASIC(BASIC的一种)的语句形式和语法规则。下面就结合我的教学实践并参考计算机教程算法与程序设计来谈谈一些认识。一.程序框图的由来和含义自然语言、程序框图及程序是算法的不同表示形式。用自然语言描述算法的优点是通俗易懂,但容易造成理解歧义,描述算法太长,不够精练。当算法中存在循环或分支较多时,不易清晰表示出来。与自然语言描述相比,用程序框图描述的算法形象、直观,更容易理解。而且对于一个复杂的算法,如果直接编写程序语言很难保证程序的正确性,此时人们往往先用程序框图来描述算法,然后根据程序框图就可以方便地写出程序语言了。所以程序框图的学习与掌握还是有必要的。程序框图是一种用程序框、流程线及文字说明来表示算法的图形。它是文科选修教材1-2第四章框图中介绍的流程图的一种,它不同于日常生活和工作中常见的诊病流程图、工序流程图等等。程序框图是算法步骤的直观图示,它有一定的规范和标准,要求能编成计算机程序,并能在计算机上进行运行,而日常生活中用到的流程图则相对自由一些,它只要能较直观,明确地表示动态过程从开始到结束的全部步骤即可。二程序框图的基本逻辑结构算法的结构包括顺序结构,条件结构,循环结构等三种基本逻辑结构。任何一个算法都可以由这三种基本逻辑结构构成。下面就“循环结构”谈谈我的一些看法:循环结构是算法结构中最复杂的一种,设计循环结构,关键是要理解循环的形成与控制。从循环的形成与控制不同来划分,循环结构可分为直到型循环结构和当型循环结构。数学书本给出了直到型循环结构和当型循环结构的定义:在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环,这种循环结构称为直到型循环结构,而在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则终止循环,像这样的循环结构称为当型循环结构。用程序框图表示为满足条件?循环体是否满足条件?循环体是否因此很多教师就从这两个定义中归纳出直到型循环结构与当型循环结构的异同点。见下表:当型循环结构直到型循环结构相同点循环体被重复执行:包含条件结构,用于确定何时终止执行循环体不同点:先判断条件再执行循环体;:先执行循环体再判断条件;:条件满足时执行循环体,直到条件不满足时为止:条件不满足时执行循环体,直到条件满足时为止从定义确可以看出有两个方面的不同。当出现某一种循环结构它符合,也符合时或者符合同时也符合时,用框图表示就是如下两种形式:满足条件?循环体是否满足条件?循环体否是它们都不属于二种循环结构中的任何一种,所以有的老师只好认为这是错误的程序框图。某一中学老师发表在中学数学教学参考的“算法初步教学的若干认识”一文中也阐述了这个观点,她认为右图所示的程序框图是错误的。我个人认为这种观点是不对的,只要能正确地表示算法,都属于正确的程序框图。允许出现同时符合的程序框图和同时符合的程序框图。x0?x=x-3y=0.5x开始结束是输出y 否输出x 以下结合必修3书本例子进行阐述。例:设计一个计算1+2+100的值的算法,并画出程序框图。书本给出了下面两种程序框图:框图(1)和框图(2),以及对应的两种程序:程序(1)和程序(2)。i100?i=1S=0i=i+1S=S+i开始结束是否输出S图(1)()i100?i=1S=0S=S+ii=i+1开始结束是否输出S图(2)i=1s=0DOs=s+ii=i+1LOOP UNTIL i100PRINT SEND程序(2)i =1s=0WHILE i=100s=s+ii=i+1WENDPRINT SEND程序(1)就程序框图本身而言,我认为还可以有其他形式出现,如框图(3),(4)所示。它们同样解决“计算1+2+100的值”的问题,因而它们都是正确的程序框图.只是在数学必修3书本中未提到而已。事实上,在计算机教程QBASIC语言中,循环结构有三种: FOR-NEXT循环、WHILE-WEND循环和DO循环结构。其中 FOR-NEXT循环的一般格式为:FOR = TO STEP 循环体 NEXT 由此发现FOR-NEXT循环只适合于知道重复次数的循环,而WHILE循环和DO循环结构除了适合于知道重复次数的循环,它们还适合于事先难以确定重复次数的情况。因此,凡是能用FOR-NEXT循环描述的问题一定可以通过WHILE-WEND循环和DO循环结构来解决。所以教材就只提到WHILE-WEND循环和DO循环结构,这有一定的合理性。WHILE-WENDi100?i=1S=0S=S+ii=i+1开始结束是否输出S图(3)循环就是书本所说的当型循环,对应的语句就是WHILE-WEND语句。因此当型框图(1)对应的程序(1)就是应用WHILE-WEND循环格式。i100?i=1S=0i=i+1S=S+i开始结束是否输出S图(4)()而DO循环结构有以下四种不同的格式:格式(2)DO 循环体LOOP WHILE 格式(1)DO WHILE 循环体LOOP格式 (4)DO循环体LOOP UNTIL 格式(3)DO UNTIL 循环体LOOP四种不同的格式的比较先判断条件再执行循环体先执行循环体再判断条件所列条件满足时执行循环所列条件满足时退出循环所列条件满足时执行循环所列条件满足时退出循环格式 (1)格式(3)格式(2)格式(4)其中(1) 和(2)都是带WHILE 子句的DO循环,(3) 和(4)都是带UNTILE子句的DO循环。使用WHILE和UNTILE的区别在于将其中的“条件”改成“反条件”。只有弄清楚它们之间的联系和区别,才便于我们对它们进行改写。我们发现框图(3)对应于格式(2),框图(4)对应于格式(3),而直到型框图(2)相对应的程序(2)就是应用这里的格式(4)。另外,我们还发现当型框图2-1除了教材中提供的对应程序2-1,即WHILE-WEND循环语句之外,还可以应用格式(1)来写程序。事实上,QBASIC保留WHILE-WEND循环主要是为了与GW-BASIC或BASICA兼容。而象目前高中生正在学习的计算机教程VBASIC已经舍去了WHILE-WEND循环,。i =1s=0DO WHILE i100s=s+ii=i+1LOOP PRINT SEND 程序(4)i=1s=0DOs=s+ii=i+1LOOP WHILE i=100PRINT SEND程序(3)有了这些QBASIC知识,我们就可以写出框图(3)对应的程序(3),框图(4)对应的程序(4)(如上图所示),另外,程序(5)也是框图(1)的对应程序。由于教材在这部分知识的遗漏,使我们在一线的不少教师对于程序框图缺乏清晰的认识,结合QBASIC知识,我们才真正看清那些既不是教材所说的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论