VFP循环结构程序设计
[课题]:循环结构程序设计
[目的要求]:了解循环结构的概念,理解FOR„„ENDFOR、DO WHILE„„ENDDO、SCAN„„ENDSCAN语句的格式、作用及流程,掌握循环结构的程序设计,领会循环结构在程序的作用。
[重点]:循环语句的格式、作用与流程;循环结构程序的编写。 [难点]:流程与程序的编写。
[学时]:5学时
[教学过程及内容]:
导入:
顺序结构、分支结构程序虽然容易编写,但不能反复运用。例如:从键盘输入10个数,判断其是奇数,还是偶数。对于这样的程序,我们仍用以前的方法进行编写,则代码太长,且不实际。那么就必须的用到循环语句。今天,我们来学习有关循环结构的有关内容。
新授内容:
概念:指根据问题的实际需要,多次重复执行某一段代码。在VF中,提供了FOR„„ENDFOR、DO WHILE„„ENDDO、SCAN„„ENDSCAN三种循环语句。
一、DO WHILE„„ENDDO
1、格式:
DO WHILE 条件表达式
语句组(循环体)
ENDDO
2、功能:首先判断条件表达式的值,若为.T.,则执行循环中的语句组,若为.F.,则不执行语句组,转到ENDDO的后面。当遇到ENDDO时,则转到循环的开头,再次判断条件表达式。执行时,若遇到LOOP语句,则转到循环的开头。若遇到EXIT语句,则退出循环,转到ENDDO的后面。
3、流程:
4、例:从键盘输入10个数,判断其是奇数,还是偶数
SET TALK OFF
I=1
DO WHILE I<=10
CLEAR
INPUT “请输入第”+str(I,2)+“个数” TO N
IF MOD(N,2)=0
,“偶数”
ELSE
,“奇数“
ENDIF
I=I+1
ENDDO
SET TALK OFF
RETURN
5、练习:求1+3+4+5„„+97+99的和。
6、例:从键盘输入成绩,给出评语。要求能反复输入,直到输入“N“时终止。
SET TALK OFF
DO WHILE .T.
CLEAR
INPUT “请输入成绩:” TO N
IF N>100 OR N<0
?”非法成绩“
LOOP
ENDIF
DO CASE
CASE N>=85
?“优秀”
CASE N>=70
,“良好”
CASE N>=60
,“及格“
OTHERWISE
,“不及格“
ENDCASE
WAIT “是否继续(Y/N),” TO T
IF UPPER(T)=”Y”
EXIT
ENDIF
ENDDO
6、练习:从键盘输入购物金额,给出实收金额。要求能反复输入,直到输
入“N“时终止。
7、例:已知成绩表中每个学生的总分、平均分已算出,现请填写名次内容。
SET TALK OFF
USE 成绩表
INDEX ON 总分 TAG ZF DESCENDING
GO TOP
I=1
DO WHILE NOT EOF()
REPL 名次 with I
I=I+1
Skip 1
ENDDO
LIST
USE
SET TALK OFF
8、练习:已知CG表中有学号、成绩、评语字段,现请根据成绩填写评语。
9、实例:
(1)死循环: 求1+3+4+5„„+97+99的和 I=1
S=0
DO WHILE I<=99
S=S+I
ENDDO
?S
(2)0次循环
I=1
S=0
DO WHILE I>=99
S=S+I
ENDDO
?S
10、DO WHILE„„ENDDO嵌套
解释:一个DO WHILE„„ENDDO句中包含另一个DO WHILE„„ENDDO语句
例:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,
问公鸡、母鸡、小鸡各多少,
SET TALK OFF
CLEAR
X=1
DO WHILE X<=20
Y=1
DO WHILE Y<=33
Z=100-X-Y
IF X+Y+Z=X*5+Y*3+Z/3
?X,Y,Z
ENDIF
Y=Y+1
ENDDO
X=X+1
ENDDO
SET TALK OFF
RETURN
11、练习:求所有的水仙花数,指一个三位数等于其各数的立方之和
二、FOR„„ENDFOR
1、格式:
FOR 内存变量=初值 TO 终值 [STEP 步长]
循环体
ENDFOR|NEXT
2、功能:首先将初值赋给内存变量,然后判断内存变量的值是否超过终值
(当步长为正时,为大于;当步长为负时,为小于)。若没有超过,则执行循环
体。若超过,则转到ENDFOR之后。在执行循环后,当遇到ENDFOR时,则内存变
量自动加一个步长值,然后转到开头处,继续判断内存变量的值是否超过终值。
说明:若没有步长,则默认为1
3、流程:
4、例:
(1)分析下程序,写出输出结果
For i=1 to 10 step 2
?i
Endfor
(2)分析下程序,写出输出结果
For i=10 to 1 step -2
?i
Endfor
(3)分析下程序,写出输出结果或指出问题 For i=1 to 10 step -2
?s
Endfor
(4)分析下程序,写出输出结果。
For i=1 to 10 step 2
if i>=5
exit
endif
?s
Endfor
5、实例:求1*2*3*4*„„*17*19的积。
SET TALK OFF
CLEAR
S=1
FOR I=1 TO 19
S=S*I
ENDFOR
,S
SET TALK ON
RETURN
6练习:求2*4*6*„„*18*20的积
7、例:有一个数列,前两个数是1,1,第三个数是前两个数之和,以后的
每个数都是其前两个数之和。现编程输出其前30个数
SET TALK OFF
CLEAR
N1=1
N2=1
,,N1,N2
FOR I=3 TO 30
N3=N2+N1
,,N3
N1=N2
N2=N3
ENDFOR
SET TALK ON
RETURN
8、FOR„„ENDFOR嵌套
解释:一个FOR„„ENDFOR语句中包含另一个FOR„„ENDFOR语句。
例:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,
问公鸡、母鸡、小鸡各多少,
SET TALK OFF
CLEAR
FOR X=1 TO 20
FOR Y=1 TO 33
Z=100-X-Y
IF X+Y+Z=X*5+Y*3+Z/3
?X,Y,Z
ENDIF
ENDFOR
ENDFOR
SET TALK ON
RETURN
9、练习:用FOR„„ENDFOR求所有的水仙花数。 三、SCAN„„ENDSCAN语句
1、格式:
SCAN [范围] [FOR 条件表达式]
循环体
ENDSCAN
2、功能:首先将指针定位到第一条记录,然后判断not EOF()的值或是
否超出范围,若为.T.,则执行循环体,若为.F.,则转到ENDSCAN之后。执行循
环体之后,当遇到ENDSCAN时,记录指针自动定位到下一条记录,然后现次判断
NOT EOF()的值或是否超出范围„„。
3、流程:
说明:SCAN„„ENDSCAN是针对表的循环,循环是否运行受记录指定的影响。
4、例:显示XG表中记录为奇数的记录
SET TALK OFF
CLEAR
USE XG
SCAN
IF MOD(RECNO(),2)<>0
DISPLAY
ENDIF
ENDSCAN
SET TALK ON
RETURN
5、练习:已知成绩表中每个学生的总分、平均分已算出,现请填写名次内容
6、程序实例:
(1)use cg
SCAN
REPL 平均分 WITH 总分/5
ENDSCAN
(2)use xg
SCAN NEXT 3
DISPLAY
SKIP
ENDSCAN
(3)use xg
SCAN NEXT 3 FOR 性别=”男”
display
skip
endscan
[小结]
[作业]
1、已知s=1+2+3+4+„„,求S>1000的最小值 2、求5~+10~+15~+20~ 222223、已知S=1+2+3+„„+N,求N<100的S值。 4、有面值为1元、2元和5元的人民币苦干,现从中取20张,使其总值为60
元,问有多少种取法。
本文档为【VFP循环结构程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。