计算机VFP 第八章 程序设计基础1_第1页
计算机VFP 第八章 程序设计基础1_第2页
计算机VFP 第八章 程序设计基础1_第3页
计算机VFP 第八章 程序设计基础1_第4页
计算机VFP 第八章 程序设计基础1_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第八章程序设计基础

■——、VF的工作方式

-二、程序的建立与运行

■三、程序中的交互语句及辅助语

■四、程序的基本结构

■五、过程设计

VF的工作方式

VF的三种工作方式:命令方式、菜单方式、

程序文件方式。

■程序文件(命令文件)方式:

□程序:就是根据所解决问题的需要,将能完成相应

功能的命令或语句按照一定的逻辑关系组织起来的

命令集合。

□程序文件的扩展名为.PRG。

程序的

・以命令方式建立、编辑程序文件

□格式:MODIFYCOMMANDv程序文件名〉

功能:建立或编辑修改程序文件。

说明:

■扩展名默认为PRG。

■文件名为默认路径下已有的文件,则使用此命令表示修改指定

的程序。

文件名为默认路径下没有的文件,则使用此命令表示新建指定

的程序。

■命令:MODICOMM?功能:从文件列表中选择碧贺

--------------------------------------------------------------

□保存程序:1、用“文件”菜单中的"保存“命令。

程序的建立与运行

□程序书写规则:

■程序中的每条命令都必须以回车结尾。

■一行只能写一条命令,若命令需分行写,应在一行尾

加”号续行,然后回车。

-以菜单方式建立、编辑程序文件

■用“项目管理器”建立、编辑程序文件

■悭序文件的调用

□以命令方式调用

格式:DOv程序文件名〉

说明:程序运行中,遇到以下情况之一,将终止程序运行:

■执行到程序尾,自然结束,返回VF系统主窗口。

■执行了RETURN命令,终止程序执行,返回原调用处的下一语句

继续执行。(主要用于过程中)

■执行了CANCEL命令,终止程序执行返回系统主窗口。

■执行了QUIT命令,终止程序执行,退出VF系统。

□以菜单方式调用程序文件

程序中的交互语句及辅助

涧匍的格式化输入、输出命令

□格式化输入命令(P140)

格式:语句1:@v行,列〉[SAYv提示信息刁GETv变量)

[DEFAULTv表达式2>]

语句2:READ

功能:语句1的功能是在屏幕指定位置显示v提示信息>和<变量〉的

值。语句2的功能是重新编辑修改v变量〉的值。

说明:

■要输入编辑数据,语句1、2必须联用,可编辑类型:C、N、D、L型。

■SAY〈提示信息〉用于对GET变量作提示性说明。

程序中的交互语句及辅助

语句

变量可为字段名变量,也可为内存变量,内存变

量必须有初值,或用DEFAULT短语的v表达式2>

指定初值.初值一旦指定,该变量的类型在编辑期间

就不能改变,字符型变量的宽度与数值型变量的小

数位数也无法改变。

例1:编程RCDA表中追加记录,并输入编号、

姓名、性别、出生日期、工资现状的值。

(ZJ.PRG)

例2:编程输入BH、XM、XB、RQ、Gfe*?情,

程序中的交互语句及辅助

语句

■格式化输出命令

格式:@v行,歹U>SAYV表达式〉[FUNCTIONV

功能符>][PICTURE〈格式符刁

例:查找王国民并输出。(CHAZ.PRG)

■内机对话命令

□输入单字符命令一WAIT

格式:WAIT卜提示信息刁[TO〈内存变量刁

功能:暂停程序执行,等待用户键入一字符后继续。

说明:

■输入的任何数据,均作为字符型数据处理。

-只能输入一个字符或直接回车(回车相当于输入空串)。

■v提示信息〉一般用字符串说明,不选用则自动提示“按任一键继续…”。

-选用TO〈内存变量〉时,可将输入的字符保存在内存变量中,以便以后

使用。

例:若有表文件WJ1.DBF、WJ2.DBF、WJ3.DBF,如何实现只输入一

个字符而能打开这些表。

杰入奉礁喘其—ACCEPT(可输入多个字符)

格式:ACCEPT卜提示信息刁TOv内存变量,

功能:暂停程序执行,等待用户输入一串字符后,按回车

键程序继续运行。

说明:

■输入的任何数据,均作为字符型数据处理。

提示信息的用法与WAIT语句相同,不选用则不提示(与WAIT不

同)。

例1:根据输入的文件名,打开指定的表文件。

例2:在RCDA表中按指定姓名(出生日期、工资)查询

(LOCATE,SEEK)记录。(XMCZ)

L

□输入多种类型数据命令一INPUT

格式:INPUT卜提示信息刁TOv内存变量〉

功能:暂停程序执行,等待用户输入数据,回车后继续。

说明:

■输入的数据类型可为C、N、D、Lo

■输入字符型数据,必须加定界符;输入日期型,用{为丫丫丫-[71111-

dd}或用CTOD()函数转换。

例1:在RCDA表中按指定姓名查询。(XMCZ.PRG)

例2:在RCDA表中按指定工资(生日)查找。

口小结:区别WAIT、ACCEPT、INPUT三条命令的梅资心

■辅助命令

□CLEAR清屏命令

□NOTE|*卜字符串刁注释必须自成一行,对程序段

作说明。

&&卜字符串习注释接在命令语句后对该语句作说

明。

□TEXT

v文本内容〉

ENDTEXT

功能:原样输出TEXT与ENDTEXT之间的内容。

(CD.PRG)

I程序的基本结构-----------------

■VF系统的应用程序中,常见的控制结构有:

□顺序结构

特点:按照语句书写的先后顺序依次执行,执行到程序尾退出。

缺陷:1、一次只能操作一组数据;2、不能对数据进行判断。

□分支结构

一、简单分支语句

格式:IFv条件〉

v语句序列》

ENDIF

意义:略。

・、简单分支语句

□说明:IF、ENDIF必须成对使用。

■V条件,可以是表达式,也可是函数,但结果必须为逻

辑值。

例1:在RCDA表中按姓名查询记录,找到则显示该

记录,没找到则提示“无此姓名的记录!”。

例2:从键盘输入两个不同的自然数,输出其中最

大的。

例3:按姓名查询,并提示是否进行修改,回答“Y”

退出。(CDXG.PRG)

二、选择分支语句——

格式:IFv条件〉

v语句序列1>

ELSE

v语句序列2>

ENDIF

意义:略。

例1:P150o

例2:修改前面的例2。

三温钺攀句

CASEv条件1>

v命令序列1>

CASE〈条件n>

v命令序列n>

[OTHERWISE

〈命令序列n+1>]

ENDCASE

功能说明:略。

三、多分支语句

注意:

■DOCASE与ENDCASE必须成对出现。

■DOCASE与CASE之间不能放其它语句。

■各条件不能互相包含,即不能让两个或两个以上的〈条件>值

为.「,因为程序只能执行第一个值为工的v条件,所对应的

语句序列。

例1:P151o

例2:从键盘上输入三个不同的自然数,输出其中最大的。

四一「一分支语句的嵌套

结构:略。

例1:对DJPD表,根据学号查询,对查到的记录再根据平均分

定等级,并填写等级字段,(85分以上为优,76〜85为良,

60〜75为中,60分以下为差)若没找到则显示:“查无此人!”。

例2:对成绩表,根据学号查询,对查到的记录再判断其民族,

若为少数民族则总分+5,否则不加分,若没找到指定记录,则

提示:“查无此人!”。

注意:

■ELSE与ENDIF都与最近的IF语句匹配。

-各分支结构不能相互交叉。

Ef环结构程序设计

一、当型循环

格式:DOWHILEv条件,

v语句序列》

[LOOP]

v语句序列》

[EXIT]

v语句序列》

ENDDO

意义:当v条件,为万.时,重复执行DOWHILE与ENDDO

之间的语句序列,直到v条件>为F.时,退出循环继续执

行1ENDDO之后的语句。一

、当型循环

注意:

■LOOP、EXIT只能在循环中使用,而不能在循环外使

用。

■DOWHILE…ENDDO语句本身不具有给循环变量赋初

值的功能,因此应当在该语句之前给循环变量赋初值,

并在循环体中修改循环变量的值。

■LOOP作用:不再执行其后的语句序列,而进入下一次

循环,即重新返回DOWHILE处判断条件的值。

■EXIT作用:强制退出循环,继续执行ENDD^^^

句O

几种常见的循环结构:

1、对数据表记录进行操作的循环

特点:

■循环条件一般用.NOT.EOF()o

■用SKIP命令修改循环条件。

■循环体中操作对象是数据表中的记录。

例1:逐条显示RCDA表中性别为女的记录。(条件分别

为.NOT.EOF()与.NOT.B0F()o)

例2:在RCDA表中,按性别查找,依次对性别为女的工资

加100元。

1、对数据表记录进行操作的循环

例3:在成绩表中,统计解几成绩分别在85分以上,

76至85分,小于76分的学生的人数。

练习:在DJPD表中,按平均分对每人评定等级,并

将评定结果填到等级字段中。(85分以上为优,

76〜85为良,60〜75为中,60分以下为差)

舟点循环次数一定的循环

■循环次数一定。

■循环条件多为关系表达式,其中含控制循环次数的循环变量。

■循环变量有初值和终值。

■循环体中有修改循环变量的语句,使循环变量增或减值,否则成

为死循环。

例1:求1到100之间所有整数之和。(两种方法)

例2:求1至”00之间的奇数和。(三种方法)

练习:求10!o

3、随机循环

特点:

■随机条件总是为T。(这样就不能自动退出循环一死循环)

■必要时,可使用EXIT、RETURN>CANCEL、QUIT强制

退出循环)

例:在RCDA表中,实现可连续按姓名查询。

作业:用循环语句编程判断任意一个由键盘输入的数

是否为素数。

、“计数”型循环控制语句

格式:FORv循环变量>=v变量初值〉TOv终值>[STEPv变量

步长刁

v命令序列〉

[LOOP]

[EXIT]

ENDFOR|NEXT

功能:循环变量首先被赋为变量初值,然后比较循环变量与终值来

决定是否执行循环体内的命令语句。步长值为正数时,若循环变

量值不大于终值,就执行循环体;步长为负数时,若循环变量不

小于终值,就执行循环体。执行一遇到ENDFOR或NEXT,循环

变量立即被加上步长值,然后重新与结束值比较。

说明:如果无STEP短语,默认步长值为1。

例:改写前面当型循环的例子。

三、“指针”型循环控制语句

格式:SCAN卜范围习[FOR〈条件表达式1>][WHILEv条件

表达式2>]

v命令序列〉

[LOOP]

[EXIT]

ENDSCAN

功能:程序执行到该语句,首先判断EOF()函数的值,若为

真,则执行ENDSCAN之后的语句;否则结合条件1与条件2执

行循环中的v命令序列〉,然后指针移到下一条范围内满足条

件的记录,再判断EOF()的值,直到EOF()为真结束循环。

四、多重循环:即循环体中又包含另外一些

循环。

格式:略。

例1:在RCDA表中,按性别查询,要求能逐条查到所有性

别相同的记录并显示。

例2:打印九九表。

练习:输出3到100之间的所有素数。(输出格式:一行输

出5个数,每个数间用5空格隔开。)

■HA

■定义:我们将以过程说明语句开头,以返回命令结

束,能完成一定功能,可以被其它程序反复调用的程

序段叫做过程。

■过程的分类:

1、以独立文件存在的过程,称为外部过程。

2、若干个过程共存于一个过程文件的过程,称为内

部过程。

■过程返回语句

1、RETURN[TOMASTER]

功能:返回调用程序原调用处的下一语句继续执行。

TOMASTER的作用:用在过程嵌套中,直

接返回最高层调用处,如不选,则逐级返回。

2、RETRY

功能:返回调用程序原调用语句,继续执行。

■外部过程的建立及调用:

1、建立与建立一般程序相同。至讣女

SETTALKOFF

S=0

N=1

T=1

DOWHILEN<=5

T=T*N

N=N+1

ENDDO

S=S+T

N=1

T=1

DOWHILEN<=10

T=T*N

N=N+1

ENDDO

S=S+T

N=1

T=1

DOWHILEN<=20

T=T*N

N=N+1

ENDDO

S=S+T

?’5!+10!+20!=',S

SETTALKON

2、过程调用

格式:DOv过程名〉

说明:可以将过程保存在单独的程序文件中,也可放

在程序的结尾,但不能把可执行的主程序放在过程之

后。

例:改写引入程序。

思考:求C=M!/(N!*(M-N)!)

过程文件及使用

1、过程文件的建立

格式:MODICOMMv文件名〉

2、过程文件的组织形式

PROCEDUREv过程名1>

v语句序列》

ENDPROC

PROCEDUREv过程名N>

v语句序列,

ENDPROC--------------------

3、一过程文件的调用

步骤:①打开过程文件

格式:SETPROCEDURETOv文件名〉

注意:同一时刻只允许打开一个过程文件。

②调用过程文件中的过程

格式:DOv过程名>

功能:调用已打开的过程文件中的指定过程。

③关闭过程文件

格式1:SETPROCEDURETO

格式2:CLOSEPROCEDURE

功能:关闭打开的过程文件。

■过程的嵌套

■过程调用中的数据传递

□利用内存变量的属性传递数据

■全局变量(公共变量)

公共变量是在VF系统的全部范围内均有效的内存变量。(包括命

令窗口及程序的任何部分[主程序及其子程序中])

定义格式:PUBLICv内存变量表〉

功能:把v内存变量表〉中指定的内存变量定义为全局变量。

说明:1、全局变量在程序结束时不释放,只能使用清除

内存变量的命令清除。(CLEARMEMORY,CLEARALL)

2、定义的全局变量在赋值前,自动赋值为.F.。

■局部变量

局部变量只在定义它的程序段有效,而在此程序段的上级程

序段或下级程序段无效。

定义格式:LOCALv内存变量表〉

功能:把v内存变量表〉中指定的内存变量定义为局部变量。

说明:1、局部变量在其所在程序段结束时自动清除。

2、定义的局部变量在赋值前,自动赋值为.F.。

■私有变量

私有变量是在定义它的程序段以及其下级程序段(被调用过

程)的局部范围内都有效的内存变量。

定义格式1:PRIVATEv内存变量表〉

格式2:PRIVATEALL[LIKE|EXCEPTv通配变量名习

功能:把指定的变量定义为私有变量。

说明:1、程序中凡没有使用PUBLIC、LOCAL和PRIVATE

语句定义的变量都是私有变量。

2、格式2用法:

PRIVATEALL:定义所有内存变量为私有变量。

PRIVATEALLLIKEv通配变量名〉:定义与v通配变量名〉

相符的变量为私有变量。

PRIVATEALLEXCEPT〈通配变量名〉:定义与v通配变

量名〉不相符的变量为私有变量。

3、局部、私有变量在其有效程序段结束时自动清唆

□例子

settalkoff

ocaly

Drivx

温馨提示

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

评论

0/150

提交评论