欢迎来到天天文库
浏览记录
ID:25198156
大小:365.00 KB
页数:51页
时间:2018-11-16
《vfp程序设计第7章》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第7章循环结构程序设计7.1循环结构语句7.2列表框与组合框控件7.3页框循环结构程序设计循环结构循环体循环终止条件语句1——Dowhile命令当型循环的语法格式:DOWHILE〈条件〉[〈命令列〉][EXIT][LOOP][〈命令列〉]ENDDO无条件循环无条件结束循环Dowhile命令的应用实例实例一:输出一个序列数实例二:求阶乘实例三:求素数语句1——For命令步长型循环命令FOR若事先知道循环次数,则可以使用步长型循环(FOR…ENDFOR)结构。步长型循环可以根据给定的次数重复执行循环
2、体。其语法结构为:FOR〈内存变量〉=〈初值〉TO〈终值〉[STEP〈步长值〉][〈命令列〉][LOOP][EXIT][〈命令列〉]ENDFOR
3、NEXTFor命令的应用实例实例一:输出一个序列数实例二:求阶乘实例三:求素数Next7.1循环结构语句7.1.1当型循环命令DOWHILE想要在某一条件满足时执行循环,可以使用当型循环(DOWHILE)结构。当型循环的N-S流程图,如下图1所示。当条件{该(循环)条件成立吗?}a块{条件成立时所执行的操作块,即循环体}当型循环的语法格式:DOWHIL
4、E〈条件〉[〈命令列〉][EXIT][LOOP]ENDDO条件?命令序列ENDD后继语句YNLOOPEXIT【例7-1】计算阶乘的程序(图6-2)。非负整数n的阶乘定义如下:分析:求阶乘n!,可以采用累乘的方法,用变量t来存放累乘的积(初值为1),用变量i来存放“乘数”。i从1开始到n为止。根据以上分析画出流程图,如图6-3所示。THISFORM.Text2.Value=t输入nt←1{累乘器赋初值}i←1{计数器赋初值}当i<=n{当计数器的值不超过n时}t←t×i{累乘}i←i+1{计数器增
5、1}输出t{输出乘积}根据流程图可写出命令按钮的Click事件代码如下。n=THISFORM.Text1.Valuet=1i=1DOWHILEi<=nt=t*ii=i+1ENDDO另外,为了防止数据溢出,限制输入的整数不超过20。为此,编写文本框Text1的事件代码如下:⑴Valid事件代码:a=THIS.ValueIFa<0ORa>20MESSAGEBOX("请输入不超过20的非负整数!")THIS.GotFocusRETURN0ELSERETURN.T.ENDIF⑵GotFocus事件代码:
6、THIS.SelStart=0THIS.SelLength=LEN(THIS.Text)【例6-2】输入两个正整数,求它们的最大公约数。如图6-4所示。根据此分析画出流程图如图6-5所示。输入m,n大数放入m,小数放入n求m/n的余数当r≠0m←nn←r求m/n的余数输出n{输出最大公约数}表单界面的设计参见前面章节,这里给出命令按钮的Click事件代码:m=THISFORM.Text1.Valuen=THISFORM.Text2.ValueIFn*m=0MESSAGEBOX("两数都不能为0!
7、")RETURNENDIFIFm8、&假设该数是素数i=2DOWHILEi<=SQRT(n)ANDs=0IFn%i=0&&整除s=1&&不是素数ELSEi=i+1&&产生下一个除数ENDIFENDDOIFs=0a='是一个素数'ELSEa='不是素数'ENDIF=MESSAGEBOX(ALLT(STR(n))+a,64+0+0,"信息")THISFORM.Text1.SetFocus编写Text1的GotFocus事件代码,使文本框得到焦点后,文本立即被选中:THIS.SelStart=0THIS.SelLength=LEN(ST9、R(THIS.Value))7.1.2步长型循环命令FOR若事先知道循环次数,则可以使用步长型循环(FOR…ENDFOR)结构。步长型循环可以根据给定的次数重复执行循环体。其语法结构为:FOR〈内存变量〉=〈初值〉TO〈终值〉[STEP〈步长值〉][〈命令列〉][LOOP][EXIT][〈命令列〉]ENDFOR10、NEXT【例7-4】利用“步长型”循环判断素数的程序。只需修改命令按钮Command1的Click事件代码:n=THISFORM.Text1.Values=0i=2FORi=2TOSQR
8、&假设该数是素数i=2DOWHILEi<=SQRT(n)ANDs=0IFn%i=0&&整除s=1&&不是素数ELSEi=i+1&&产生下一个除数ENDIFENDDOIFs=0a='是一个素数'ELSEa='不是素数'ENDIF=MESSAGEBOX(ALLT(STR(n))+a,64+0+0,"信息")THISFORM.Text1.SetFocus编写Text1的GotFocus事件代码,使文本框得到焦点后,文本立即被选中:THIS.SelStart=0THIS.SelLength=LEN(ST
9、R(THIS.Value))7.1.2步长型循环命令FOR若事先知道循环次数,则可以使用步长型循环(FOR…ENDFOR)结构。步长型循环可以根据给定的次数重复执行循环体。其语法结构为:FOR〈内存变量〉=〈初值〉TO〈终值〉[STEP〈步长值〉][〈命令列〉][LOOP][EXIT][〈命令列〉]ENDFOR
10、NEXT【例7-4】利用“步长型”循环判断素数的程序。只需修改命令按钮Command1的Click事件代码:n=THISFORM.Text1.Values=0i=2FORi=2TOSQR
此文档下载收益归作者所有