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

下载本文档

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

文档简介

一、程序与程序文献

1、程序的概念:由命令动词或短语参数以及语法构造所构成的能够自动解决的命令文献,扩展名为PRG。

2、程序的特点

⑴能够运用编辑器,方便地输入、修改和保存程序。

⑵能够用多个方式,多次运行程序。

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

⑷它是一种自动解决方式。

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

⑴在输入命令动词或短语时,命令动词的输入规定与命令窗口中规定一致即:不分字母大小写、命令动词可缩写前四个字母、命令动词或短语之间最少有一空格隔开。

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

⑶当一行输入不完语句时,在该行的最后输入“;”,再回车,转到下一行,系统回默认下一行是上一行的继续。

⑷在程序中允许使用注释语句:用“*”或“&&”或NOTE开头,命令行后也能够用注释,用“&&”开头,固然注释语句能够有能够无,在程序运行时不运行注释语句。

⑸在编辑程序中,并不是每句都执行,只有在运行时才执行程序,并且是按照自然次序执行。4、程序文献的建立与执行

⑴程序文献的建立

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

环节2:在弹出的“程序”框中,能够输入语句。

环节3:保存文献。从“文献”的下拉菜单中选择“保存”或“另存为”或用快捷键“CTRL+W”,在“另存为”对话框中指定程序寄存的途径和文献名,并单击“保存”按钮。

⑵编辑或修改程序

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

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

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

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

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

也能够用命令动词来建立或修改程序文献,格式:modifycommand<文献名>该格式中文献名前能够指定途径。不必加扩展名,系统会默认.PRG。当执行该命令时,系统首先检索该磁盘的文献,如果指定文献存在,则打开修改;否则系统认为要建立一种指定的文献。

⑶执行程序文献

办法1:从“程序”菜单中选择“运行”,打开运行窗口。再选择要运行的文献名,此时系统默认运行的类型为程序,并单击“运行”按钮。

办法2:在命令窗口输入“DO文献名”,也能够运行程序二、交互式输出输入命令

有时,为了让程序多样化、灵活化,能够对程序的运行加以顾客的规定,从而使程序更加符合顾客的规定,对程序的控制普通通过交互式命令来控制程序运行。

1、INPUT

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

该格式表达程序暂停,按照给定的字符串的提示信息,从键盘上另外赋值给指定的内存变量。从键盘上输入数据后,程序继续运行。

功效注释:

⑴字符串体现式能够选用和能够不选用,如果不选用,信息提示不会出现,但程序也是暂停;如果选用,系统会首先显示该体现式的值,作为提示信息。

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

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

例1:任意输入两个数字,运行后能够形成两个数字的位置交换。

Clear

Input”请输入一种数:”toa

Input”请输入一种数:”toa

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

?b&&同上

c=a&&C是任意指定的内存变量,先把a的只放如c中

a=b&&a中的数据暂无,把b中的数据直接放入a中

b=c&&再将c中的数据(即a中的数据)放入b中

?”换位后的”,a

?”换位后的”,b

return

2、ACCEPT命令

命令格式:ACCEPT[<字符体现式>]to内存变量

该格式表达程序暂停,按照给定的字符串的提示信息,从键盘上另外赋值给指定的内存变量。从键盘上输入数据后,程序继续运行。

功效注释:

⑴字符串体现式能够选用和能够不选用,如果不选用,信息提示不会出现,但程序也是暂停;如果选用,系统会首先显示该体现式的值,作为提示信息。

⑵该命令只接受字符型数据,即无论输入何种数据类型的数据系统一律默认为字符型。

⑶输入数据时,不加定界符,以回车结束输入。

⑷如果不输入任何内容,直接回车,系统会默认输入的数据为空字符串。例2:根据职工号显示统计

opendatabaseab

use职工状况表exclusive

accept”请输入职工号:”tow

listfor职工号=w

use

closedatabase

return

如果把上述程序中的”accept”换成“input”后,输入数据时不加定界符,系统会弹出一种对话框。在该界面中只需要选择“取消”即可。

另外其它按钮的作用以下:

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

挂起:暂停程序运行,光标在出错的程序行闪动,提示修改程序,这是会有提示窗口如图17.2所示,选择“取消”即可修改程序。

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

命令格式:wait[<字符体现式>][to<内存变量>][window[at<行>,<列>]][nowait][clear|noclear][timeout<数值体现式>]

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

功效注释:

⑴如果字<符体现式>值为空串,那么不会显示任何提示,如果没有指定<符体现式>,则显示系统默认的提示信息“按任意键继续……”。

⑵[]中的内容都是参数,能够加能够不加,只有一种wait是系统会出现提示信息:“按任意键继续……”。

⑶<内存变量>用来保存顾客键入的字符,其类型为字符型。若顾客按的是Enter键或单击了鼠标,那么<内存变量>中保存的将是空串。若不选TO<内存变量>短语,输入的单字符不保存。

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

⑸普通状况下,提示信息被显示在系统主窗口中的空白背景上,或现在顾客自定义窗口里。如果指定了WINDOW子句,则会出现一种WAIT提示窗口,用以显示提示信息。提示窗口普通显示在主窗口中的右上角,也能够用AT短语指定(某行某列)其在主窗口的位置。提示窗口。

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

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

⑻TIMEOUT意思为时间限制,等待的时间为秒,在限定的秒数内,顾客输入数据或按任意键,程序继续运行;相反,一旦超出限定的时间,程序就不再等待顾客按键,自动往下运行。

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

注意:以上交互式语句普通在程序中使用三、程序的基本语法构造

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

次序构造是程序按照先后自然的次序运行,但是只有次序构造是不行的,还要用到其它构造。1、条件选择构造

语句格式:

IF<条件>

<语句序列1>

[ELSE

<语句序列2>]

ENDIF

功效注释:

⑴有ELSE子句时,两组可供选择的代码分别是<语句序列1>和<语句序列2>。如果<条件>成立,则执行<语句序列1>,否则执行<语句序列2>。然后转向ENDIF的下一条语句。

⑵无ELSE子句时,能够看作第二组代码不涉及任何命令。如果<条件>成立,则执行<语句序列1>,然后转向ENDIF的下一条语句;否则直接转向ENDIF的下一条语句去执行。

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

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

⑸<条件>的形式是比较运算或逻辑运算,只要最后成果为逻辑型即可。即.T.或.F.

⑹在嵌套时,有一种IF必须有一种ENDIF相对应。例1:有一分段函数,根据内容编辑一种程序。

y=2x+1(x<0),y=2**x-1(x>=0)

clear

input″请输入x的值″tox

ifx<0

y=2*x+1

else

y=2**x-1

endif

return例2:某邮局专门对包裹的邮寄制订收费原则:在120克以内,收费原则是0.06元,120克以上,超出的重量每克为0.05元。试编辑一种程序。

clear

input”请输入包裹的重量:”tow

ifw<=120

f=w*0.06

else

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

endif

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

return例3:任意输入年份,可判断出与否为闰年。判断的原则是:能被4整除但不能被100整除或者能被400整除。

clear

input”输入年份:”toy

ify%4=0.and.y%100<>0.or.y%400=0&&%表达取余运算

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

?y,”为闰年”

else

?y,”不是闰年”

endif

return例4:任意输入职工号,根据职工号进行定位,找到并显示出该职工号所对应的统计,如果找不到就显示“查无此人”。

clear

opendatabase职工管理

use职工状况表exclusive

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

locatefor职工号=s

iffound()

waitwindowat23,45timeout10

disp

else

?”查无此人”

endif

use

closedatabase

return例5:同样运用职工号进行定位查询,找到后先不显示,判断是男性统计或女性统计,再分别显示,否则显示“查无此人”。

clear

opendatabase职工管理

use职工状况表exclusive

accept”请输入职工号”tow

locatefor职工号=w

if!found()

?”查无此人”

else

if性别=’男’

wait″该统计为男性统计″windowtimeout10

disp

else

wait″该统计为女性统计″windowtimeout10

endif

endif

use

closedatabase

return2、多分支选择构造

语句格式:

DOCASE

CASE<条件1>

<语句序列1>

CASE<条件2>

<语句序列2>

……

CASE<条件N>

<语句序列N>

[OTHERWISE]

<语句序列>

ENDCASE

阐明:语句执行时,依次判断CASE背面的条件与否成立。当发现某个CASE背面的条件成立时,就执行该CASE和下一种CASE之间的命令序列,然后执行ENDCASE背面的命令。如果全部的条件都不成立,则执行OTHERWISE与ENDCASE之间的命令序列,然后转向ENDCASE背面的语句。

功效注释:

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

⑵如果全部的CASE条件都不成立,且没有OTHERWISE子句,则直接跳出本构造。

⑶DOCASE和ENDCASE必须成对出现,DOCASE是本构造的入口,ENDCASE是本构造的出口。

⑷DOCASE和ENDCASE能够出现嵌套,有一种DOCASE结尾必须有一种ENDCASE对应。例1:settalkoff

clear

input”输入X的值:”tox

docase

casex<0

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

casex>=0.and.x<4

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

casex>=4.and.x<8

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

casex>=8.and.x<10

y=5^x-3&&^是乘方运算

otherwise

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

endcase

?’f(’,x,’)=’,y

settalkon

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

settalkoff

clear

opendatabase职工管理

use职工状况表exclusive

text

1—修改统计

2—追加统计

3—删除统计

4—查找统计

5—替代统计

6—退出

endtext

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

docase

casew=’1’

browseallfields姓名,基本工资,奖金

casew=’2’

appendblank

casew=’3’

deleteallfor基本工资=0

pack

casew=’4’

accept”输入职工号:”tox

locatefor职工号=x

iffound()

wait”该统计显示以下”windowat12,21timeout5

disp

else

?”对不起,查无此人”

endif

casew=’5’

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

list

casew=’6’

cancel

endcase

closedatabase

use

settalkon

return3、dowhil-enddo循环构造

语句格式:

dowhile<条件>

<语句序列1>

[loop]

<语句序列2>

[exit]

<语句序列3>

enddo

阐明:

执行该语句时,先判断DOWHILE处的循环条件与否成立,如果条件为真,则执行DOWHILE与ENDDO之间的命令序列。当执行到ENDDO时,返回DOWHILE,再次判断循环条件与否为真,以拟定与否再次执行循环体。若条件为假,则结束该循环语句,执行ENDDO背面的语句。

功效注释:

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

⑵如果循环体包含LOOP命令,则当碰到LOOP时,就结束循环体的本次运行,不再执行其背面的语句,而是转回到DOWHILE处重新判断条件。

⑶如果循环体包含EXIT命令,则当碰到EXIT时,就结束该语句的执行,转去执行ENDDO背面的语句。

⑷普通LOOP或EXIT出现在循环体内嵌套的选择语句中,根据条件来决定是LOOP回去,还是EXIT出去。

⑸DOWHILE和ENDDO必须成对出现,有一种DOWHILE就必须有一种ENDDO。例1:计算1+2+3+……100的和

解题思路:

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

⑵重复执行命令s=s+i和i=i+1,i直至的值超出100。每一次执行,s的值累加,i的值增加1。

clear

settalkoff

s=0

i=1

dowhilei<=100

s=s+I

i=i+1

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.t.

opendatabase职工管理

use职工状况表exclusive

locatefor性别=’女’

iffound()

waitwindow

disp

else

?”查无此人!”

endif

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

ifupper(k)=’Y’

loop

else

exit

endif

enddo

closedatabase

settalkon

return例4:九九乘法表

clear

settalkoff

i=1

dowhilei<=9

j=1

dowhilei<=j

??alltrim(str(i))+’*’+allttrim(stri(j))+’=’+alltrim(str(i*j))+space(3)

j=j+1

enddo

i=i+1

enddo4、FOR-ENDFOR步长循环

语句格式:

FOR<内存变量>=<初值>TO<终值>[STEP<步长>]

<循环体>

ENDFOR|NEXT

阐明:执行该语句时,首先将初值赋给内存变量,然后判断循环条件与否成立(若步长为正值,<内存变量><=<终值>,即步长递增;若步长为负值,循环条件为<循环变量>>=<终值>,即步长递减。),若成立,则执行循环体,然后循环变量增加一种步长值,并再次判断循环条件与否成立,以拟定与否再次执行循环体。若循环条件不成立,则结束该循环语句,执行ENDFOR背面的语句。

功效注释:

⑴<步长>的默认值为1。

⑵<初值>、<终值>、<步长>都能够是数值体现式。但这些体现式仅在循环语句执行开始时被计算一次。在循环语句的执行过程中,初值、终值和步长是不会变化的。

⑶能够在循环体内变化循环变量的值,但这会影响循环体的执行次数。

⑷EXIT和LOOP命令同样能够出现在该循环语句的循环体内。当执行到LOOP命令时,结束循环体的本次运行,然后循环体增加一种步长值,并再次判断循环条件与否成立。例1:显示1到1000的数字

settalkoff

clear

fork=1to1000

?k

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

settalkoff

clear

fork=1to1000

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

ifmod(k,10)=0?

?&&表达换行

endif

endfor

settalkon

return例3:找出100-999之间的全部“水仙花数”。所谓“水仙花数”是指一种三位数,其各位数字的立方和等于该数本身。

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

settalkoff

clear

forI=100to999

a=int(i/100)

b=int((i-100*a)/10)

c=i-int(i/10)*10

ifi=a^3+b^3+c^3

?i

en

温馨提示

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

评论

0/150

提交评论