书签 分享 收藏 举报 版权申诉 / 136
上传文档赚钱

类型VFP第4、5部分(循环结构+表单)zxl课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4569530
  • 上传时间:2022-12-20
  • 格式:PPT
  • 页数:136
  • 大小:1.95MB
  • 【下载声明】
    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

    26、 94=36 9*5=45 5=45 9 9*9=819=81clearclearfor x=1 to 9 for x=1 to 9&控制行控制行 for y=1 to x for y=1 to x&控制列控制列s=xs=x*y y?allt(str(x)+?allt(str(x)+*+allt(str(y)+=+allt(str(s+allt(str(y)+=+allt(str(s)+)+endforendfor?endforendforreturnreturn什么意思,可以省略吗?例例:利用双重循环编程求利用双重循环编程求sum=1+(1+2)+sum=1+(1+2)+(1+2+3)+(1

    27、+2+3)+(1+2+3+(1+2+3+10)+10)之值。之值。11+21+2+31+2+3+41+2+3+4+5+6+7+8+9+10所有累加所有累加项可以看项可以看成右图成右图sumsum累加累加i i行行t i=10t i=10每一行每一行t t累加累加j j列列 j=110j=110sum=sum+tsum=sum+tt=t+jt=t+j方法一:方法一:clearclearsum=0sum=0for i=1 to 10for i=1 to 10t=0t=0for j=1 to ifor j=1 to it=t+jt=t+jendforendforsum=sum+tsum=sum+te

    28、ndforendfor?1+1+(1+21+2)+(1+2+31+2+3)+(1+2+3+1+2+3+10+10)=,sum=,sumreturnreturn累加方法二:方法二:clearclearsum=0sum=0t=0t=0for i=1 to 10for i=1 to 10 t=t+i t=t+i sum=sum+t sum=sum+tendforendfor?sum=,sum?sum=,sumreturnreturn思考思考1111:求求3 3200200之间的素数。之间的素数。思考思考1212:用三重循环求出所有水仙用三重循环求出所有水仙花数。花数。思考思考1313:读程序写结果及

    29、程序填空读程序写结果及程序填空练习。练习。set talk offinput 请输入层数请输入层数 to nfor i=n to 1 step-1?space(n-i)for j=1 to 2*i-1?*next next set talk on例:写出程序例:写出程序的结果的结果set talk offcleardime a(4)b=9a=for i=1 to 4 for j=1 to i a(i)=a(i)+b endfor endfor for i=1 to 4?str(len(a(i),1)+space(5-i)+a(i)endfor 例:写出程序例:写出程序的结果的结果1 92 99

    30、3 9994 9999(0801)(0801)以下程序的功能是统计以下程序的功能是统计100100以内能被以内能被8 8整整除的整数的个数。除的整数的个数。SET TALK OFFSET TALK OFFX=0X=0N=0N=0DO WHILE X=100DO WHILE X=100 AND N=100 AND N1000IF _IF _(1)_(1)_?N?N ENDIF ENDIF_(2)_(2)_ ENDDO ENDDO RETURN RETURN(0702)(0702)、有一程序如下,请写出运行结、有一程序如下,请写出运行结果:果:SET TALK OFFSET TALK OFFCLE

    31、AR CLEAR I=1I=1DO WHILE I=50DO WHILE I=50 IF I/7=INT(I/7)IF I/7=INT(I/7)?STR(I,4)?STR(I,4)ENDIF ENDIF I=I+2 I=I+2ENDDOENDDORETURNRETURN7 21 35 49(09010901).有如下程序,请写出运行结果:有如下程序,请写出运行结果:CLEACLEAM=1M=1N=1N=1DO WHILE M10DO WHILE M10 M=M+1 M=M+1 IF INT(M/3)M/3 IF INT(M/3)M/3 N=N+M N=N+M ENDIF ENDIFENDDOE

    32、NDDO?N=,N?N=,NRETURNRETURNN=37(0701)以下程序的运行结果是什么?)以下程序的运行结果是什么?clearsum1=0cc=for i=1 to 5 t=0 for j=1 to i t=t+j cc=cc+str(j,1)+endfor if i=5 cc=cc+=endif sum1=sum1+tendfor?cc,sum11+1+2+1+2+3+1+2+3+4+1+2+3+4+5+=35(08020802).有一程序如下,请写出运行结果。有一程序如下,请写出运行结果。CLEARCLEARDIMENSION A(3,3)DIMENSION A(3,3)FOR

    33、I=1 TO 3FOR I=1 TO 3FOR J=1 TO 3FOR J=1 TO 3IF IJIF IJA(I,J)=0A(I,J)=0ELSEELSEA(I,J)=9A(I,J)=9ENDIFENDIF?A(I,J)?A(I,J)ENDFORENDFOR?ENDFORENDFORCANCELCANCEL9 0 00 9 00 0 9下面程序运行时输入下面程序运行时输入5 5,请写出程序执行结果。,请写出程序执行结果。SET TALK OFFSET TALK OFFClearClearINPUT INPUT 请输入层数请输入层数 TO N TO NFOR K=1 TO NFOR K=1 T

    34、O N?SPACE(N-K)?SPACE(N-K)FOR J=1 TO K FOR J=1 TO K?*ENDFOR ENDFOR?ENDFORENDFOR(09010901)读如下程序,写出运行结果:)读如下程序,写出运行结果:CLEARCLEAR DIME W1(5)DIME W1(5)X=A X=A W1=W1=FOR I=5 TO 1 step-1 FOR I=5 TO 1 step-1 FOR J=1 TO I FOR J=1 TO I W1(I)=W1(I)+XW1(I)=W1(I)+X ENDFOR ENDFOR X=CHR(ASC(X)+1)X=CHR(ASC(X)+1)?6-

    35、I,W1(I)?6-I,W1(I)ENDFOR ENDFOR1 AAAAA2 BBBB3 CCC4 DD5 E(0701)(0701)、编写一个循环结构程序计算的阶乘。、编写一个循环结构程序计算的阶乘。(0702)(0702)、编写一个循环结构程序计算、编写一个循环结构程序计算100100以内的以内的奇数和奇数和(08010801)、编写一个程序计算:)、编写一个程序计算:S=1+2+3+S=1+2+3+N+N,N N值由用户确定。值由用户确定。第第4次上机次上机 准备准备 熟悉熟悉vfp环境,默认路径的设置环境,默认路径的设置 学生完成指定数值化程序学生完成指定数值化程序 实验实验13 任务

    36、任务1 实验实验13 任务任务2 理论作业:理论作业:P158-167自主练习自主练习1-4作业中的问题作业中的问题1 1、输入、输入1010个数,降序输出个数,降序输出2 2、s=1-1/2+1/3-1/4+1/5-s=1-1/2+1/3-1/4+1/5-1/100-1/1003 3、20082008级级VFPVFP理论作业理论作业-2-2、输出斐波那契数列前、输出斐波那契数列前2020项项算法分析算法分析:输入输入5 5个数,用个数,用“冒泡法冒泡法”对这对这5 5个数由小到大排序。个数由小到大排序。第第1轮比较轮比较7-9-9-9-9 7 7 7713 13 666 6 131320 2

    37、0 20 20第第1次次 第第2次次 第第3次次 第第4次次结果结果-913620冒泡法的意思:将两个相邻的数进行比较,小的排在前面。冒泡法的意思:将两个相邻的数进行比较,小的排在前面。在第一轮比较的时候,可以将在第一轮比较的时候,可以将5 5个数中最大的数排列到最后;个数中最大的数排列到最后;7-913620第第2轮比较轮比较-9-9-9-9 7 6 66 7 713 13 13第第1次次 第第2次次 第第3次次 结果结果7613第二轮进行比较的时候,最大的数就不再参与比较,将剩下的第二轮进行比较的时候,最大的数就不再参与比较,将剩下的4 4个个数进行比较,又可以将这数进行比较,又可以将这4

    38、 4个数中的最大的数排列在后面;个数中的最大的数排列在后面;第第3轮比较轮比较-9-9-9 6 6 7 7 第第1次次 第第2次次 结果结果 67第第4轮比较轮比较-9-9 6第第1次次 结果结果6依次类推,依次类推,5 5个数则一共要比较个数则一共要比较4 4轮,每一轮的比较都可以将轮,每一轮的比较都可以将这一轮比较的最大数排到后这一轮比较的最大数排到后面。第一轮要比较面。第一轮要比较4 4次,第二次,第二轮比较轮比较3 3次,到第四轮的时候,次,到第四轮的时候,只剩下两个数,只需要比较只剩下两个数,只需要比较一次就可以了。一次就可以了。对于对于n n个数进行排序的话,一共要个数进行排序的话

    39、,一共要比较比较n-1n-1轮,第轮,第m m轮则要比较轮则要比较n-mn-m次。按照这种思路,我们就可次。按照这种思路,我们就可以使用两重循环来实现数的排以使用两重循环来实现数的排序了。一重循环实现排序的轮序了。一重循环实现排序的轮次,一重循环实现该轮要比较次,一重循环实现该轮要比较的次数。在两个数进行比较时,的次数。在两个数进行比较时,如果要进行数值交换,则用一如果要进行数值交换,则用一个中间变量进行两个数数值的个中间变量进行两个数数值的交换。交换。例、例、排序将任意十个数按由小到大的顺序输出排序将任意十个数按由小到大的顺序输出 dime a(10)for i=1 to 10 input

    40、请输入数据:请输入数据:to a(i)nextfor n=1 to 9&循环的轮数循环的轮数 for m=1 to 10-n&当前轮循环的次数,将大数当前轮循环的次数,将大数 if a(m)a(m+1)放放a(m+1),即即大数逐渐后移大数逐渐后移 t=a(m)a(m)=a(m+1)a(m+1)=t endif nextnextfor i=1 to 10?a(i)next【例】从键盘随意输入的【例】从键盘随意输入的1010个数,按从小到大的顺序排列后输出。个数,按从小到大的顺序排列后输出。dime x(10)for i=1 to 10 input 请输入第请输入第+str(i,2)+个数个数

    41、to x(i)nextfor i=1 to 9&循环的轮数循环的轮数 for j=i+1 to 10&将将x(i+1)及以后元素与及以后元素与x(i)比较比较 if x(i)x(j)&将最小数放将最小数放x(i),即,即小数逐渐前移小数逐渐前移 t=x(i)x(i)=x(j)x(j)=t endif nextnextfor i=1 to 9?x(i)nextreturn第五讲第五讲 表单设计表单设计通过表单设计引入面向对象程序设计基本方法通过表单设计引入面向对象程序设计基本方法 表单的介绍表单的介绍 用表单的方式完成程序设计用表单的方式完成程序设计结构化程序设计与表单设计的比较结构化程序设计与

    42、表单设计的比较 实例解析实例解析内容提要内容提要表单的介绍表单的介绍“文件文件”“新建新建”“表单表单”单击单击打开或关闭打开或关闭标签标签(label)文本框文本框(text)命令按钮命令按钮(command)右键单击表单中的对象,右键单击表单中的对象,选择选择“属性属性”表单是表单是VFPVFP应用程序的基本用户界面应用程序的基本用户界面之一,它也被称之为屏幕、窗口。表单之一,它也被称之为屏幕、窗口。表单本身是一个容器,可以容纳多个控件,本身是一个容器,可以容纳多个控件,设计完美的表单可给使用者提供简洁、设计完美的表单可给使用者提供简洁、友好的程序操作界面。友好的程序操作界面。建立表单建立

    43、表单“文件文件”“新建新建”“表单表单”CREATE FORM 表单建立完成后产生表单建立完成后产生 .SCX.SCX、.SCT.SCT文件文件生成器锁定生成器锁定对象选定对象选定按钮选定:设定连续建立某一控件按钮选定:设定连续建立某一控件表单控件工具栏,直接添加控件。表单控件工具栏,直接添加控件。查看类查看类输入类控件输入类控件文本框文本框TextBox编辑框编辑框EditBox组合框组合框ComboBox列表框列表框ListBox微调控件微调控件Spinner输出类控件输出类控件标签标签Label 表格表格Grid列表框列表框ListBox组合框组合框ComboBox文本框文本框TextB

    44、ox图像图像Image线条线条Line形状形状Shape计时器计时器Timer选择类控件选择类控件选择按钮组选择按钮组OptionGroup 复选框复选框CheckBox组合框组合框ComboBox列表框列表框ListBox 控制类控件命令按钮命令按钮CommandButton:命令按钮组命令按钮组CommandGroup:计时器计时器Timer:容器类控件表格表格Grid:页框页框PageFrame:容器容器Container:连接类控件ActiveX控件控件OleControl:ActiveX 绑定控件绑定控件OleBoundControl:超级链接:超级链接:表单设计器工具栏表单设计器工

    45、具栏 TAB键次序键次序数据环境数据环境属性窗口属性窗口代码窗口代码窗口表单控件表单控件调色板调色板布局工具栏布局工具栏表单生成器表单生成器自动格式自动格式运行表单运行表单1菜单方式菜单方式 打开表单打开表单单击鼠标右键单击鼠标右键“执行表单执行表单”“程序程序”“运行运行”选定表单文件(选定表单文件(.SCX)“运行运行”2命令方式命令方式 DO FORM 3快捷钮快捷钮 点击点击 运行当前表单。运行当前表单。4由由“项目管理器项目管理器”运行表单。运行表单。运行表单时可点击运行表单时可点击“修改表单修改表单”快捷按钮快捷按钮 返回到表返回到表单设计模式单设计模式 用表单方式完成程序设计用表

    46、单方式完成程序设计面向对象的程序在执行时,先等待某个事件的面向对象的程序在执行时,先等待某个事件的发生,然后再去执行处理此事件的事件过程发生,然后再去执行处理此事件的事件过程(即程序代码即程序代码)。事件过程要经过事件的触发才。事件过程要经过事件的触发才会被执行,这种动作模式就称为会被执行,这种动作模式就称为,也,也就是说,就是说,执行步骤如下:执行步骤如下:等待事件的发生。等待事件的发生。事件发生时,执行其对应的事件过程。事件发生时,执行其对应的事件过程。重复步骤重复步骤。由此周而复始地执行,直到程序结束。由此周而复始地执行,直到程序结束。是:是:例:已知圆半径,求圆面积。例:已知圆半径,求

    47、圆面积。r=val(thisform.text1.value)&获得半径值thisform.label3.caption=alltrim(str(pi()*r*r)&显示计算结果,保留整数部分r=val(thisform.text1.value)&获得半径值S=pi()*r*r&计算圆面积thisform.label3.caption=alltrim(str(s)&保留整数部分如何连续计算如何连续计算多个圆面多个圆面积?积?标签用于在表单中显示某些固定不变的文本信标签用于在表单中显示某些固定不变的文本信息。息。如要改变它的一些属性,可以通过相关对象的事如要改变它的一些属性,可以通过相关对象的事

    48、件代码来实现。一个标签最多可容纳件代码来实现。一个标签最多可容纳256256字符。字符。属性属性说明说明属性属性说明说明CaptionCaption标签显示的文本内容。字符型。标签显示的文本内容。字符型。BackStyleBackStyle确定标签是否透明。默认不确定标签是否透明。默认不透明。透明。AutoSizeAutoSize确定是否根据标题的长度来调确定是否根据标题的长度来调整显示宽度。默认不能自整显示宽度。默认不能自动调整显示宽度。动调整显示宽度。WordWrapWordWrap确定标签上显示的文本能否确定标签上显示的文本能否换行。默认不能。换行。默认不能。FontNameFontNa

    49、me设置标签中文本的字体名设置标签中文本的字体名FontSizeFontSize设置标签中文本的字体大小设置标签中文本的字体大小ForeColorForeColor设置标签中文本的前景色设置标签中文本的前景色BackColorBackColor设置标签中文本的背景色设置标签中文本的背景色标标 签签(label)(label)例:输入一个数,判断奇偶性。例:输入一个数,判断奇偶性。x=thisform.text1.valueif mod(x,2)=0&判断奇偶性的条件thisform.label2.caption=该数为偶数elsethisform.label2.caption=该数为奇数end

    50、if 文本框(Text)是最常用的基本控件,它允许用户它允许用户显示和编辑一个变量或者一个字段的值,显示和编辑一个变量或者一个字段的值,是表单上最是表单上最灵活、最重要的数据交互操作控件。灵活、最重要的数据交互操作控件。文本框的值默认存储在文本框的值默认存储在ValueValue属性中属性中。文本框默认为字符类型,用右键单击文本框,出现一快捷菜单,选择【生成器】命令,可以打开【文本框生成器】对话框,在该对话框中可以设置文本框采用的数据类型和格式、文本框的样式,还可以设置与文本框相关联的字段。文本框(文本框(texttext)常用的文本框属性见下表常用的文本框属性见下表属性属性说明说明Contr

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:VFP第4、5部分(循环结构+表单)zxl课件.ppt
    链接地址:https://www.163wenku.com/p-4569530.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库