第11部分解析_第1页
第11部分解析_第2页
第11部分解析_第3页
第11部分解析_第4页
第11部分解析_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、Visual Foxpro 6.0,程序设计基础,重庆工商大学计算机学院计算机基础教研室,3种循环结构,Do while.enddo,for.endfor,scan.endscan,循环辅助语句,loop: 通常又称为中途复始语句或短路语句。,exit:通常又称为中途退出语句或循环终止语句。,流程图:,条件,语句序列 LOOP EXIT,enddo的下一条命令,N,Y,【例】 将10到20中第一个能被3整除的数找出来。,For n=10 to 20 if n%3=0 ?n exit endif endfor,【例】 求300以内能被17整除的最大的数。,for x=300 to 1 step

2、-1 if mod(x,17)=0 ?x exit endif endfor,从大数开始,第一次找到的就是最大值,【例】 将10到20中所有不能被3整除的数找出来。,for n=10 to 20 if n/3=int(n/3) loop endif ?n endfor,【例】 求300以内能被17整除的所有整数。,for x=1 to 300 if x%17!=0 loop else ?x endif endfor,例:计算100以内的奇数和,s=0 i=0 do while .t. i=i+1 if i100 exit endif if i%2=0 loop else s=s+i endif

3、 enddo ? 100以内的奇数和为:,s cancel,mod(I,2)=0 或 int(i/2)=i/2,store 0 to x,s do whil .t. x=x+1 s=5*x if s20 exit else ?s endi endd retu,结果为:5 10 15 20,例:写出程序的结果,x=.t. s=0 do whil x s=s+1 if s/8=int(s/8) ?s else loop endi if s30 x=.f. endi endd retu,结果为:8 16 24 32,例:写出程序的结果,例:逐条显示xsda.dbf中女生的记录并统计人数。 clea

4、use xsda vs=0 do whil not eof() if 性别=“男” scan skip if 性别=“男” loop loop else else disp disp vs=vs+1 vs=vs+1 skip endi endi ends endd ?”女生人数为:”,vs retu,例:以下程序段与VFP命令: DELETE WHILE 性别=男 .and. 政治面貌=群众 等效,请填空完成。 Go top do while .not.eof() if 性别男 endif if 政治面貌=群众 endif skip enddo,exit delete,例:下列程序判断一个自然

5、数n是否为素数,其方法是用2到之间的数逐个去除,若余数都不为0,则n为素数,否则不是素数,请填空完成。,INPUT 请输入一个大于1的自然数: TO N Y=1 &Y=1表示所输入的自然数是素数,为0表示不是素数 X=INT(SQRT(N) I=2 DO WHILE I=X IF N%I_ _ LOOP ELSE Y=0 EXIT ENDIF ENDDO IF Y=1 ?_ +是素数 ELSE ?N,不是素数 ENDIF RETURN,0 i=i+1 str(n),多重循环(掌握双重循环),真,真,外循环初始条件,内循环初始条件,内循环体,外循环条件,假,内循环条件,假,改变内循环循环条件,改

6、变外循环循环条件,外循环结束,二重循环嵌套结构执行流程,内循环结束,例:利用双重循环编程求sum=1+(1+2)+ (1+2+3)+(1+2+3+10)之值。,方法一: clear sum=0 for i=1 to 10 t=0 for j=1 to i t=t+j endfor sum=sum+t endfor ? 1+(1+2)+(1+2+3)+(1+2+3+10)=,sum return,方法二: clear sum=0 t=0 for i=1 to 10 t=t+i sum=sum+a endfor ?sum=,sum return,例:编写输出乘法口诀表的程序,要求口诀表呈三角形格式

7、输出。,1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 . . . . . 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*9=81,clea for x=1 to 9 =+allt(str(s)+ endf ? endf retu,什么意思,可以省略吗?,例:编程打印如下图形: * * * * *,clear for i=1 to 5 &控制行 for j=1 to 2*i-1 &控制列 ?* endfor ? endfor return,for i=1 to 6 & 用于控制行 for k=6 to i step -1 ?“ ” endfor for j

温馨提示

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

评论

0/150

提交评论