关于循环结构设计的一个问题

2008-07-31 10:15朱华根
中学数学杂志(高中版) 2008年4期
关键词:人教质数语句

朱华根

在人教A版高中数学必修3第一章《算法初步》中,循环结构有下面两种形式:

(1)当型循环结构,如下左图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,再判断条件P是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P不成立为止,此时不再执行A框,离开循环结构.

(2)直到型循环结构,如下右图所示,它的功能是先执行,然后判断给定的条件P是否成立,如果P仍然不成立,则继续执行A框,直到某一次给定的条件P成立为止,此时不再执行A框,离开循环结构.

这里就提出了一个问题:如果设计的算法(含循环结构)不是上述形式,哪怎么办?由于教材中只给了上述两种形式,所以基本的办法就是:改进这类结构,使其成为标准的当型循环结构和直到型循环结构.

其实,人教A版教材中就提供了相应的例子,不过很不明显,而且因为前后不连贯,使人看不懂,不好理解,也许是教材的一个不明显的纰漏.

教材第4页,提出探究:你能写出“判断整数n(n>2)是否为质数”的算法吗?然后给出了下面的算法:

第一步:给定大于2的整数n.

第二步:令i=2.

第三步:用i除n,得到余数r.

第四步:判断“r=0”是否成立.若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示.

第五步:判断“i>(n-1)”是否成立.若是,则n是质数,结束算法;否则,返回第三步.

如果按照这一算法,相应的程序框图为:

这个算法就很难用WHILE ……WEND 语句和DO …… LOOP UNTIL语句来写(不能用GOTO语句或EXIT语句).在教材第7页,给出了“这个算法”的程序框图:

很明显,这已经是改进了的.容易看到,这个结构是严格按照两种循环结构之一的直到型来设计的,因此利用这个框图是很容易写出相应的程序的.

下面再举一个例子:

分析 如果有人把算法设计成下面的形式:

接下去写程序就很难了,所以这个算法必须改进,即改成严格按照两种循环结构来设计(这里当型和直到型都可以,下面给出的是直到型):最后,需要指出的是,当型循环结构和直到型循环结构其实可以合并成一种结构:

如果没有B,则就是当型循环结构,如果没有A,并把条件P换成非P,再把“是”和“否”交换一下,则就是直到型循环结构.上面例题中的第一个框图所显示的算法结构,就是这种型.但这种合并型,教材并没有提供相应的程序语句,如果一定要用,还是要对这种结构作一下改变(如右图):

容易看到效果是一样的,相应的语句就容易写了.以QBASIC为例对应的程序结构如下:

“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”

猜你喜欢
人教质数语句
小学英语外研版教材与其他版本教材比较分析及应用
质数迷宫
春风常化雨 润物细无声
质数“嫌疑犯”
巧记质数
基本算法语句
我喜欢
关于人教A版教材《算法初步》两个问题的思考
作文语句实录
跳出常规巧解题等2则