vfp程序与程序文件_第1页
vfp程序与程序文件_第2页
vfp程序与程序文件_第3页
vfp程序与程序文件_第4页
vfp程序与程序文件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

一、程序与程序文献

I、程序的概念:由命令动词或短语参数以及语法构造所构成的可以自动处理的命令文献,扩展名为

PRG。

2、程序的特点

(D可以运用编辑器,以便地输入、修改和保留程序。

⑵可以用多种方式,多次运行程序。

⑶可在一种程序中调用另一种程序。

(4)它是一种自动处理方式。

3、编程中要遵照的原则:

⑴在输入命令动词或短语时,命令动词的输入规定与命令窗口中规定一致即:不分字母大小写、命

令动词可缩写前四个字母、命令动词或短语之间至少有•空格隔开。

⑵一行只能写一条语句,输入完后必须回车,才能在第二行输入下面的内容。

(3)当•行输入不完语句时,在该行的最终输入“:”,再回车,转到下一行,系统回默认下•行是.上

一行的继续。

⑷在程序中容许使用注释语句:用“*”或“&&”或NOTE开头.命令行后也可以用注释.用开头.

当然注释语句可以有可以无,在程序运行时不运行注择语句。

⑸在编辑程序中,并不是每句都执行,只有在运行时才执行程序,并旦是按照自然次序执行。

4、程序文献的建”与执行

⑴程序文献的建立

环节1:点击“文献”,在弹出的下拉菜单中选择“新建”,然后在“新建''的对话框中选择“程序”,再

单击“新建文献”按钮。

环节2:在弹由的“程序”框中,可以输入语句.

环节3:保留文献。从“文献”的下拉菜单中选择“保留”或“另存为”或用快捷键“CTRL+W”,在“另存

为“对话框中指定程序寄存的途径和文献名,并单击“保留”按钮。

⑵编辑或修改程序

环节I:点击“文献”,在弹出的菜单中选择“打开”,弹出“打开”对话框。

环节2:从文献类型中选择“程序”。

环节3:从“搜寻”后下拉框中选择保留程序的途径。

环节4:从文献列表框中选择要修改的文献,并单击“确定”按钮。

环节5:编辑完毕后,从“文献”选择保留按钮或按下“CTRL+W”来保留文献。

也可以用命令动词来建立或修改程序文献,格式:modifycommand〈文献名〉该格式中文献名前可

以指定途径。不必加扩展名,系统会默认.PRG。当执行该命令时,系统首先检索该磁盘的文献,假如指定

文献存在.则打开修改:否则系统认为要建立一种指定的文献.

⑶执行程序文献

措施1:从“程序”菜生中选择“运行”,打开运行窗口。再选择要运行的文献名,此时系统默认运行

的类型为程序,并单击“运行”按钮。

措施2:在命令窗口谕入“DO文献名”,也可以运行程序

二、交互式输出输入命令

有时,为了让程序多样化、灵活化,可以对程序的运行加以独客的规定,从而使程序意加符合顾客的

规定,对程序的控制一般通过交互式命令来控制程序运行八

1、INPUT

命令格式:INPUT字符串体现式TO内存变量

该格式表达程序暂停,按照给定的字符串的提醒信息,从健盘上此外赋值给指定的内存变量。从键

盘上输入数据后,程序继续运行。

功能注释:

⑴字符串体现式可以选用和可以不选用,假如不选用,信息提醒不会出现,但程序也是暂停:假如选用,

系统会首先显示该体现式的值,作为提醒信息。

⑵输入的数据类型可以是数值型、字符型、逻辑型、日期型,不容许不输入任何内容就车。

⑶在输入不•样数据类型时,必须加上对应的定界符,以回车结束输入。

例1:任意输入两个数字,运行后可以形成两个数字的位置互换,

Clear

Inpul”请输入一种数:"oa

Input”请输入一种数:’\oa

?a&&该成果显示的是未换位前的从键盘输入的数据

opendatabaseab

use职工状况表exclusive

acccpl”请输入职工号:“low

listfor职「号=w

use

closedatabase

return

假如把上述程序中的“accept”换成“input”后,输入数据时不加定界符,系统会弹出一种对话框。在该界

面中只需要选择“取消”即可。

此外其他按钮的作用如下:

取消:取消该程序的运行,返回命令窗口。

挂起:暂停程序运行,光标在出错的程序行闪动,提醒修改程序,这是会有提醒窗口如图17.2所示,

选择“取消”即可修改程序。

忽视:跳过出错行,程序继续往下运行。3、WAIT命令

命令格式:\vait[v字符体现式)][to<内存变量>][windo\v[atv行)<列>]][no\vait]©ear|noclear][timeoutv数

值体现式》]

该命令显示字符体现式作为提醒符,该程序暂停运行,直到顾客按任意键或单击鼠标时继续程序运行。

功能注粒:

⑴假如字〈符体现式〉值为空串,那么不会显示任何提醒,假如没有指定〈符体现式〉,则显示系统默

认的提醒信息“按任意键维续……

⑵U中的内容都是参数,nJ以加nJ■以不加,只有一种wait是系统会出现提醒信息:“按任意键继

续...。

(3)〈内存变量〉用来保留顾客键入的字符,其类型为字符型。若顾客按的是Enter键或单击了鼠标,

那么<内存变量>中保留的将是空串。若不选TO〈内存变量〉短语,输入的单字符不保留。

⑷在从键盘上输入数据时,只能输入一种字节的字符型数据,不加定界符,不用回车。

⑸一般状况下,提醒信息被显示在系统主窗口中的空白背景上,或目前顾客自定义窗口里。假如指

定了WINDOW子句,则会出现一种WAIT提醒窗口,用以显示提醒信息。提醒窗口一般显示在主窗口中

的右上角,也可以用AT短语指定(某行某列)其在主窗口的位置。提醒窗口。

⑹若选用NOWAIT短语,系统将不等待顾客按键或输入数据,程序继续运行。

⑺若选用NOCLEAR短语,则不关闭提醒窗口,直到顾客执行下一条WAITWINDOW命令或WAIT

CLEAR命令为止。

(8)TIMEOUT意思为时间限制,等待的时间为秒,在限定的秒数内,顾客输入数据或按任意键,程

序继续运行:相反.一旦超过限定的时间,程序就不再等待师客按键,自动往下运行.

⑼参数可以在一起混用,但NOCLEAR和CLEAR不能在同一行使用,一行语句可以使用多种参数。

注意:以上交互式语句一般在程序中使用

三、程序的基本语法构造

程序构造是指程序中命令或语句执行的流程构造,一般分次序构造、选择构造、循环构造。

次序构造是程序按照先后自然的次序运行,不过只有次序构造是不行的,还要用到其他构造。

1、条件选择构造

语句格式:

IF<条件>

〈语句序列1>

[ELSE

〈语句序列2>J

ENDIF

功能注释:

⑴有ELSE子句时,两组可供选择的代码分别是〈语句序列1>和〈语句序列2>。假如〈条件》成立,则执

行〈语句序列1》,否则执行〈语句序列2>。然后转向ENDIF的下一条语句。

⑵无ELSE子句时,可以看作第二组代码不包括任何命令。假如〈条件〉成立,则执行〈语句序列1》,然

后转向ENDIF的下一条语句:否则直接转向ENDIF的下一条语句去执行。

⑶IF和ENDIF必须成对出现,IF是本构造的入口,ENDIF是太构造的出口.

⑷条件语句可以嵌套,但不能交叉。在嵌套时,为了使程序清晰、易于阅读,可以用缩进格式书写。

(5X条件〉的形式是比较运算或逻辑运算,只要最终止果为逻辑型即可。即.T.或.F.

⑹在嵌套时,有一种IF必须有一种ENDIF相对应。

例1:有一分段函数,根据内容编辑一种程序。

y=2x+l(x<0).y=2**x-l(K>=0)

clear

input”请输入x的值"tex

ifx<0

y=2*x+l

else

y=2**x-l

endif

return

例2:某邮局专门对包裹的邮寄制定收费原则:在120克以内,收费原则是0.06元,120克以匕超过的

重量每克为0.05元。试编辑一种程序。

clear

inpul”请输入包裹的重且:”low

ifw<=120

f=w*0.06

else

f=(w-120)*0.05+120*0.06

cndif

?”该包裹的费用为:”,f,“元”

return

例3:任爸输入年份.可判断Ml与否为闰年.判断的原则是:能被4整除但不能被100整除或者能被400

整除。

clear

input”输入年份:”toy

ify%4=0.and.y%10(X>0.or.y%400=0&&%表达取余运第

*ifmod(y,4)=0.and.mod(y,l00)!=0.or.mod(y,400)=0&&该句是注释语句,程序不运行

?y,“为闰年”

else

?y,“不是闰年”

endif

return

例4:任省输入职工号,根据职工号进行定位,找到并显示出该职工号所对应的记录.假如找不到就显示“查

无此人

clear

opendatabase职工管理

use职工状况表exclusive

accept”请输入要查找的职工号:”tos

locatefor职工号=s

iffoiin(l()

waitwindowat23,45timeout10

disp

else

?”杳无此人”

endif

use

closedatabase

return

例5:同样运用职工号进行定位查询,找到后先不显示,判断是男性记录或女性记录,再分别显示,否则

显示“查无此人

clear

opendatabase职工管理

use职工状况表exclusive

acccpl”请输入职工号”low

locatefor职工号=w

if!found()

?“查无此人”

else

if性别='男'

wait"该记录为男性记录"windowtimeout10

disp

else

wait”该记录为女性记录"windowtimeout10

endif

endif

use

closedatabase

return

2、条分支选择构造

语句格式:

DOCASE

CASE<条件1>

〈语句序列1>

CASE(条件2>

〈语句序列2>

CASE<条件N>

〈语句序列N>

[OTHERWISE]

〈语句序列〉

ENDCASE

阐明:语句执行时,依次判断CASE背面的条件与否成立。当发现某个CASE背面的条件成立时,就

执行该CASE和下•种CASE之间的命令序列,然后执行ENDCASE背面的命令。假如所有的条件都不成

立,则执行OTHERWISE与ENDCASE之间的命令序列,然后转向ENDCASE背面的语句。

功能注释:

⑴不管有几种CASE条件成立,只有最先成立的那个CASE条件的对应命令序列被执行。

⑵假如所有的CASE条件都不成立.且没有OTHERWISE/句,则直接跳出本构造.

(3)D0CASE和ENDCASE必须成对出现,DOCASE是本构造的入口,ENDCASE是本构造的出口。

(4)DOCASE和ENDCASE可以出现嵌套,有一种DOCASE结尾必须有一种ENDCASE对应。

例1:settalkoff

clear

input”输入X的值:“tox

docase

casex<()

y=2*abs(x)-1&&ABS走取绝对值函数

casex>=0.and.x<4

y=3**x+5&&**是乘方运算

casex>=4.and.x<8

y=5*int(x)+l&&int取整函数

casex>=8.and.x<10

y=5Ax-3&&A是乘方运算

otherwise

y=7*sqrt(x)+2&&sqrt是求平方根函数

endcase

?'f(\x/)=\y

settalkon

return

例2:运用菜单进行维护表

scitalkoff

clear

opendauibasc职工管理

use职「状况表exclusive

text

1—修改记录

2—追加记录

3-删除记录

J查找记录

5-替代记录

6—退出

cndicxt

wait”请选择(1-6)''tow

docase

casew='1'

browseallfields姓名,基本工资,奖金

casew='2'

appendblank

casew='3'

deleteallfor基本工资=0

pack

casew='4'

accept”输入职工号:”lox

locatefor职工号=x

iffound()

wait”该记录显示如下"windowat12,21timeout5

disp

else

?”对不起,查无此人”

endif

casew='5'

replaceall基本工资wth基本工资+150,奖金with奖金+100for工龄>3

list

casew='6'

cancel

endcase

closedatabase

use

settalkon

return

3、dowhil-enddo循环构造

语句格式:

dowhile〈条件>

〈语句序列1>

[loop]

<语句序列2>

[exit]

〈语句序列3>

enddo

阐明:

执行该语句时,先判断DOWHILE处的循环条件与否成立.假加条件为真.则执行DOWHILE与

ENDDO之间的命令序列。当执行到ENDDO时,返回DOWHILE,再次判断循环条件与否为真,以确定

与否再次执行循环体。若条件为假,则结束该循环语句,执行ENDDO背面的语句。

功能注粒:

⑴假如第一次判断条件时,条件为假,则循环体一次都不执行。

(2)假如循环体包括LOOP命令,则当碰到LOOP时,就结束循环体的本次运行,不再执行其背面的

语句,而是转回到DOWHILE处重新判断条件。

⑶假加循环体包括F.XIT命令,则当碰到F.XIT时.就结束该语句的执行.转夫执行FNDDO背面的

语句。

(4)一般LOOP或EXIT出H前循环体内嵌套的选择语句中,根据条件来决定是LOOP回去,还是EXIT

出去。

(5)D0WHILE和ENDDO必须成对出现,行一种DOWHILE就必须有一种ENDDO。

例1:计算1+2+3+.......100的和

解题思绪:

⑴引进变量s和I,s用来保留累加的成果,初值为0;i既作为被累加的数据,也作为控制循环务件与

否成立的变量,初值为1

(2)反复执行命令s=s+iRi=i+l,i直至的值超过100。每一次执行,s的值累加,i的值增长屋

clear

settalkoff

s=0

i=l

dowhilei<=100

S=S+I

i=i+l

enddo

?s

settalkon

return

显示成果为:5050

例2:逐条显示性别为女的记录

clear

settalkoff

opendatabase职工管理

use职工状况表exclusive

locatefor性别=’女,

dowhile.not.eof()

disp

continue

enddo

closedatabase

settalkon

return

例3:反复查找记录

clea

settalkoff

dowhiel.1.

opendatabase职工管理

use职工状况表exclusive

locatefor性别=’女,

iffound()

waitwindow

disp

else

?”查无此人!”

endif

wait”与否继续(Y/N)k

ifupper(k)=*Y,

loop

else

exit

endif

encido

closedatabase

settalkon

return

例4:九九乘法表

clear

settalkoff

i=l

dowhilei<=9

j=l

dowhilei<=j

??ailtrim(str(i))+,*'+allttrim(stri(j))+,=,+alltrim(str(i*j))+space(3)

j=j+l

enddo

i=i+l

cnddo

4、FOR-ENDFOR步长循环

语句格式:

FOR(内存变母>=<初值>TO(终值>[STEP(步K>]

〈循环体〉

ENDFOR|NEXT

阐明:执行该语句时,首先将初值赋给内存变量,然后判断循环条件与否成立(若步长为正值,〈内存

变量><=<终值〉,即步长递增:若步长为负位,循环条件为〈循环变量>>=<终值〉.即步长递减。),若成立,

则执行循环体,然后循环变量增长一种步长值,并再次判断循环条件与否成立,以确定与否再次执行循环

体。若循环条件不成立,则结束该循环语句,执行ENDFOR背面的语句。

功能注释:

(D<步长〉的默认值为1。

(2)〈初值>、<终值>、<步长〉都可以是数值体现式。但这些体现式仅在循环语句执行开始时被计算•

次。在循环语句的执行过程中,初值、终值和步长是不会变化的,

⑶可以在循环体内变化循环变量的值.但这会影响循环体的执行次数.

(QEXIT和LOOP命令同样可以出目前该循环语句的循环体内。当执行到LOOP命令时,结束循环

体的本次运行,然后循环体增长一种步长值,并再次判断循环条件与否成立。

例1:显示I至IJ1000的数字

settalkoff

clear

fork=lto1000

?k

endfor

例2:显示I到1000的数字,一行显示10个。

settalkoff

clear

fork=lto1000

??k&&两个?号表达在目前行显示内容

ifmod(k,10)=0?

?&&表达换行

endif

endfor

settalkon

return

例3:找出100-999之间的所有“水仙花数:所谓“水仙花数''是指一种三位数,其各位数字的立方和等于该

数自身。

如:153=1A3+5A3+3A3

settalkoff

clear

fori=l(X)to999

a=int

温馨提示

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

评论

0/150

提交评论