大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  Pascal语言>>Pascal入门>>由分区联赛题谈Basic循环         本站全文搜索: 友情提示:

由分区联赛题谈Basic循环
http://www.mydrs.org  7/8/2004  大榕树


  在2002年奥林匹克竞赛(NOIP)复赛中有这样一题:已知Sn=1+1/2+1/3+……+1/n。显然对于任意一个整数K,当n足够大时,Sn大于K。现给出一个整数K(1≤K≤15),要求计算出一个最小的n,使得Sn>K。

输入:键盘输入  K
输出:屏幕输出  n

  当看到题后,同学们马上就会想到用循环,因为Sn=1+1/2+1/3+……+1/n是一个很典型的累加求和问题,所以也自然就会想到用FOR/NEXT来实现循环(此处用BASIC语言,竞赛时可以使用的语言)。于是有:

Sn=0
FOR  I=1  TO  N
Sn=Sn+1/N
NEXT  I

  然后再加上条件判断语句,相信就会求出一个K值。将上面程序逐步完善,如下所示:

10  INPUT  K
20  Sn=0
30  FOR  I=1  TO  N
40  Sn=Sn+1/N
50  IF Sn>K THEN  GOTO  70
60  NEXT  I
70  PRINT  N
80  END

  上机测试,为什么结果总是0呢?在40语句后加一行打印语句(45  PRINT S),进行调试,结果全是0,这说明没有执行累加语句,为什么呢?
原来,在没有给N赋初值的情况下,默认值为0,那就难怪上述程序不执行循环体了,可是在题目要求里,N是我们所要求的值,在求出之前,我们并不知道N的值啊。即使给N赋了一个很大的值,让它去执行循环,勉强能解此题的话,这在思路上也是不可取的,而且浪费了资源,降低了程序的执行效率。更何况这个N值应大到什么程度呢?怎么办?

  让我们先来分析一下FOR/NEXT语句,格式如下:

FOR  I=初值  TO  终值  STEP 步长值
循环体
NEXT  I

  它是将循环变量的值与终值进行比较,当循环变量的值未超过终值的范围时,则顺序执行循环体内各个语句,若循环变量的值超过终值的范围,则退出循环,执行NEXT的后继语句。也就是说它是利用循环变量的增值来控制程序的循环次数,从而完成循环过程的,所以必须得有一个具体的N值,当然可以是已赋值的变量或算术表达式。
此时我们可以下结论,像这道题这样的循环结构程序,是不能用FOR/NEXT语句来完成的。(你心里一定在想FOR/NEXT都实现不了,那还能有谁能实现啊!当然有了!)用WHILE/WEND语句也能实现循环哦,它是通过一个标志来控制循环的语句,它的格式如下:

WHILE  关系表达式
  循环体
WEND

  执行过程为首先判断关系表达式,当关系表达式的值为真时,顺序执行循环体内各语句,当遇到WEND时,再次判断表达式的值,决定是否执行循环体,当关系表达式的值为假时,则执行WEND的下一语句。

  下面用WHILE/WEND 来实现上述程序:
10  INPUT  K
20  Sn=0:N=0
30  WHILE  Sn <=K
40  N=N+1
50  Sn=Sn+1/N
60  WEND 
70  PRINT  N
80  END

  上机测试,一路绿灯,顺利通过了。所以大家在用循环语句的时候,一定要注意每种循环语句的特点和适用范围。使用WHILE循环结构,可以事先并不清楚循环的次数,但应知道什么时候结束循环的执行;若事先知道循环次数,则可以使用FOR循环结构。


作 者:李秀丽
来 源:河北省迁安市迁安镇第一初级中学(064400)
共有9357位读者阅读过此文

  • 上篇文章PC Logo for Win 研砉汉化版
  • 下篇文章第21届全国青少年信息学奥赛简介

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8307]
    2. 七类高中生具有保送资格 [5911]
    3. NOI2006获奖选手名单 [4956]
    4. 关于举办NOIP2006模拟赛的通告 [4107]
    5. Turbo Pascal各语句运行速... [3595]
    6. Turbo王者归来新Delphi免费... [3182]
    7. IOI2006我国4名选手全部获得金... [2946]
    8. 关于APIO2007与IOI2007... [2764]
    9. noip倒计时 by 枯叶蝴蝶 [2684]
    10. 朱泽园:思想上的金牌更重要 [2169]
    由分区联赛题谈Basic循环
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号