VFP第4、5部分(循环结构+表单)zxl课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《VFP第4、5部分(循环结构+表单)zxl课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 部分 循环 结构 表单 zxl 课件
- 资源描述:
-
1、作业中的问题作业中的问题1 1、表达式的问题、表达式的问题 a+bc,b+ca,a+ca+bc,b+ca,a+cbb 5=x=10 5=x=102 2、数据输入问题、数据输入问题 input“input“请输入月份请输入月份”to yueto yue yue=month(date yue=month(date()()3 3、输入三个数降序输出、输入三个数降序输出4 4、分支结构嵌套时、分支结构嵌套时if ifendifendif的匹配的匹配5 5、elseelse后不能再写上条件后不能再写上条件仔细阅读课仔细阅读课件;模仿例件;模仿例题编写程序。题编写程序。第四讲第四讲 结构化程序设计(二)结
2、构化程序设计(二)循环结构循环结构通过表单设计引入面向对象程序设计基本方法通过表单设计引入面向对象程序设计基本方法 循环结构介绍循环结构介绍 常见循环算法实例常见循环算法实例循环辅助语句循环辅助语句多重循环多重循环内容提要内容提要 循环结构能够使某些语句或程循环结构能够使某些语句或程序段重复执行若干次。序段重复执行若干次。如果某些语句或程序段需要如果某些语句或程序段需要,使用,使用循环是最好的选择。循环是最好的选择。循环结构介绍循环结构介绍常见的循环结构有:与数据表联与数据表联系紧密,放系紧密,放在第九讲在第九讲 格式格式:书书143143页页 流程图:流程图:条件条件语句序列语句序列Endd
3、oEnddo之后的命令之后的命令NY循环循环体体第第i次累加项次累加项前前i-1次累加和次累加和第第 1 1 步,步,计算计算 0 0+1 1;第第 2 2 步,步,计算计算 (0+1)(0+1)+2 2;第第 3 3 步,步,计算计算 (0+1+2)(0+1+2)+3 3;第第 i i 步,步,计算计算 (0+1+(0+1+i-1)+i-1)+i i;.第第 100 100 步,计算步,计算 (0+1+(0+1+99)+99)+100100;递推递推算法算法例:计算例:计算s=1+2+3+s=1+2+3+100+100 求累加和求累加和1+2+3+1+2+3+100+100基本方法基本方法:
4、属于属于“累加器累加器”类型问题。类型问题。(1 1)在进入累加前先给累加器赋初值(一般为)在进入累加前先给累加器赋初值(一般为0 0););(2 2)用循环语句实现累加;)用循环语句实现累加;循环变量赋初值;循环条件;循环变量改变规律循环变量赋初值;循环条件;循环变量改变规律(3 3)循环体语句的设计。)循环体语句的设计。累加器当前值累加器当前值=累加器原值累加器原值+循环变量当前值循环变量当前值 ;递推公式递推公式在当循环中如何在当循环中如何体现的?体现的?i=100s=s+i i=i+1s=0,i=1开始开始结束结束输出输出sYNcleacleas=0s=0i=1i=1do while
5、do while i=100i=100s=s+is=s+ii=i+1i=i+1enddoenddo?1+2+3+.+100=,s?1+2+3+.+100=,sreturetu循环体循环体改变条件取改变条件取值的语句值的语句 说明:说明:循环结构循环结构;。循环是否继续取决于条件的当前循环是否继续取决于条件的当前取值,一般情况下循环体中应含有取值,一般情况下循环体中应含有,否则将造成,否则将造成死死循环。循环。循环结构能循环结构能,还能与选择结构的各种形式嵌套。还能与选择结构的各种形式嵌套。格式格式:书书145页页格式:格式:FOR FOR TO TO STEP STEP ENDFOR|NEXT
6、ENDFOR|NEXT说明:说明:当当STEPSTEP(步长)缺省时,其默认值为(步长)缺省时,其默认值为1 1。当当STEP STEP 不为不为1 1时,则循环变量的值就按照步长的值自动增加或减少时,则循环变量的值就按照步长的值自动增加或减少(步长大于(步长大于0 0,则增加,此时,循环条件为循环变量,则增加,此时,循环条件为循环变量=终值)。终值)。循环体中循环体中的命令,否则循环次数将随之改变的命令,否则循环次数将随之改变。确定循环变量并赋初值确定循环变量并赋初值(在在FORFOR中实现中实现)确定循环条件并判断?确定循环条件并判断?(在在FOR中实现中实现)执行循环体中语句序列执行循环
7、体中语句序列循环体变量按步长变化循环体变量按步长变化(在在FOR中实现中实现)执行执行ENDFORENDFOR之后的语句之后的语句例:计算例:计算s=1+2+3+s=1+2+3+100+100cleacleas=0s=0for i=1 to 100 for i=1 to 100 s=s+is=s+ienddoenddo?1+2+3+.+100=,s?1+2+3+.+100=,sreturnreturnstep 1(1)给累乘器赋初值,一般为)给累乘器赋初值,一般为1;(2)用循环语句实现累乘;)用循环语句实现累乘;循环变量赋初值;循环条件;循环变量改变规律循环变量赋初值;循环条件;循环变量改变
8、规律(3)循环体设计。)循环体设计。累乘器当前值累乘器当前值=累乘器原值累乘器原值*循环变量当前值;循环变量当前值;例:求例:求n n的阶乘的阶乘 如:如:123.100基本方法基本方法:属于属于“累乘器累乘器”类型问题。类型问题。例:求例:求n n的阶乘的阶乘输入输入n ni=1i=1,fac=1fac=1 i=n i=1 n=1 fac=fac fac=fac*n n n=n-1 n=n-1 输出输出facfac 求求n n!的!的N-SN-S图图说明说明:步长可正可负,缺省为步长可正可负,缺省为1 1。循环体中循环体中,否则循环次数将随,否则循环次数将随之改变之改变。如果循环可以通过如果
9、循环可以通过来控来控制,则本循环比条件循环更为方便。制,则本循环比条件循环更为方便。input“input“请输入终值:请输入终值:”to nto n input“input“请输入步长:请输入步长:”to kto k i=1i=1 for for i=1 i=1 to to n n step step k k do while i=do while i=n n endfor|next endfor|next i=i+i=i+k k endddo endddo常见循环算法实例常见循环算法实例思考思考1 1:求出所有的水仙花数。求出所有的水仙花数。编程方法:编程方法:“枚举法枚举法”按问题本身的
10、性质,一一列举出该问题按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重对于所列举的值,既不能遗漏也不能重复。复。将所有的三位数做一一测试将所有的三位数做一一测试思考思考2 2:求裴波那契数列求裴波那契数列1 1,1 1,2 2,3 3,5 5,8 8,.的前的前3030个项。个项。编程方法:编程方法:“递推法递推法”所谓递推法就是从初值出发,归纳出新所谓递推法就是从初值
11、出发,归纳出新值与旧值间的关系,直到求出所需值值与旧值间的关系,直到求出所需值为止。新值的求出依赖于旧值,不知为止。新值的求出依赖于旧值,不知道旧值,无法推导出新值。数学上递道旧值,无法推导出新值。数学上递推公式正是这一类问题。推公式正是这一类问题。确定变量:确定变量:F1:第一个数:第一个数 初值:初值:F1=1 F2:第二个数:第二个数 初值:初值:F2=1F3:第三个数:第三个数 F3=F1+F2F1=F2F2=F3F3=F1+F2递推递推此此F1,F2,F3非彼非彼F1,F2,F3思考思考3 3:求从键盘上输入任意求从键盘上输入任意2020个个数,输出其中最大数和最小数。数,输出其中最
12、大数和最小数。思考思考4 4:求任意两个整数的最大公求任意两个整数的最大公约数和最小公倍数。约数和最小公倍数。编程方法:辗转相除编程方法:辗转相除 412 8%abtemp 0 8 4%abtemp 4 0%abtempS1:num1,num2中大数放入中大数放入a,小数放入小数放入bS2:当当b!=0时循环时循环辗转相除,余数辗转相除,余数放入放入temp;S3:当当b=0时循环结时循环结束束,a中即为最大中即为最大公约数;公约数;S4:num1*num2/a 就是最小公倍数;就是最小公倍数;思考思考5:5:输入任意整数,逆序显示。输入任意整数,逆序显示。确定三个变量:确定三个变量:装任意数
13、:装任意数:装的末位数:装的末位数:装逆序数:装逆序数X=INT(X/10)R=X%10Y=Y*10+R变量变量更新更新思考思考6:6:输入任意输入任意ASCIIASCII字符串,逆序字符串,逆序显示。显示。确定变量:x:存任意字符串n:存x的长度m:存截取次数(1n)a:存逆序字符串a=a+RIGHT(x,1)x=LEFT(x,n-m)确定变量:x:存任意字符串n:存x的长度m:存截取次数(n1)a:存逆序字符串a=a+substr(x,m,1)accept 请输入字符串请输入字符串 to xn=len(x)a=m=1do while m=1 a=a+substr(x,m,1)m=m-1en
14、ddo?a思考思考7 7:自然数的平方和。自然数的平方和。思考思考8 8:自然数的倒数和。自然数的倒数和。思考思考9 9:输入任意输入任意ASCIIASCII字符串,找字符串,找出其中的大写字母、小写字母或数出其中的大写字母、小写字母或数字的个数。字的个数。第第4次上机次上机 准备准备 熟悉熟悉vfp环境,默认路径的设置环境,默认路径的设置 学生完成指定数值化程序学生完成指定数值化程序 实验实验12 任务任务1 实验实验12 任务任务2作业中的问题作业中的问题1 1、表达式的问题、表达式的问题 if iif i是奇数是奇数 if s1=s1+iif s1=s1+i else s2=s2+i e
15、lse s2=s2+i endif endif i=i+1 i=i+12 2、分支结构嵌套时、分支结构嵌套时if ifendifendif、forforednforednfor的匹配的匹配3 3、for for endforendfor循环中使用循环中使用i=i+1i=i+1改变循环变量改变循环变量4 4、程序中无输出语句、程序中无输出语句评讲三个数评讲三个数降序输出程降序输出程序。序。循环辅助语句循环辅助语句loop:loop:通常又称为中途复始语句。通常又称为中途复始语句。特殊的终端语句。特殊的终端语句。exitexit:通常又称为中途退出语句。:通常又称为中途退出语句。非正常退出语句。非
16、正常退出语句。流程图流程图:条件条件语句序列语句序列LOOPEXITenddoenddo的下一条命令的下一条命令NY【例【例】将将1010到到2020中第一个能被中第一个能被3 3整除的数找出来。整除的数找出来。分析:当分析:当n n的值增加到能被的值增加到能被3 3整除后则整除后则forfor循环结束,因此在程序循环结束,因此在程序中要使用到中要使用到“exit”exit”语句,使程序在语句,使程序在forfor循环条件仍然满足的循环条件仍然满足的情况下提前终止程序。情况下提前终止程序。For n=10 to 20For n=10 to 20endforendforif n%3=0if n%
17、3=0?n?n exit exitendifendif结束当前循环,跳出结束当前循环,跳出exit所在的循环结构所在的循环结构 for x=300 to 1 step-1endfor 找到满足条件的最找到满足条件的最大数,结束循环大数,结束循环从大数开始,第从大数开始,第一次找到的就一次找到的就是最大值是最大值if mod(x,17)=0?x exit endif【例】【例】求求300300以内能被以内能被1717整除的最大的数。整除的最大的数。for n=10 to 20for n=10 to 20endforendfor结束本次循环,结束本次循环,转入下一次循转入下一次循环条件的判断环条件
18、的判断【例【例】将将1010到到2020中所有中所有不能被不能被3 3整除的数找出来。整除的数找出来。if n/3=int(n/3)if n/3=int(n/3)loop loopendifendif?n?nfor x=1 to 300 if x%17!=0 loop else?x endifendfor【例】【例】求求300300以内能被以内能被1717整除的所有整数。整除的所有整数。思考思考1010:求判断一个数是否为素数。求判断一个数是否为素数。例:下列程序判断一个自然数例:下列程序判断一个自然数n n是否为素是否为素数,其方法是用数,其方法是用2 2到到X=INT(SQRT(N)之之间
19、的数逐个去除,若余数都不为间的数逐个去除,若余数都不为0 0,则,则n n为素数,否则不是素数为素数,否则不是素数,请填空完成。请填空完成。00i=i+1i=i+1str(nstr(n)INPUT 请输入一个大于请输入一个大于1的自然数的自然数:TO NY=1&Y=1表示所输入的自然数是素数表示所输入的自然数是素数,为为0表示不是素数表示不是素数X=INT(SQRT(N)I=2DO WHILE I100if i100endifendifif i%2=0if i%2=0 loop loopelseelses=s+is=s+iendifendif?100?100以内的奇数和为:以内的奇数和为:,s
20、,scancelcancel永真永真循环循环还有哪些等价的表达式?mod(i,2)=0或int(i/2)=i/2store 0 to x,sstore 0 to x,sx=x+1x=x+1s=5s=5*x xif s20if s20elseelse?s?sendifendif return return例:写出程序例:写出程序的结果的结果绝对循环绝对循环判断退出判断退出s=0s=0s=s+1s=s+1if s/8=int(s/8)if s/8=int(s/8)?s?selseelselooploopendifendifreturnreturn例:写出程例:写出程序的结果序的结果多重循环多重循环
21、 若在一个循环结构的循环体中又包含了若在一个循环结构的循环体中又包含了循环,则该循环结构称为循环嵌套。在一循环,则该循环结构称为循环嵌套。在一个循环结构中按照嵌套层次的多少,可分个循环结构中按照嵌套层次的多少,可分为双重循环、三重循环等。嵌套层次在为双重循环、三重循环等。嵌套层次在2 2层层以上一般称为多重循环结构。以上一般称为多重循环结构。真真真真外循环初始条件外循环初始条件内循环初始条件内循环初始条件内循环体内循环体外循环条件外循环条件假假内循环条件内循环条件假假改变内循环循改变内循环循环条件环条件改变外循环改变外循环循环条件循环条件外循环结束外循环结束二重二重循环循环嵌套嵌套结构结构执行
22、执行流程流程 内循环结束内循环结束例例:输出如下星形图案。输出如下星形图案。*for i=1 to 6&for i=1 to 6&用于控制行用于控制行 for j=1 to 10&for j=1 to 10&用于控制每行的字符个用于控制每行的字符个数数?”?”*”&”&每行输出的字符每行输出的字符 endforendfor?&?&每行输出完后要换行每行输出完后要换行 endforendfor例例 输出如下星形图案。输出如下星形图案。*for for i i=1 to 6 =1 to 6&用于控制行用于控制行 for j=1 to i&for j=1 to i&用于控制每行的字符个数用于控制每行
23、的字符个数?“?“*”&”&每行输出的字符每行输出的字符 endforendfor?&?&每行输出完后要换行每行输出完后要换行 endforendforfor j=1 to for j=1 to i i&用于控制每行的字符个数用于控制每行的字符个数?“?“*”&不换行不换行输出每行的字符输出每行的字符 endforendfor?&每行输出完后要每行输出完后要换行换行行号与列号相关行号与列号相关例例:输出图形输出图形:*编程分析编程分析:采用双重循环,一行一行输出。采用双重循环,一行一行输出。每一行输出步骤:一般每一行输出步骤:一般3步。步。1)光标定位)光标定位2)不换行输出星号)不换行输出星
24、号?。例如本题:共例如本题:共4行行,若行若行号用号用k表示,则每一行有表示,则每一行有2*k-1个个*号。号。3)每输完一行光标换行)每输完一行光标换行?for i=1 to 6&for i=1 to 6&用于控制行用于控制行 for k=6 to i step-1for k=6 to i step-1?“”?“”endfor endfor for j=1 to 2 for j=1 to 2*i-1i-1&用于控制每行的字符个数用于控制每行的字符个数?“?“*”&”&每行输出的字符每行输出的字符 endforendfor?&?&每行输出完后要换行每行输出完后要换行 endforendfor&
25、每行定位相当每行定位相当?space(6-i)*例:编写输出乘法口诀表的程序,要求口诀例:编写输出乘法口诀表的程序,要求口诀表呈三角形格式输出。表呈三角形格式输出。1 1*1=11=12 2*1=2 21=2 2*2=42=43 3*1=3 31=3 3*2=6 32=6 3*3=93=94 4*1=4 41=4 4*2=8 42=8 4*3=12 43=12 4*4=164=165 5*1=5 51=5 5*2=10 52=10 5*3=15 53=15 5*4=20 54=20 5*5=255=25.9 9*1=9 91=9 9*2=18 92=18 9*3=27 93=27 9*4=36
展开阅读全文