VFP循环结构教材示例

合集下载

2013-1VFP第7部分(循环辅助语句、多重循环)

2013-1VFP第7部分(循环辅助语句、多重循环)

真 内循环初始条件 假 内循环结束 改变外循环 循环条件
内循环条件 真 内循环体 改变内循环循 环条件
外循环结束
列表框(List)
控件类
教材P65
主要属性:ColumnCount、 ColumnWidths 主要事件:InteractiveChange 主要方法:AddItem、 AddListItem
exit:通常又称为中途退出语句或 循环终止语句。
注意:适用于3种循环
流程图:
N
条件 Y 语句序列 LOOP EXIT
enddo的下一条命令
EXM4: 将100到150中第一个能被3整除的 数找出来。
For n=100 to 150 if n%3=0 thisform.text1.value=n exit endif 结束当前循环,跳出 endfor exit所在的循环结构
“输出”按钮的“Click”事件代码: k=0 for x=3 to 100 for n=2 to sqrt(x) if mod(x,n)=0 exit endif endfor if n>sqrt(x) thisform.edit1.value=thisform.edit1.value+str(x,5) k=k+1 if k%5=0 thisform.edit1.value=thisform.edit1.value+chr(13) endif endif endfor
二维数组
注:在定义数组时,数组名不能 与同一环境下的简单变量同名。
数组元素的赋值及输出与简单
内存变量相同。
同一个数组元素在不同时刻可 以存放不同类型的数据。
在同一个数组中,每个元素的 值可以是不同的数据类型。

vfp程序设计 第7讲 循环

vfp程序设计 第7讲 循环

另一种循环: 另一种循环:SCAN … ENDSCAN
格式: 格式:
SCAN [ 范围 ] [ FOR<条件表达式 ][WHILE<条件表达式 条件表达式1> 条件表达式2>] 条件表达式 条件表达式
< 语句序列 > [ EXIT ] [ LOOP] ENDSCAN 功能:对当前打开的表文件在指定范围, 功能:对当前打开的表文件在指定范围,满足条件的记录中 进行自上而下逐个扫描操作,随着记录指针的移动,SCAN循 进行自上而下逐个扫描操作,随着记录指针的移动,SCAN循 环允许对指定的每条记录执行相同的< 操作。 环允许对指定的每条记录执行相同的< 语句系列 >操作。 说明:SCAN循环能自动移动指针 按条件指定记录, 循环能自动移动指针, 说明:SCAN循环能自动移动指针,按条件指定记录,避免在 循环体内重复执行表文件查询命令。 WHILE循环也可以 循环体内重复执行表文件查询命令。用DO WHILE循环也可以 实现对表文件的逐个扫描操作,但它需要借助函数BOF() BOF()或 实现对表文件的逐个扫描操作,但它需要借助函数BOF()或 EOF()测试状态 测试状态, SKIP命令移动指针 不如SCAN循环方便。 命令移动指针, SCAN循环方便 EOF()测试状态,用SKIP命令移动指针,不如SCAN循环方便。
y="零壹贰叁肆伍陆柒捌玖 零壹贰叁肆伍陆柒捌玖" 零壹贰叁肆伍陆柒捌玖 p=substr(y,2*x+1,2) ?x,"->",p input "a=" to a input "b=" to b input "c=" to c d=max(a,b,c) e=min(a,b,c) f=a+b+c-d-e ?d,f,e

第七章 VFP程序设计五

第七章 VFP程序设计五

3、内部过程调用 一个过程文件最多可存放128个过程,调 用文件时,系统能找到各个过程的入口位 置,只要一次打开过程文件,就可以调用 其中任何一个过程,从而减少磁盘的频繁 读写,提高程序运行速度。 (1)过程 所谓过程就是一段程序,它必须由 PROCEDURE命令开头,以RETURN 命令结尾,其命令格式: PROCEDURE<过程名> <过程体> RETURN[TO MASTER/TO <程序名>]
三、多重循环(循环嵌套)
循环嵌套和分支嵌套解决方法一样。 典型例题:键盘输入10个数,按从 大到小顺序输出。(283)
四、过程调用与自定义函数
1、概念 在程序中重复出现的命令序列或经 常使用的实用程序写成独立的程序 段,称为子程序,也叫过程。对子 程序进行调用的程序称为主程序。 主程序与子程序是相对而言的。
注:①可选项WITH<参数表>的作用是 主程序向子程序传递参数的,若 选用了WITH项,则子程序第一 条命令必须是 PARAMETERS<参数表>
②子程序以RETURN[TO MASTER] 结束,表示终止程序执行,返回 到该过程的调用处。若加上 TO MASTER表返回到最高层的程序
例1:
②由于LOCAL与LOCATE前四个字 母相同,所以该命令命令动词不能 缩写。 ③局部变量要先建立后使用,且当 建立它的模块程序运行结束后,自 动释放。 3、私有变量 在程序中直接使用(没有通过PUBLIC和LO CAL命令事先声明)而由系统自动隐含建立 的变量都是私有变量。私有变量的作用域是 建立它的模块及其下属的各层模块。
4、变量的隐藏 命令格式:PRIVATE<内存变量表> 功能:隐藏指定的在上层模块中可能已 经存在的内存变量,使得这些变 量在当前模块程序中暂时无效。 当前程序在运行结束返回上层模 块时,那些被隐藏的内存变量就 自动恢复有效性,并保持原有值

VFP编程(循环结构)

VFP编程(循环结构)

二、循环结构do while 循环:当循环的次数事前未知,只知道什么时候退出循环时,要用 do while 语句;在循环体里应有使条件成立的语句;条件表达式的条件一定要与题目中给出的条件相反。

…………………………………………………………………………………………1.求12+42+72+……一直加直到和超过1000为止,输出和数和项数。

i=1sum=0n=0do while sum<=1000sum=sum+i^2i=i+3n=n+1enddo? "项数为",n? "sum=",sum2.求∏值,直到某项的绝对值小于0.000001为止。

4pi =1-31+51-71+…… sum=0s=1i=1t=s/ido while ABS(t)>=1E-06sum=sum+ts=-si=i+2t=s/ienddopi=4*sum? pi3.从键盘不断输入字符,统计其中数字字符的个数,一旦输入*,统计结束。

n=0accept "输入一个字符" to CHdo while CH<>"*"m=ASC(CH)if M>=48 and m<=57n=n+1endifaccept "输入一个字符" to CHenddo? "输入的字符中共有数字字符个数为",n4.键盘输入两个整数,求他们的最大公约数和最小公倍数。

input "输入一个整数" to minput "输入另一个整数" to nm1=mn1=nt=mod(m,n)do while t<>0m=nn=tt=mod(m,n)enddo? "最大公约数为",n? "最小公倍数为",m1*n1/n* 02年真题第2题:求两个整数m和n的最大公约数。

VFP_实验4-2 循环结构程序设计

VFP_实验4-2  循环结构程序设计

实验4-2 循环结构程序设计一、实验目的理解循环结构的概念,掌握三种循环语句的格式和不同的使用方法,在程序设计中灵活运用各种循环语句。

二、实验准备复习教材中有关循环结构的和语句概念,特别注意DO WHILE---ENDDO、SCAN ---ENDSCAN、FOR--- ENDFOR的有关内容,重点理解和掌握本章例题的设计技巧。

三、实验内容1.编写程序:求x + x2 + x3 + x4 + + x n的值。

n,x从键盘输入。

要求用DO WHILE---ENDDO和FOR--- ENDFOR两种方法实现。

2. 编写程序,求1+2+3+…+M 的累加和不大于103的临界值M 。

3.编写程序,能够反复判定从键盘输入的一个年份是否为闰年,直到用户选择退出为止。

4.编写程序:显示输出正整数M(从键盘输入)内的偶数及偶数和。

5.要求用循环语句编写程序,显示输出“职工”表中基本工资大于2000元的姓名、部门、性别、基本工资等数据。

6.利用表设计器在销售表中增加一个“档次”字段(C,6),然后利用表循环结构编写程序,根据每个职工的总销售金额给出5档业绩评价:优(≥6000),良(≥4000),中(≥2000),合格(≥1000),不合格(<1000),评价填写在档次字段中。

(设计提示:先按每个职工分类求和销售金额,再对分类求和后的表进行循环处理。

运行结果如图4-33所示。

)图4-33 职工总销售额业绩评价7.编写程序,从键盘输入M个正整数,显示输出其中的最大和最小数。

8.编写程序,显示输出M!<=5000时的最大正整数M。

四、实验4-2报告1.实验过程报告(1)写出第1题的程序代码。

*1.编写程序:求x + x2 + x3 + x4 + + xn的值。

n,x从键盘输入。

DO WHILE---ENDDO方式。

SET TALK OFFCLEARINPUT "N=" TO NINPUT "X=" TO XA=1S=0I=1DO WHILE I<=NA=A*XS=S+AI=I+1ENDDO?"S=" , SSET TALK ON*1.编写程序:求x + x2 + x3 + x4 + + xn的值。

VFP第六章课件2(循环结构)

VFP第六章课件2(循环结构)

控制循环执行的方式
控制循环执行的方式
3)用记录指针控制循环 学院英语比赛成绩数据表SH.DBF SH.DBF中包 例2:学院英语比赛成绩数据表SH.DBF中包 括以下字段:姓名( ),班级 班级( 括以下字段:姓名(C,8),班级(C, 10),英语(N ),英语(N, 0)和备用(N, 和备用(N 10),英语(N,3,0)和备用(N,3,0) ;其 中除备用字段外,其他字段均已有值。 中除备用字段外,其他字段均已有值。 编程序统计各班英语的平均成绩, 编程序统计各班英语的平均成绩,并显示平 均分前三名的班级和平均成绩( 均分前三名的班级和平均成绩(假设平均成绩 都不相同)。 都不相同)。 ( 见“程序168.PRG” 程序文件 )
<内存变量>为循环变量,作为计数器控制循环。<数 内存变量>为循环变量,作为计数器控制循环。 值表达式1>为循环变量初值; 数值表达式2> 1>为循环变量初值 2>为循环 值表达式1>为循环变量初值;<数值表达式2>为循环 变量终值,循环变量超过终值循环结束。 变量终值,循环变量超过终值循环结束。 FOR语句每循环一次 语句每循环一次, FOR语句每循环一次,自身便改变一次循环变量的 STEP短语设置改变的增量 短语设置改变的增量, 数值表达式3> 值,STEP短语设置改变的增量,由<数值表达式3> 设置。正值为增加,负值为减少,缺省默认为1 设置。正值为增加,负值为减少,缺省默认为1。在 循环中允许使用赋值语句修改循环变量的值。 循环中允许使用赋值语句修改循环变量的值。 FOR语句可以嵌套 语句可以嵌套。 NEXT任选其一 任选其一。 FOR语句可以嵌套。ENDFOR 和NEXT任选其一。

VFP第4、5部分(循环结构)

VFP第4、5部分(循环结构)

步长可正可负
* 仍计算阶乘 此处步长为负 仍计算阶乘,此处步长为负 clea Input "请输入自然数 to n 请输入自然数:" 请输入自然数 j=1 for i=n to 1 step -1 j=j*i endfor ? N, "!= ",j return
当循环
步长循环
input “请输入终值:” to n 请输入终值: 请输入终值 input “请输入步长:” to k 请输入步长: 请输入步长 i=1 do while i<=n <命令序列 命令序列> 命令序列 i=i+k endddo for i=1 to n step k <命令序列 命令序列> 命令序列 endfor|next
改变循环变量值 clea s=0 i=1 do while i<=100 s=s+i i=i+1 enddo ?"1+2+3+...+100=",s retu
例:求n的阶乘 的阶乘
clea Input "请输入自然 数:" to n j=1 for i=1 to n j=j*i endfor ? N, "!= ",j return * 100以内自然数求和 以内自然数求和 clea s=0 for i=1 to 100 s=s+i endfor ? "1+2+3+...+100=",s return
DO WHILE .T. 结构
• 此种表述的条件,必须设置强制退出的语 此种表述的条件, 句来完成退出循环, 句来完成退出循环,否则会出现死循环的 情形。 情形。 DO WHILE .T. … EXIT &&用来强制退出循环 用来强制退出循环 … ENDDO

VFP循环结构教材示例

VFP循环结构教材示例

(1)如果是大写字母,用原字母后面第4
个字母代替原字母; (2)否则,用原字母后面第2个字母代替 原字母。 例如:明文“China”的密文是“Gjkpc”。
m=SPACE(0)
c="China"
FOR i=1 TO LEN(c)
nc=ASC( SUBSTR( c, i, 1 ) ) IF nc>64 AND nc<91
【例5.12】统计字符串中大、小写英文字母 的个数。
c= "Visual FoxPro" STORE 0 TO Nmax, Nmin DO WHILE ""<>c do case case ASC(LEFT(c,1))>64 AND ASC(LEFT(c,1))<91 _______________________ Nmax=Nmax+1 case ASC(LEFT(c,1))>96 AND ASC(LEFT(c,1))<123 _______________________ Nmin=Nmin+1 endcase c=SUBS(c,2) ENDDO WAIT WINDOW "大写:"+STR(Nmax,2)+; "小写:"+STR(Nmin,2)
【例5.7】计算1~100之间所有奇数 (且这些奇数不能被3整除)之和。
S=0
FOR i = 1 TO 100 STEP 2 IF MOD(i , 3)= 0 LOOP ENDIF
S=S+i
ENDFOR WAIT WINDOW “100以内的整数和= “+STR( S)
【例5.8】下列程序的运行结果是什么?

VFP第11部分(循环辅助语句及多重循环)解析

VFP第11部分(循环辅助语句及多重循环)解析

例:以下程序段与VFP命令: DELETE WHILE 性别="男" .and. 政治面貌="群众" 等效,请填空完成。 Go top do while .not.eof() if 性别<>"男" ① endif if 政治面貌="群众" ①exit ② ②delete endif skip enddo
例:编写输出乘法口诀表的程序,要求口诀 表呈三角形格式输出。
1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 . . . 9*1=9
2*2=4 3*2=6 4*2=8 5*2=10 . . 9*2=18
3*3=9 4*3=12 4*4=16 5*3=15 5*4=20 5*5=25 9*3=27 9*4=36 9*5=45 … 9*9=81
3种循环结构
Do while….enddo for….endfor scan….endscan
循环辅助语句
loop: 通常又称为中途复始语句或 短路语句。
exit:通常又称为中途退出语句或 循环终止语句。
流程图:
N
条件 Y 语句序列 LOOP EXIT
enddo的下一条命令
【例】 来。
将10到20中第一个能被3整除的数找出
xs
do while .t. && accept "请输入学生的学号:" to xh if len(alltrim(xh))=0 exit If alltrim(xh)=“#” endif ? “姓名 专业班级 课程号 成绩" scan for 学号=xh &&内循环 ?xs.姓名,xs.籍贯,课程号, endscan enddo close all set safety on return

vfp_循环结构_2010

vfp_循环结构_2010

阶乘问题的求解 但要注意变量的初始化问题 ►但要注意变量的初始化问题
数据库及VFP6.0程序设计 循环结构程序 程序设计—循环结构程序 数据库及 程序设计
10
FOR循环的例 FOR循环的例
为数据表中的“序号(C,4)”字段顺序编号 为数据表中的“
即按照记录的物理顺序对记录的“序号” 即按照记录的物理顺序对记录的“序号”字段填入一 个序号值;并首记录的序号值为“ ” 依此类推, 个序号值;并首记录的序号值为“1”;依此类推,逐 一进行编号 每次填写共分两步完成: 每次填写共分两步完成: 指针定位 替换序号字段 REPLACE 序号 WITH 数值 填写操作从首记录开始,一直到末记录结束; 填写操作从首记录开始,一直到末记录结束;需要进 行的替换操作的次数就是记录的总数
Y
条件? 条件?
N
SACN / ENDSACN语句 语句
循环体
数据库及VFP6.0程序设计 循环结构程序 程序设计—循环结构程序 数据库及 程序设计
4
FOR 循环结构
FOR 循环控制变量=初值 TO 终值 [ STEP 步长 ] 循环控制变量= <语句序列> 语句序列> [ IF <逻辑表达式> 逻辑表达式> 步长是循环控制变量在每一次循环后变化的 LOOP | EXIT 数值 ENDIF] 可为正数;也可为负数 可为正数 也可为负数 ENDFOR 步长> 省略 STEP <步长 时,等价于 STEP 1 步长
数据库及VFP6.0程序设计 循环结构程序 程序设计—循环结构程序 数据库及 程序设计
12
任意输入的10个数值的倒数之和 任意输入的10个数值的倒数之和
CLEAR S=0 FOR N=1 TO 10 INPUT “X= ” TO X S=S+1/X ENDFOR ?“倒数和 S=”,S 倒数和 , RETURN

VFP课件(第六章)

VFP课件(第六章)

【例6-13】列表框选择多个项目。
(1)设计表单和控件属性:
(2) 设置对象属性 List对象的属性: 对象的属性: 对象的属性 MoverBars=.t. 设置每个列表项行首有可移动按钮 MultiSelect=.f. 可连续删除多项
(3) 编写事件代码
“删除”按钮的Click 事件 删除”按钮的
【例6-14】显示学生情况 。
(1)设计界面:
(2)设计属性:
“班级编号”组合框: 班级编号”组合框:
ControlSource = 学生情况.班级编号 RowSourceType = 1-值 RowSource = 951202,951603,951801,951201 Style = 2
下拉组合框(即 属性默认为0)则兼有列表框和文 下拉组合框 即Style属性默认为 属性默认为 本框的功能。用户可以单击下拉组合框上的按钮查看选择项的 列表,可以直接在按钮旁边的框中直接输入一个新项。
组合框常用属性 属性
ControlSource RowSourceType RowSource Style ListCount Selected Value DisplayValue
作用
指定用于保存用户选择或输入值的表字段 指定框中数据源的类型 指定框中数据项的来源 指定组合框是下拉列表框还是下拉组合框 返回框中列表项的个数 用于分辨框中某一列表项是否被选中,选中时Selected 属性返回.T.,否则返回.F. 返回在列表中选定的项 返回组合框中键入的文本
(1)下拉列表框 如果想节省表单上的空间, 如果想节省表单上的空间 , 并且希望强 调当前选定的项,可以使用下拉列表框。 调当前选定的项,可以使用下拉列表框
【例6-10】求1~1000之间的全部完数。

VFP第4、5部分(循环结构+表单)zxl

VFP第4、5部分(循环结构+表单)zxl

思考6:输入任意ASCII字符串,逆序
显示。
确定变量:
x:存任意字符串
x=LEFT(x,n-m)
与数据表联 系紧密,放
在第九讲
1)条件循环(do while…enddo) 格式:书143页 流程图:
条件 N Y
语句序列
Enddo之后的命令
例:计算s=1+2+3+…+100
第 1 步, 计算 0+1;
第 2 步, 计算 (0+1) +2;
递推
第 3 步, 计算 (0+1+2) +3; 算法
………Βιβλιοθήκη clea s=0 i=1 do while i<=100
s=s+i i=i+1 enddo ?"1+2+3+...+100=",s
循环体
改变条件取 值的语句
说明:
①循环结构从do while开始,到 enddo结束,两者必须成对出现;在 enddo后面可以书写注释。
②循环是否继续取决于条件的当前 取值,一般情况下循环体中应含有改变 条件取值的命令或语句,否则将造成死 循环。
③如果循环可以通过计数来控 制,则本循环比条件循环更为方便。
当循环
步长循环
input “请输入终值:” to n
input “请输入步长:” to k
i=1
for i=1 to n step k
do while i<=n
<命令序列>
<命令序列>
endfor|next
i=i+k
endddo
常见循环算法实例

VF循环结构

VF循环结构

i=3
s=3+3=6
i=4
s=6+4=10
i=5
s=10+5=15
i=6
求 1+2+...+n 和完整代码
input "请输入 n=" to n
s=0 i=1 do while
i<=n
循环的初始条件 循环条件
s=s+i
i=i+1 enddo
循环状态的变 化
?"1+2+...+n=",s
计数型循环结构
格式: FOR <循环变量>=<初值> TO <终值> [STEP <
步长>] <命令序列> ENDFOR 功能:通过判断循环变量的取值是否在指定范围之 说明:中来确定循环体是否重复执行 初值、终值、步长均为数值型数据。 省略STEP <步长>,则<步长> 为默认值1。
结构对比
小麦总量=10000粒 do while 小麦总量>0
例9.8:统计学生表中少数民族男女生人数。
store 0 to x, y use student scan for 少数民族否=.t.
if 性别="男" x=x+1
else y=y+1
endif endscan use ?x,y
小结
• 当循环:DO WHILE…ENDDO • 计数循环:FOR…ENDFOR • 表扫描循环:SCAN…ENDSCAN • EXIT终止循环,LOOP终止本次循环 • 循环结构的设计:如何根据循环变量的初
值、终值和改变值,来确定循环的次数

Vfp程序设计循环结构(列表框设计九九乘法表)

Vfp程序设计循环结构(列表框设计九九乘法表)

Vfp程序设计循环结构练习——使用列表框设计九九乘法表1、实验目的:掌握循环语句结构语法。

熟练掌握DO WHILE……ENDDO、FOR……ENDFOR语句了解SCAN……ENDSCAN语句掌握组合框、页框。

熟练掌握列表框。

2、实验内容:编程题:输出“九九”乘法表,格式如图所示设计步骤:1、设计程序界面与设计对象属性。

选择“新建”表单,进入表单设计器。

增加一个列表框控件List1、两个个命令按钮Command1和Command2、一个标签Label1。

其他控件的属性设置请参见前面章节。

2、编写Command1的Click事件代码:FOR n=1 TO 9s=ALLT(STR(n-1))i=ALLT(STR(n))THISFORM.LIST1.ADDLISTITEM("*",1,1)THISFORM.LIST1.ADDLISTITEM(i,n+1,1)FOR t=n TO 9i=ALLT(STR(n))THISFORM.LIST1.ADDLISTITEM(i,1,n+1)s=ALLT(STR(t*n))THISFORM.LIST1.ADDLISTITEM(ALLT(STR(t))+"*"+ALLT(STR(n))+"="+s,t+1, n+1)ENDFORENDFOR说明:添加列表方法AddlistItem(s,n,1)第三个参数表示列表项添加到列表中的列数。

编写Command2的Click事件代码:THISFORM.RELEASE。

循环结构程序VFP_PPT

循环结构程序VFP_PPT

练习:工资表统计工作
统计工资表中工资总额在3500元 以上的记录,并逐条显示该记录的内 容。
VFP程序设计教程
四、scan…endscan
例:工资表统计工作
统计工资表中工资总额在3500元 以上的记录,并逐条显示该记录的内 容。
VFP程序设计教程 九九乘法表
VFP程序设计教程
小 结
1. 2. 学会用循环结构编写程序。 掌握循环语句的嵌套方式。
VFP程序设计教程 例:记帐凭证输入密码验证程序 do while .t. accept "请输入密码:" to ma if ma<>'pzsr' and ae<>3 loop else if ma<>'pzsr' and ae=3 return endif endif exit enddo
VFP程序设计教程
endfor/next
VFP程序设计教程 例: 棋盘上的麦粒 古印度时,锡塔为国王发明了象棋而得到重赏, 国王问他要什么?他说:“陛下只要在象棋棋盘的第 一个格子上放1粒麦子,第二格子放2粒麦子,以后每 个格子的麦子数都按前一格的两倍计算。如果陛下按 此法给我64格的麦子,就感激不尽了。”国王想, “这还不容易!”让人杠了一袋麦子,但很快用光了, 再扛一袋还不够,国王惊呆了!国王一下共要给锡塔 多少小麦? 锡塔一共要了:1.84ⅹ1019粒; 一吨小麦:2.49 ⅹ107粒; 1.84ⅹ1019 / 2.49 ⅹ107 =7390亿吨; 2012年我国粮食产量:5.9亿吨。
循环结构程序设计
VFP程序设计教程
知识目标
1 程序流程图 FOR / ENDFOR语句 DO WHILE / ENDDO语句

VFP-04-03DoWhile和For循环

VFP-04-03DoWhile和For循环

Do While和For循环班级:数学系12级日期:2013.11时数:1目的:理解Do While和For循环语句重点:Do while/EndDo语句及举例难点:循环语句的理解关键:图示4.4 循环结构程序4.4.1 Do While循环语句格式:Do While <条件><语句序列>[Exit][Loop]EndDo功能:条件满足时,循环执行Do While和EndDo之间,直到条件不满足或Exit强行退出。

执行过程:第1步:计算<条件>表达式,结果为.F.,整句结束;否则为.T.,到第2步。

第2步:执行Do While和EndDo之间的<语句序列>。

中途遇Exit命令,强行结束本循环语句。

中途遇Loop命令,回到第1步。

遇EndDo语句,回到第1步。

图4-5 Do While语句流程图教学提示:为了与FOR语句流程图一致,才这样画图中的虚线。

说明:①Do While和EndDo须各占一行,成对出现。

②必须能退出循环,否则为“死”循环。

教学提示:以求s=1+2+...+100为例,变以取奇、偶数、s>100、去3的倍数,以演示初值、增量、exit、loop。

第97页,例 4.13已知学生成绩表student_cj.dbf中有10条记录,请写出以下程序的执行结果。

set talk offclearuse student_cj.dbfi=1do while i<10i=i+2append blankenddo"學生成績表的記錄個數為:",recc()useset talk onreturn第97页,例 4.14请写出以下程序的执行结果。

set talk offst="123456789"k=8do while k>=0x=substr(st,k,k)y=left(st,k)z=right(st,k)s=x+y+zk=k-3enddo"s=",sset talk onreturn第97页,例 4.15逐条显示学生信息表student_info.dbf中1989年出生的学手的记录。

2012-2013-2VFP第4部分(循环结构)

2012-2013-2VFP第4部分(循环结构)

x: x=0 x<=n x=x+1
S: s=0 S=s+x
“计算”命令按钮的“click”事件代码: n=thisform.text1.value s=0 x=1 do while x<=n s=s+x enddo thisform.text2.value=s
说明: ①循环结构从do while开始,到enddo结 束,两者必须成对出现;在enddo后面可以书 写注释。 ②循环是否继续取决于条件的当前取值, 一般情况下循环体中应含有改变条件取值的 命令或语句,否则将造成死循环。 ③循环结构能自身嵌套(多重循环),还 能与选择结构的各种形式嵌套。
涉及数据表的循环, 第6章介绍
扫描循环scan
1)条件循环(do while循环) 格式: 流程图:
教材P62
条件
N
Y 语句序列 Enddo之后的语句
【例】计算1+2+3+…+100
第 1 步, 计算 0+1; 第 2 步, 计算 (0+1)+2; 递归 第 3 步, 计算 (0+1+2)+3; 算法 ……… 第 i 步, 计算 (0+1+…+i-1)+i; ………. 第 100 步,计算 (0+1+…+99)+100;
messagebox(“前30项的和是:"+alltrim(str(w)))
【练习10】有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13……求出这个数 列的前20项之和。(注意分子与分母的变化规律。)
Command1_click: w=0 &&和计数器 a=2 &&记录分子 b=1 &&记录分母 x=1 do while x<=20 w=w+a/b c=a a=b+a &&形成下一项的分子 b=a &&形成下一项的分母 x=x+1 enddo
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PARAMETERS pDigit
LOCAL cString
cString = "零一二三四五六七八九"
pDigit*2+1 RETURN SUBSTR (cString ,___________, 2 )
ENDFUNC
【例5.16】计算1 ~ 5 阶乘之和。
S=0 FUNCTION FJC
FOR i = 1 TO 5
S = S+FJC(i)
PARAMETERS x
p=1
FOR n = 1 TO x
p=p*n ENDFOR RETURN p ENDFUNC
ENDFOR
?S
p=LEFT(c,1)+p
c=SUBSTR(c,2) ENDDO ? cc+”的反序为”+p
【例5.11】将由任意字符(包括汉字)组成 的字符串进行反序显示。
STORE „a中国bcdef‟ TO c,cc p=SPACE(0) DO WHILE LEN(c)>0 x=ASC(LEFT(c,1)) IF x>127 i=2 ELSE i=1 ENDIF p=LEFT(c, i )+p c=SUBSTR(c, i+1 ) ENDDO ? cc+”的反序为”+p
【例5.13】对表达式 1/(1×2×3)+1/(2×3×4)+…+1/[n(n+1)(n+2)] 进行求和,要求计算精度小于0.0000001。 nS = 0 i=1 DO WHILE .T. 1/(i*(i+1)*(i+2)) nS = nS + ________________ IF 1/(i*(i+1)*(i+2)) < 0.0000001 EXIT _________
CLEAR C="金字大宝塔" N=LEN(c)/2 FOR i=1 TO n 金 字字 大大大 宝宝宝宝 塔塔塔塔塔
?SPACE( 70-i )
FOR j=1 TO i ??SUBS( c, 2*i-1, 2 ) =INKEY( 0.5 ) ENDFOR
ENபைடு நூலகம்FOR
【例5.9】加密算法。
将由英文字母组成的字符串加密:
ENDIF ______ i=i+1 ENDDO
【例5.14】显示所有籍贯为“江苏”的学 生的姓名和籍贯。
USE XS "江苏"$jg SCAN FOR _____________ ?xm,jg
_____________ ENDSCAN
USE
【例5.15】定义一个函数ntoc( ),当传递给一个0~9 之间的阿拉伯数字时,返回一个中文的“零~九”。 FUNCTION ntoc
【例5.12】统计字符串中大、小写英文字母 的个数。
c= "Visual FoxPro" STORE 0 TO Nmax, Nmin DO WHILE ""<>c do case case ASC(LEFT(c,1))>64 AND ASC(LEFT(c,1))<91 _______________________ Nmax=Nmax+1 case ASC(LEFT(c,1))>96 AND ASC(LEFT(c,1))<123 _______________________ Nmin=Nmin+1 endcase c=SUBS(c,2) ENDDO WAIT WINDOW "大写:"+STR(Nmax,2)+; "小写:"+STR(Nmin,2)
(1)如果是大写字母,用原字母后面第4
个字母代替原字母; (2)否则,用原字母后面第2个字母代替 原字母。 例如:明文“China”的密文是“Gjkpc”。
m=SPACE(0)
c="China"
FOR i=1 TO LEN(c)
nc=ASC( SUBSTR( c, i, 1 ) ) IF nc>64 AND nc<91
循环结构教材示例
【例5.6】计算100以内的奇数之和。
N=100
S=0
FOR i = 1 TO N STEP 2 S=S+i ENDFOR ? N,“ 以内的整数和= " , S
【例5.6】计算100的阶乘,即: P = 100! = 1×2× 3 ×…×100 。
N=100
P= 1
FOR i = 1 TO P=P*i ENDFOR ? ALLTRIM (STR( N ) ) +"的阶乘 = ",P N
【例5.7】计算1~100之间所有奇数 (且这些奇数不能被3整除)之和。
S=0
FOR i = 1 TO 100 STEP 2 IF MOD(i , 3)= 0 LOOP ENDIF
S=S+i
ENDFOR WAIT WINDOW “100以内的整数和= “+STR( S)
【例5.8】下列程序的运行结果是什么?
m=m+CHR( nc+4 )
ELSE
m=m+CHR( nc+2 )
ENDIF ENDFOR WAIT WINDOW c+"字符加密后为"+m
【例5.10】将由ASCII码字符组成的字符串 进行反序显示。
STORE „abcdef‟ TO c, cc
p=SPACE(0)
DO WHILE LEN(c)>0
相关文档
最新文档