循环结构程序设计_第1页
循环结构程序设计_第2页
循环结构程序设计_第3页
循环结构程序设计_第4页
循环结构程序设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章循环结构程序设计,1循环结构用于处理需要重复执行的操作。 例如,求出依次出入多个学生的成绩输出的s=12399求100的几个商品的平均价格,再加上从1到100的奇数顺序等。 2 QBASIC提供了实现WHILE循环结构的三个语句FOR循环结构DO循环结构在WHILE WEND中实现循环,WHILE循环是最容易理解、最广泛使用的“本循环”结构。 格式: WHILE循环体(重复执行的语句)找到WEND、WHILE语句时,首先评价“条件”,判断条件是“真”还是“假”的条件为“真”时,执行WHILE和WEND之间的语句,然后上述条件是否为“真”。 以上过程中,如果某个条件重复到“假”为止的条件为

2、“假”,则不执行WHILE和WEND之间的语句,直接跳至WEND出口解除循环,执行WEND以后的语句。 /计算n! (即123N ),输入“n=”; nm=1p=1whilep=nm * p=P1 wenddprint“m=”; m END的执行结果是: n=? 5米5 m=120即5!=120,m=m*p=p1,m=m*p=p1,P=n,P=n,满足,满足,不满足,在该型循环结构中用DOLOOP结构进行循环(1),1,最简单的DO循环,DO循环,循环体, 程序:参考LOOP1-1. bas loop1-2. bas DO WHILE条件循环loop,do循环LOOP WHILE条件是DOLO

3、OP结构中的循环(2)、2、带WHILE子句的循环(该循环)、带while子句的循环示例(1) 例如:求50种商品的平均价格(N-S流程图为右)的程序: total=0I=1Dow hili=.00001 sum=sumtermi=I1term=1/(I * I ) loop pi=sqr (sum *6) print pi=。 pi结束,程序(事后型):sum=0I=1term=1/(I * I ) do sum=sumtermi=I1term=1/(I * I ) loopwhiterm=.0001 pi=sqr (sum *6)打印 pi=; pi结束,带WHILE子句的循环示例(3),

4、程序(先行型):sum=0i=5dowhilei5sum=sumiloopprintsumend执行结果: 0,程序(后续型):sum=0I=5do sum=sum I loop whi 此时,循环变量I的值发生变化,将原来的值替换为新的值。 “NEXT i”并不意味着“取1个值I”,返回执行步骤循环执行结束,执行NEXT语句的下一个语句。 FOR-NEXT循环结构的例子(1),例子:依次输入员工50人的工资并输出。 for I=1to 50输入=; s PRINT s NEXT i END在FOR语句中指定循环次数,总共执行50次循环,在变量s中输入一个个数,并输出该数(N-S流程图如下)。

5、 FOR-NEXT环结构的例子(2)“水仙花数”是3位数,该各位数的立方和等于该数,例如153=13 53 33,153是“水仙花数”。 找到100999的所有“水仙花数”。 分析:主题的钥匙是如何分离三位中的一位、十位、百位的,假设I表示由a、b、c三位数字构成的三位(1)百位的a: a=INT(i/100 ) (例如INT(342/100)=3) (2)。 (例如,INT(342-3*100)/10)=4 (3)位的c: c=INT(i-a*100-b*10 ) (例如,INT(342-3*100-4*10)=2或: c=i-INT(i/10)*10 (例如,344 ) b as整合器ca

6、sintegerfori=100 to 999 a=int (I/100 ) b=int (I-a * 100 )/10 ) c=I-int (I/10 ) * 10 ifi=a * a * b * c * c * c then pri FOR语句必须在NEXT语句之前循环变量的初始值和结束值可以是正、负、零 FOR语句的“循环变量”和NEXT语句的“循环变量”必须是相同的变量。 例如,FOR I=1 TO 3 STEP 1: I :下一步; 步可以是正的或负值。 可以是整数或小数。 我们提倡使用整数。步长为1时,可以省略“STEP”。步长为0时,循环不结束,变为“死循环”。 下一个程序在“死

7、周期”中运行。 FOR x=2 TO 10 STEP 0 PRINT x NEXT x 结束循环的条件是“循环变量的值超过结束值”,不是“循环变量的值等于结束值”,循环次数的计算是循环次数=INT (循环结束值-循环初始值) /步循环变量的作用主要是控制循环,根据其值来决定结束循环过程的时间。 循环变量可以在循环体中引用,也可以不在循环体中引用(请参见samp5-17.bas )。 一般不在循环内重新分配循环变量,否则会影响原来的循环控制状况。 过程可以从循环体内转移到循环体外,但不能从循环体外转移到循环体内。 fork=1to 10s=sk * kfs 200 gotoa : next ka

8、 :打印机结束是合法的。 但是,循环有两个出口,不符合结构化原则,所以不提倡使用。 FOR-NEXT循环结构的说明(2),FOR-NEXT循环结构的例子(3),例如:让计算机让小学生出10个主题,要求加100以内的两位数的整数,学生输入答案后自动判断它是否正确。 最后算出学生的得分。 (每题十分)。 主题分析:首先,让计算机生成两位随机整数。 QB具有RND函数,用于随机生成(01)之间的随机小数。 不包括0,1。 如果将其放大到100倍进行整形,则INT(100*RND )为 0,99 ,例如,如果随机生成0.256847,则INT(100*0.256847)=25; INT(10*RND

9、)获得 0,9 随机整数INT(90*RND )获得 0,89 随机整数INT(10*RND) 10使用 10,99 随机整数,即两位整数的循环来获得10个主题因为当程序被执行时,系统提供固定的“随机化种子”,通过该“随机化种子”生成随机数,所以只要不改变每次程序被执行的“随机化种子”,就生成相同的随机数。 dimasainteger,b AS INTEGER,iasintegerremrandomizerandomizetimescore=0f ori=1to 10a=int (90 * rnd ) 10b=int (90 * rnd ) 10打印机“”b; = ; inputciifc=abthenscore=score 10 next iprint yourscoreis : ; score END,FOR-NEXT环结构的示例(4),例如,判断整数n是否为素数(1和其自身不能被其他整数整除的数除外)。 1、利用循环从2n-1中,判断各个数能否除尽n的flag=1fori=2ton-1 if nmin=0then flag=1nextprintn; is )如果将if flag=1then print“notaprimennum

温馨提示

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

评论

0/150

提交评论