VFO程序设计复习
1程序设计概述
一、程序的概念
概念:具有一定功能的计算机能执行的指令的集合。 例1:显示表XSDA可编写成如下命令序 SET DEFA TO F:\\表 USE XSDA LIST
CLOSE ALL
例2:求a=3,b=2,c=5 求a+b-c= 程序 代码如下: a=3 b=2 c=5 x=a+b-c x
二、常见的程序设计方法
1、 结构化程序设计(模块化)
结构化程序设计是一个面向过程的概念。把一个实际问题分为两部分,即数据和过程。通过动态的程序执行过程来对静态的数据进行处理,得出正确的结果。由VFP命令和程序设计命令的组合,需编制和调试; 2、 面向对象的程序设计
3、结构化程序设计它是面向过程程序设计的另一种描述,面向过程程序设计有如下特点: ①整个程序分为若干个模块,模块之间相衔接,且相对独立。②第个模块只有一个入口和一个出口。③第个模块都能单独执行,且在有限时间内执行完。④采用自顶向下、逐步求精的方法。
三、程序三大基本结构
1、顺序结构:执行是按命令出现的先后顺序执行。
2、分支结构:按给定的条件成立与否来决定程序起向,分单向选择分支、双向选择分支和多路分支。有以下两种 IF 语句 DO CASE
ENDIF ENDCASE
3、循环结构:程序的执行发生了自下而上的往复,某一程序段将重复执行。 有以下三种 Do While For SCAN ENDDO ENDFOR ENDSCAN 四、算法和流程图
算法:解决某一问题的方法与步骤。见教材例。
流程图:算法的描述,除用自然语言描述外,计算机领域常用流程图(ANSI图和N-S图)描述。见教材例。
例如:乐山到成都怎么去
1、 解一元二次方程的算法。Ax2+bx+c=0, 求x
2、 求出1-100之间的质数。 X / => 2 到 SQRT(X )
2程序的建立和执行
一、程序的扩展名:PRG
实质:文本文件(ASCII编码)执行时,会产生编译文件FXP后让计算机执行。 二、程序文件的建立和编辑 1、命令方式:
MODI COMM 程序名.PRG (.PRG可省) 2、菜单方式;
文件 => 新建 => 程序
3、项目管理器中建立的方法: 建立项目管理器 => 新建程序 4、其他方法:
其它可编辑文本的软件: 记事本\\写字板\\WORD\\其它程序编辑器
注意: 希望编写程序之前事先设置好默认目录(set defa to ……)然后我们编写的程序就会自动存储在那个目录中。
例如:set defa to d:\\ks modi comm Test (相当于是:modi comm D:\\ks\\ 三、 程序的执行 1、命令方式
命令格式:DO [盘符][路径]程序名 2、菜单方式:
“程序”菜单->“运行”命令
在“运行”窗口中输入被运行的程序文件名,即可运行程序。 四、VFP程序的分类:数学类程序、涉及到表操作的程序 如果本程序是涉及到表操作的程序,那么:
1、在程序开始部分可以先加语句CLEAR 和 CLOSE ALL 2、程序最后可以使用命令CLOSE ALL 3、然后使用RETURN或CANCEL或QUIT 例:找出并显示所有三好生 CLEAR
CLOSE ALL
USE 学生
LOCATE FOR 三好生 DO WHILE NOT EOF() DISP
CONTINUE ENDDO CLOSE ALL RETUREN
3顺序程序设计与常用语句
一、程序设计中的常用语句 1、输入命令
(1)赋值命令
命令一:
STORE <表达式> TO <内存变量> 命令二:
<内存变量>= <表达式>
(2)交互式输入命令(注意:输入数据是在程序执行的时候 )
INPUT [提示信息] TO <内存变量>ACCEPT [提示信息] TO <内存变量>WAIT [提示信息] [TO <内存变量>] [TIMEOUT <等待时间>
说明: ①提示信息是C型, 它会在屏幕上原样输出 .
②WAIT命令的功能:暂停程序执行,显示提示信息等待用户按键。 Wait命令中 输入的只能是一个字符(C型)。
③ Input 适用于全部类型内存变量,输入时需要加定界符 ④ Accept只适用于C型,并且C型不加定界符
注意:Input和accept在编写程序时语句都一样,只是执行程序(do)时,主屏幕上要求输入的类型和格式不同。
例1:输入a、b、c的值,对2ax+b=c 求 x的值。 Clear
Input “现在计算2ax+b=c,请输入a的值:” to a Input “请输入b的值:” to b Input “请输入c的值:” to c x=(c-b)/(2*a)
’x的值为:’,x &&比较使用 ’x的值为:’+str(x,3)有何区别 return
例2、查找学生.dbf中的指定记录 clear close all
use 学生 list
accept “请输入您想查找的姓名: ” to xm Locate for 姓名=XM &&或命令 SEEK XM if found() DISP else
’对不起,没有找到此人’ endif list
close all Return
思考:如果accept换成input,输入的时候该怎么输入 例3、删除学生.dbf中的指定记录 clear close all use 学生
list
input “请输入您想删除的记录号: ” to x dele reco x
wait “你想彻底删除这条记录吗(y/n)” to ask if ask=’Y’ or ask=’y’ pack endif list
close all
注意区分交换方式和程序方式:有的命令可以在两种状态下执行(例如:刚才的输入命令),但有些命令只能在程序方式下执行(例如:循环语句和分支语句) (3)格式输入命令 格式一:
@行,列 say 提示信息 格式二:
@行,列 say 提示信息 get 变量 …… READ
格式三:
@行,列 say 提示信息 get 变量 default常量
功能:在屏幕指定的坐标位置上显示提示信息,然后通过READ命令激活GET子句的变量值。 说明:①GET后的变量可以是内存变量或当前打开的数据文件中的字段变量,若是内存变量,应在执行该命令前对内存变量赋值,否则就必须使用default参数赋初值。
②输入的值类型应该与初值类型相同。③READ命令与GET命令必须配合使用。多个GET命令可以只用一个READ命令配合。如果没有read则表示只显示内容,不输入值。 例1:编写程序完成在学生.DBF中追加记录 CLEAR USE 学生
APPEND BLANK
@5,20 SAY “学号” GET 学号 @5,40 SAY “姓名” GET 姓名 @7,20 SAY “性别” GET 性别
@7,40 SAY “出生年月” GET 出生年月 @9,20 SAY “入校总分” GET 入校总分 @9,40 SAY “三好生” GET 三好生 READ CLEAR LIST
CLOSE ALL RETURN
例2:编程求长方形的面积。 CLEAR
X=0 &&X为内存变量,赋初值 Y=0 @1,5 SAY “计算长方形的面积”
@2,5 SAY “输入长方形的长:” GET X &&第2行5列显示提示信息并等待输入 @3,5 SAY “输入长方形的宽:” GET Y &&第3行5列显示提示信息并等待输入 READ &&从键盘输入X,Y的值 S=X*Y &&计算长方形的面积
“长方形的面积:”,S &&显示长方形的面积 CANCEL
思考题1:如将上述例1程序改为按照指定学号来修改记录应该怎样做(答案见课件后)3、输出命令
⑴:非格式输出命令 和
⑵:格式化输出命令 @行,列 say 表达式
说明:行和列都可以是表达式,常常可以使用函数ROW( ) 和 COL( ) ROW( )表示返回当前行的行号 COL( )表示返回当前列的列号例1: N=1
CH=“VF程序设计”
@N,26 SAY SPACE(60) @N+1,26 SAY CH 例2:循环输入值 clear
dime xh(10) store 0 to xh
@10,10 say '请输入数字:' get xh(1) i=2
do while i<=10
@row()+1,10 say '请输入数字:' get xh(i) i=i+1 enddo read
list memo like xh
4、其他程序运行命令 (1)终止程序执行命令
CANCEL 、QUIT 和 RETURN
QUIT: 退出程序运行并且退出 Visual Foxpro CANCEL : 退出程序运行
RETURN: 返回上级程序调用点,如果是主程序就表示退出程序。主程序可缺省此命令返回(结束),即默认使用了return
注意:上述命令执行完后都会自动clear memory。但是如果有数据库和表打开不会自动关闭,所以使用数据库和表后在程序结束时我们常常需要加命令: close all (2)清屏命令 CLEAR
(3)注释命令( NOTE 、* 和 &&)
注释的含义:程序员对程序语句功能的说明,执行程序的时候不执行注释中的内容,注释只起到一个对语句说明的目的。一般复杂程序中应有30%以上的注释。
重庆专升本计算机VF程序设计



