程序框图的循环结构
- 格式:doc
- 大小:73.00 KB
- 文档页数:6
程序框图的循环结构
算法初步是高中新课程中的一项新增内容,而且作为高中数学必修内容的一部分。
《新课程标准》里指出:算法是数学的重要组成部分,是计算理论、计算机理论和技术的基础。
可见算法的重要地位和作用。
在数学中,算法通常是按照一定规则解决某一类问题的明确和有限的步骤。
通俗地说,算法就是用计算机求解某一问题的方法,解决问题的过程就是实现算法的过程。
问题的不同求解过程就是不同的算法。
算法是程序设计的“灵魂”,但算法又独立于任何具体的程序设计语言,一个算法可以用各种程序设计语言来实现,比如:可以用BASIC语言,也可以用C语言等来实现。
由于BASIC语言具有简单、易学等特点,数学课本《必修3》介绍算法语句时就使用QBASIC(BASIC的一种)的语句形式和语法规则。
下面就结合我的教学实践并参考计算机教程《算法与程序设计》来谈谈一些认识。
一.程序框图的由来和含义
自然语言、程序框图及程序是算法的不同表示形式。
用自然语言描述算法的优点是通俗易懂,但容易造成理解歧义,描述算法太长,不够精练。
当算法中存在循环或分支较多时,不易清晰表示出来。
与自然语言描述相比,用程序框图描述的算法形象、直观,更容易理解。
而且对于一个复杂的算法,如果直接编写程序语言很难保证程序的正确性,此时人们往往先用程序框图来描述算法,然后根据程序框图就可以方便地写出程序语言了。
所以程序框图的学习与掌握还是有必要的。
程序框图是一种用程序框、流程线及文字说明来表示算法的图形。
它是文科选修教材1-2第四章《框图》中介绍的流程图的一种,它不同于日常生活和工作中常见的诊病流程图、工序流程图等等。
程序框图是算法步骤的直观图示,它有一定的规范和标准,要求能编成计算机程序,并能在计算机上进行运行,而日常生活中用到的流程图则相对自由一些,它只要能较直观,明确地表示动态过程从开始到结束的全部步骤即可。
二.程序框图的基本逻辑结构
算法的结构包括顺序结构,条件结构,循环结构等三种基本逻辑结构。
任何一个算法都可以由这三种基本逻辑结构构成。
下面就“循环结构”谈谈我的一些看法:
循环结构是算法结构中最复杂的一种,设计循环结构,关键是要理解循环的形成与控制。
从循环的形成与控制不同来划分,循环结构可分为直到型循环结构和当型循环结构。
数学书本给出了直到型循环结构和当型循环结构的定义:在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环,这种循环结构称为直到型循环结构,而在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则终止循环,像这样的循环结构称为当型循环结构。
用程序框图表示为
因此很多教师就从这两个定义中归纳出直到型循环结构与当型循环结构的异同点。
见下
从定义确可以看出有两个方面的不同。
当出现某一种循环结构它符合1A ,也符合2B 时或者符合2A 同时也符合1B 时,用框图表示就是如下两种形式:
它们都不属于二种循环结构中的任何一种,
好认为这是错误的程序框图。
某一中学老师发表在学教学参考》的“算法初步教学的若干认识”了这个观点,她认为右图所示的程序框图是错误的。
认为这种观点是不对的,只要能正确地表示算法,确的程序框图。
允许出现同时符合12A B 符合21A B 的程序框图。
以下结合《必修3》书本例子进行阐述。
例:设计一个计算1+2+……100序框图。
书本给出了下面两种程序框图:框图(1)和框图(2),以及对应的两种程序:程序(1)和程序(2)。
图(1)
就程序框图本身而言,我认为还可以有其他形式出现,如框图(3),(4)所示。
它们同样解决“计算1+2+…+100的值”的问题,因而它们都是正确的程序框图.只是在数学《必修3》书本中未提到而已。
事实上,在计算机教程QBASIC语言中,循环结构有三种:FOR-NEXT循环、WHILE-WEND循环和DO循环结构。
其中
DO循环结构除了适合于知道重复次数的循环,它们还适合于事先难以确定重复次数的情况。
因此,凡是能用FOR-NEXT循环描述的问题一定可以通过WHILE-WEND循环和DO循环结构来解决。
所以教材就只提到WHILE-WEND循环和DO循环结构,这有一定的合理性。
WHILE-WEND
循环就是书本所说的当型循环,对应的语句就是 WHILE-WEND语句。
因此当型框图(1)对应的程序(1)就是应用WHILE-WEND循环格式。
图(4)
图(3)
四种不同的格式的比较
其中(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 循环,。
而DO 循环结构有以下四种不同的格式:
有了这些QBASIC 知识,我们就可以写出框图(3)对应的程序(3),框图(4)对应的程序(4)(如上图所示),另外,程序(5)也是框图(1)的对应程序。
由于教材在这部分知识的遗漏,使我们在一线的不少教师对于程序框图缺乏清晰的认识,结合QBASIC 知识,我们才真正看清那些既不是教材所说的当型结构,也不是直到型结构的程序框图。
数学《必修3》教材要求学生掌握条件结构的嵌套,但对嵌套循环(循环体内部还有循环语句的循环叫做嵌套循环,又叫多层循环或多重循环)则不做要求。
因此象解决“寻找100以内的勾股数”这样的问题,如果没有嵌套循环的相关知识,那么就存在相当大的困难。
以上就是本人关于程序框图中循环结构的一些初浅认识。