vfp3过程程序设计.ppt_第1页
vfp3过程程序设计.ppt_第2页
vfp3过程程序设计.ppt_第3页
vfp3过程程序设计.ppt_第4页
vfp3过程程序设计.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

过程(结构化)程序设计基础,结构化程序文件的建立、编辑、修改与执行,1.建立程序 MODIFY COMMAND 程序名(文件名) 2.执行程序 DO 程序名(文件名) 3.修改/查看程序: MODIFY COMMAND 程序名(文件名),1)程序结束命令,RETURN TO MASTER,格式:,结构化程序辅助命令,2)清屏命令,格式:,CLEAR,3) 注释命令 程序中可以插入注释,以提高程序的可读性。,NOTE|* 注释部分 & 注释部分,格式:,行首注释,单命令的行尾注释,程序的基本结构 程序=输入+算法+输出,基本的输入/输出命令 1)INPUT命令 格式:INPUT TO 功能:在屏幕上显示,并等待用户通过键盘输入表达式,再把表达式的值赋给指定的。,2)ACCEPT命令 格式: ACCEPT TO 功能:该命令和INPUT类似,不同的是它会把输入内容作为字符串常量赋值给指定的。,3)基本输出命令?|? 格式:?|?, 功能:计算给定的一个或多个表达式的值,并将结果显示在屏幕上。 说明:“?”表示在当前光标的下一行输出,而“?”表示在当前光标位置处输出。,VFP程序的三种基本结构,1 顺序结构,顺序结构始终按照程序中语句的先后顺序逐条执行。,输入圆的半径,计算周长、面积,并显示结果 Set talk off Clear Input “半径:” to r L=2*r*pi() S=r2*pi() ? “圆的周长:”,L ? “圆的面积:”,S return,顺序结构:是一种最基本、最简单的程序结构。如下图所示,先执行A,再执行B,A与B按照顺序执行。,2 选择结构,应用程序在进行数据处理时需要根据不同的条件选择执行不同的操作,使程序的流程根据不同条件来决定程序的走向,这种程序结构称为选择结构。在VFP中是用IFELSEENDIF和DO CASEENDCASE来实现的。,选择(或分支)结构:根据条件是否成立而执行不同的程序模块。,1)IF语句 格式: IF ELSE ENDIF 功能:执行该语句时,若条件表达式的值为.T.,则执行,否则执行,然后再执行ENDIF之后的语句.,EXM1:判断某一年是否是闰年。,假如年份用y表示,判断y是否是闰年的方法是:若y能够被400整除或y能够被4整除并且不能够被100整除,y/4=int(y/4) and y/100int(y/100) or y/400=int(y/400),提示:判断一个整数M能否被另一个整数N整除,一般采用三种方法,判断: MOD(M,N)是否等于0 INT(M/N) 是否等于M/N M%N=0 若等于,则表明M能被N整除。,CLEAR INPUT “请输入年份:“ to y IF y/4=int(y/4) and y/100int(y/100) or y/400=int(y/400) ?str(y,4)+“年是闰年“ ELSE ?str(y,4)+“年不是闰年“ ENDIF RETURN,结构化方法,程序设计及运行,编程: 1、输入一个数,判断是否为偶数,并显示结果。 2、从键盘输入三个数a,b,c,按从大到小的顺序重新排列,使a最大,c最小。,从键盘输入三个数a,b,c,按从大到小的顺序重新排列,使a最大,c最小。(参考程序) SET TALK OFF INPUT “输入第一个数” TO A INPUT “输入第二个数” TO B INPUT “输入第三个数” TO C IF AB T=A A=B B=T ENDIF IF AC T=A A=C C=T ENDIF IF BC T=B B=C C=T ENDIF ?A,B,C RETUTN,2)多路分支语句 格式: DO CASE CASE CASE OTHERWISE ENDCASE,EXM 5:输入月份值,显示对应季节的中文名字(3,4,5月为春季,6,7,8月为夏季,9,10,11月为秋季;12,1,2月为冬季)。 (参考教材P56例3-6),Set talk off Input “输入月份:” to yf do case case yf=3 or yf=4 or yf=5 jj=“春季“ case yf=6 or yf=7 or yf=8 jj=“夏季“ case yf=9 or yf=10 or yf=11 jj=“秋季“ case yf=12 or yf=1 or yf=2 jj=“冬季“ otherwise jj=“输入错误” Endcase ?jj return,【例】计算分段函数的值,循环结构能够使某些语句或程序段重复执行若干次。,3循环结构,常见的循环结构有:,条件循环,步长循环,扫描循环,涉及数据表的循环,第6章介绍,1、条件循环结构 命令的基本格式 DO WHILE 条件 ENDDO 功能:可以使程序在DO WHILE 条件ENDDO之间反复执行,循环的控制方式 DO WHILE 条件 LOOP EXIT ENDDO,通过条件来控制循环的执行,通过循环控制命令控制循环的执行,循环通常有限定次数的循环和不限定次数的循环两种情况。 (1)、不限定次数的循环 设计思想:循环是否结束由用户控制,方法是:由用户输入特殊信息,然后程序判断是否退出循环。 格式:,循环的三种使用方法,DO WHILE .T. ACCEPT “是否继续?(Y/N)” TO S IF UPPER(S)=“N” EXIT ENDIF ENDDO,S=“Y” DO WHILE UPPER(S)=“Y” ACCEPT “是否继续?(Y/N)” TO S ENDDO,(2)、限定次数的循环 设计思想:循环的次数是固定的。方法是:设置一个计数器,计算循环的次数,当达到固定次数时,程序自动退出循环。 格式1:N=初值 DO WHILE N =终值 N=N+步长 ENDDO,循环变量,FOR N=初值 TO 终值 STEP 步长 ENDFORNEXT,2、步长循环(计数循环) 格式:,循环变量,教材P62,求所有的水仙花数。(所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。,循环中的几个重要表达式,1、计数表达式,i=1 n=0 Do while i=10 N=n+1 i=i+1 Enddo,N=0 For i=1 to 10 N=n+1 endfor,程序举例:从键盘上任意输入ASCII字符串,统计大写字母的个数。,计数变量,2、累计表达式,S=0 N=1 Do while n=100 S=s+n N=n+1 Enddo,S=0 For n=1 to 100 S=s+n endfor,程序举例: EXM7:计算s=1+2+3+n。 EXM8 :求100以内的奇数和。,累计变量,例:1到n的奇数和、偶数和 100以内能够被X整除的数之和。,请同学们自己写出程序,3、阶乘表达式,S=1 N=1 Do while n=10 S=s*n N=n+1 Enddo,S=1 For n=1 to 10 S=s*n endfor,阶乘变量,4、字符串程序设计 Accept “输入字符串:” to f For i=1 to len(f) X=substr(f,i,1) endfor,依次取出每一个字符,程序举例:从键盘上任意输入ASCII字符串,编程实现逆序输出。 SET TALK OFF ACCEPT “输入字符串:” TO F Y=“” FOR N=LEN(F) TO 1 STEP -1 X=SUBSTR(F,N,1) Y=Y+X ENDFOR ?Y RETURN,EXM12:输入一串ASCII字符,显示数字字符串。假设输入:Av56:YijB8 显示:568。,请同学们自己写出程序,从左到右逐个取出字符x,判断x是数字的条件:,Asc(x)asc(0) and Asc(x)asc(9),例:输入一串ASCII字符,显示大写字母串。假设输入:Av56:YijB8 显示: AYB 。 输入一串ASCII字符,显示小写字母串。假设输入: Av56:YijB8 显示:vij 。,请同学们自己写出程序,循环辅助语句,loop: 通常又称为中途复始语句或短路语句。 exit:通常又称为中途退出语句或循环终止语句。 注意:适用于3种循环.并且只能用于循环结构语句。,流程图:,条件,语句序列 LOOP EXIT,enddo的下一条命令,N,Y,EXMX1: 将100到150中第一个能被3整除的数找出来。,For n=100 to 150 if n%3=0 ?n exit endif endfor,程序设计及运行,EXMX2:将10到20中所有不能被3整除的数找出来。,for n=10 to 20 if n/3=int(n/3) loop endif ?n endfor,程序设计及运行,程序设计及运行,方法1:不使用辅助语句,方法2:使用辅助语句,x=.t. s=0 do whil x s=s+1 if s/8=int(s/8) ?s else loop endi if s30 x=.f. endi endd retu,结果为,EXMX3:写出程序的结果,例:输入一个数,判断是否为质数(素数)。 Set talk off Input “输入一个正整数” to x For i=2 to x-1 If x/i=int(x/i) Exit Endif Endfor If ix-1 ?”该数是质数” Else ?”该数不是质数” Endif return,例:输入一个数,判断是否为质数(素数)。 Set talk off Input “输入一个正整数” to x M=.t. For i=2 to x-1 If x/i=int(x/i) M=.f. Exit Endif Endfor If m=.t. ?”该数是质数” Else ?”该数不是质数” Endif Return,多重循环(了解执行过程),EXMX5:编程打印如下图形。 * * * * *,clear for i=1 to 5 &控制行 for j=1 to 2*i-1 &控制列 ?* endfor ? endfor return,程序设计及运行,for i=1 to 6 & 用于控制行 ?space(6-i) for j=1 to 2*i-1 ?“*” endfor endfor,* * * * * *,EXMX6:编程打印图形。,外循环控制行 内循环控制列,数组在程序中的应用,数组变量 数组是一组有序内存变量的集合。,【例】利用数组完成多个数的赋值并输出。 (演示),教材P70,定义后,它的初始值是 ,在使用数组时,一定要注意数组的初始化,还要注意数组下标的起始值是 。,1,逻辑值.F.,数组在使用前必须要通过DIMENSION或DECLARE定义。,命令格式 例如: dime|decl a(2),b(2,2),二维数组,一维数组,注:在定义数组时,数组名不能与同一环境下的简单变量同名。,数组元素的赋值及输出与简单内存变量相同。 同一个数组元素在不同时刻可以存放不同类型的数据。 在同一个数组中,每个元素的值可以是不同的数据类型。,数组下标应使用圆括号,二维数组的下标之间使用逗号隔开。 数组的下标可以是常量、变量和表达式。,数组的使用(上机体会),每个数组元素可通过数组名及相应的下标来访问,在赋值语句中也可使用数组名将同一个值赋给数组的所有元素。 可用一维数组的形式访问二维数组。,EXMX7:定义数组、赋值并输出。 DIMENSION A(2), B(2,2),C(2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论