第五章程序设计基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第五章程序设计基础§5、1程序设计概述一、程序的概念程序:完成一定任务的一组命令的有序集合。程序设计:计算机用户将解决某一实际问题所用的命令按一定的逻辑顺序编制成程序,并以文件的形式存放于磁盘的过程。优点:(1)可以利用编辑器,方便的输入、修改、保存文件。(2)可用多种方式,多次运行程序。(3)可在一个程序中调用另一个程序。VisualFoxPro的工作方式{{程序文件方式交互式方式单命令方式菜单方式菜单方式、命令方式、程序方式、工具方式1.单命令方式单命令方式:输入一条命令,完成一个操作的工作方式。注:(1)VFP单命令方式:利用Command窗口来实现的。(2)Command窗口不仅是VFP命令的执行窗口,也是VFP命令文件的编辑窗口。2.菜单方式通过打开不同的菜单选择并完成不同的操作。3.程序文件方式程序文件(简称程序)也叫做命令文件。命令方式:通过程序文件中的命令完成不同的操作。二、程序文件的建立、执行与编辑说明:程序由命令语句、函数、过程等程序代码组成;通过调用系统内置的文本编辑器进行建立和修改;程序文件的扩展名为.prg1、建立程序文件A、菜单方式B、项目管理器中创建C、命令方式格式:MODIFYCOMMAND[文件名]|?2、保存程序3、编辑、修改程序文件格式:MODIFYCOMMAND程序名|?4、运行程序格式:DO程序名[WITH实参表]5、使用VFP设计工具编写代码三、程序文件的注释命令与程序结束命令1、注释命令格式:NOTE|*|&&[注释内容]注释行:以*、NOTE开头的命令行(独成一行)且只能出现在一行的开始命令行后的注释:&&(在其他命令行之后)2、程序结束命令格式:CANCEL说明:执行CANCEL将释放所有私有内存变量程序中的常用命令程序开头常用命令:CLEARSETTALKOFF程序末尾常用命令:RETURNCANCELSETTALKONQUIT输入输出命令(1)标题部:通常由注释语句组成,说明程序的名称,功能,作者等。(2)初始化部:通常由各种SET命令及CLEAR命令等组成,用于设定程序运行时的初始环境。(3)程序主体:为完成特定任务所需的命令的有序集合。(4)结束返回部:由关闭文件命令,恢复程序运行前的环境的SET命令及RETURN,QUIT等返回语句组成。程序的几个部分(1)、首先遵守命令的基本书写规则;(2)、命令分行书写,一行只能写一条命令,若命令较长需分行书写,要在一行结束时输入‘;’程序中每条命令都以回车键结尾;(3)、擅长使用注释语句,提高程序的可读性。程序书写规则§5、2基本输入输出命令一、交互式输入命令交互式输入:根据屏幕的提示,通过键盘等输入设备输入数据。1、INPUT命令格式:INPUT[字符型表达式]TO内存变量说明:(1)以表达式的值作为提示信息(2)[提示信息]可以是含有变量的字符型表达式(3)内存变量可接受任何类型的表达式的值(4)不能不输入任何内容按回车键(5)输入字符串时,必须加定界符L常量要加圆点定界符T型常量要用大括号2、ACCEPT命令格式:ACCEPT[字符型表达式]TO内存变量功能:等待用户从键盘输入字符串说明:(1)在输入字符串时不需要加定界符,(2)可以不输入任何内容直接按回车键。3、WAIT命令格式:WAIT[字符型表达式][TO内存变量][WINDOW[AT行,列]][NOWAIT][CLEAR|NOCLEAR][TIMEOUT数值表达式]说明:该命令只接收字符型数据说明:(1)若字符串表达式为空,不会显示任何提示信息;若没有指定字符串表达式,则默认为‘按任意键继续…’(2)若用户按的是Enter键或单击了鼠标,内存变量中保存空串;若没有TO内存变量项,输入的单字符不保留。(3)WAIT提示窗口(默认在主窗口的右上角)(4)同时选用NOWAIT短语和WINDOWS子句,系统不等待用户按键,直接往下执行4、INKEY函数格式:INKEY([数值表达式][,功能字符])功能:等待用户输入内容,等待时间由数值表达式确定(单位为秒),返回由按键而产生的一个整数值。说明:(1)INKEY函数只能返回用户按键的ASCII码值,还能接受键盘上各种不可打印的控制键、功能键等。(2)关于等待时间:超过预定的等待时间用户仍未按键,则返回0;数值表达式为0,则无限期等待,直到用户按键为止;格式中缺少可选项,则不等待,直接返回0。(3)功能字符:S、H、M控制光标的显示或隐藏,检查鼠标器按钮的状态。二、一般输出命令1、文本行输出命令格式:\|\\文本行功能:将文本行信息的内容按原样显示出来。说明:?/??表达式2、文本输出命令格式:TEXT文本信息ENDTEXT说明:该命令只能在程序设计中用,不能在命名窗口中用;屏幕画面;文本信息中允许出现变量、函数、表达式,本命令能识别他们不显示其值,但需事先设定状态SETTEXTMERGEON,并用和将其括起来,以区别其他一般的文本信息。三、格式化输入输出命令格式:@行,列SAY字符表达式如:@6,8SAY“请输入查询条件:”格式:@行,列[SAY提示信息]GET变量[DEFAULT表达式]说明:变量必须事先赋初值(类型、长度);GET变量必须要READ命令激活;READ命令的格式:READ[SAVE]例:SETTALKOFFUSERCDAACCEPT“请输入编号:”TOBHLOCATEFOR编号=BH?“工资:”+STR(工资)INPUT“请输入工资:”TOGZLOCATEFOR工资=GZ??‘姓名:’+姓名@4,10SAY“工资为1000的人的编号为:”@4,25SAYBHUSESETTALKONRETURN§5、3程序设计的控制结构程序结构:程序中命令或语句执行的流程结构。VisualFoxPro系统的程序有两个特点:一是程序控制流模式,由顺序、分支(选择)、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序控制流组成。常见的控制结构如下:1.顺序结构顺序结构:在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。2.分支结构:在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。3.循环结构循环结构:能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。4.(可读性、模块化)过程:具有独立功能而且可以被其它程序调用的程序序列在许多应用程序中,有一些程序段需要反复执行多次,这些程序段不在一个固定的位置上,而是分散在程序的许多位置上重复执行,可将其与嵌入它的程序分开,形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。一、顺序结构例:程序A1.PRGSETTALKOFFZ=0INPUT“输入X的值:”TOXINPUT“输入Y的值:”TOYZ=X+Y?‘Z=’,ZSETTALKONRETURN二、选择结构支持选择结构的语句:条件语句、分支语句1、条件语句(单分支、双分支)格式:IF条件语句序列1[ELSE语句序列2]ENDIF真条件语句序列1ENDIF后面语句假条件语句序列2ENDIF后面语句假真语句序列1有ELSE的选择语句无ELSE的选择语句例:A2.PRGSETTALKOFFZ=0INPUT“输入X的值:”TOXINPUT“输入Y的值:”TOYIFXYZ=X+YENDIF?‘Z=’,ZRETURN例:A3.PRGSETTALKOFFZ=0INPUT“输入X的值:”TOXINPUT“输入Y的值:”TOYIFXYZ=X+YELSEZ=X*YENDIF?‘Z=’,ZRETURN2、分支语句DOCASECASE〈条件表达式1〉〈命令行序列1〉[CASE〈条件表达式2〉〈命令行序列2……CASE〈条件表达式N〉〈命令行序列N〉[OTHERWISE〈命令行序列N+1〉]ENDCASE条件1条件2OTHERWISE条件n…语句序列1语句序列2语句序列3语句序列4…ENDCASE后面的语句例:A4.PRG设X代表货物重量,Y代表运费,其关系如下式:X*15X=50X*1050X=100Y=X*8100X=1000X*5X1000{SETTALKOFFINPUT“输入货物重量:”TOXIFX=50Y=X*15ELSEIFX=100Y=X*10ELSEIFX=1000Y=X*8ELSEY=X*5ENDIFENDIFENDIF?”运费为:”+STR(Y,8,2)RETURNSETTALKOFFINPUT“输入货物重量:”TOXDOCASECASEX=50Y=X*15CASEX50.AND.X=100Y=X*10CASEX100.AND.X=1000Y=X*8CASEX1000Y=X*5ENDCASE?“运费为:”+STR(Y,8,2)RETURN例:A5、PRG求一元二次方程AX2+BX+C=0的实根。SETTALKOFFINPUT“请输入二次项系数:”TOAINPUT“请输入一次项系数:”TOBINPUTTO“请输入常数项:”CK=B*B-4*A*CS=IIF(K0,SQRT(K),0)DOCASECASEA=0?“唯一实根:”,-C/BCASEA0.AND.K=0?“两个相等实根:”,B/(2*A)CASEA0.AND.K0?“第一个实根:”,(-B+S)/(2*A)?“第二个实根:”,(-B-S)/(2*A)OTHERWISE?“本方程无实根!”ENDCASE使用分支语句应注意的问题(1)IF……ENDIF和DOCASE……ENDCASE必须配对使用,DOCASE与第一个CASE〈条件表达式〉之间不应有任何命令。(2)〈条件表达式〉可以是各种表达式或函数的组合,其值必须是逻辑值。(3)〈命令行序列〉可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。(4)DOCASE……ENDCASE命令,每次最多只能执行一个〈命令行序列〉。在多个CASE项的〈条件表达式〉值为真时,只执行第一个〈条件表达式〉值为真的〈命令行序列〉,然后执行ENDCASE的后面的第一条命令。三、循环结构(重复结构)1、DOWHILE…ENDDO语句(“当”循环、条件循环)根据条件表达式的值,决定循环体内语句的执行次数。格式:DOWHILE条件语句序列1[LOOP]语句序列2[EXIT]语句序列3ENDDO条件循环体ENDDO后面的语句假真条件LOOPEXITENDDO后面的语句真假说明:(1)若第一次判断条件为假,循环体一次都不执行(2)若循环体中包含LOOP命令,遇到LOOP时,结束循环体的本次执行,不再执行其后面的语句,而是转回DOWHILE处重新判断条件(3)若循环体中包含EXIT命令,遇到EXIT时,结束该语句的执行,转去执行ENDDO后面的语句例:SETTALKOFF?“开始跑步”N=0DOWHILEN=10?”开始的圈数是:”,NN=N+1ENDDO?”你可以休息了!”?”呼呼…累死人了!!!”例:SETTALKOFFSTORE0TOS,NDOWHILE.T.N=N+1S=S+NIFN=10EXITENDIFENDDO?’S=‘+STR(S,2)RETURNSETTALKOFFINPUT‘请输入一个大于1的自然数’TONK=0&&K=0表示输入的数为质数,K=1不是质数J=2DOWHILEJNIFMOD(N,J)0J=J+1LOOPELSEK=1EXITENDIFENDDOIFK=0?N,’是质数‘ENDIFSETTALKONRETURN2、FOR…ENDFOR语句(“计数”循环、步长循环)根据用户设置的循环变量的初值、终值和步长,决定循环体内语句的执行次数据。格式:FOR循环变量=初值TO终值[STEP步长]循环体ENDFOR|NEXT注:(1)当无STE

1 / 90
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功