1、程序(一)本章重点: 程序的编写,基本程序基本结构 ,子程序和过程基本概念:* 程序文件 *一、什么是程序 :命令序列。将完成某项任务所需执行的命令序列以文件的形式存储磁盘上。这种文件叫程序文件(指令:需要计算机执行的每个步骤)二、常见的程序设计方法1、 结构化程序设计(模块化) 参见书 P1202、 面向对象的程序设计 参见 P135三、程序三大基本结构顺序、分支(单分支、双向分支、多路分支) 、循环(单循环、多循环)IF 语句 DO CASE Do While For SCANENDIF ENDCASE ENDDO ENDFOR ENDSCAN四、什么是算法做某件事的方法。完成某个任务的方
2、法。例 1:求 a=3,b=2,c=5 求 a+b-c=?程序 test.prg 代码如下:a=3b=2c=5x=a+b-c?x思考: 1、 解一元二次方程的算法。ax 2+bx+c=0, 求 x= (-bSQRT(b2-4ac)/2a2、 求出 1-100 之间的奇数。 * 程序的建立、编辑和运行 *一、程序的扩展名:PRG 二、程序的编写: 1、 MODI COMM 程序名.PRG (.PRG 可省)2、 文件 = 新建 = 程序3、 建立项目管理器 = 新建程序4、 其它可编辑文本的软件: 记事本 写字板WORD其它程序编辑器注意: 希望编写程序之前事先设置好默认目录(set defa
3、to ) 然后我们编写的程序就会自动存储在那个目录中。例如:set defa to d:ksmodi comm Test (相当于是:modi comm. D:kstest.prg)三、程序的运行DO 盘符 路径程序名 四、VFP 中程序的分类:数学类程序、涉及到表操作的程序如果程序是涉及到表操作的程序,那么:1、 使用程序之间可以先加语句 CLEAR 和 CLOSE ALL2、 程序最后可以使用命令 CLOSE ALL然后使用 RETURN 或 CANCEL 或 QUIT最后注意书写程序的格式(书写错位)五、程序举例例 2:显示出所有入校总分在 580 分及以上的同学信息clearclose
4、 alluse 学生locate for 入校总分=580do while .not. eof()dispcontinuwait 按任意键继续enddo?结束close allcancel* 程序中的常用命令 *一、输入命令1、 赋值命令 = store 2、 输入数据的命令:(注意:输入数据是在程序执行的时候)INPUT 提示信息 TO ACCEPT 提示信息 TO &针对字符串WAIT 提示信息 TO TIMEOUT 注意:wait 输入的是一个字符(C 型)Input 和 Accept 的区别:Input 适用于全部类型内存变量,输入时需要加定界符Accept 只适用于 C 型,并且 C
5、 型不加定界符说明: 提示信息是 C 型, 它会在屏幕上原样输出 .Input 和 accept 在编写程序时语句都一样,只是执行程序(do)时,输入的东西不同下面请看程序实例:例 3:输入 a、b、c 的值,对 2ax+b=c 求 x 的值。ClearInput “现在计算 2ax+b=c,请输入 a 的值:” to aInput “请输入 b 的值:” to bInput “请输入 c 的值:” to cx=(c-b)/(2*a)?x 的值为: ,x &比较使用? x 的值为:+str(x,3)有何区别return 例 4:完成查询功能:在学生.dbf 中查找某个同学信息。clearclo
6、se alluse 学生index on 姓名 to xmaccept “请输入要查询人的姓名:” to nameseek nameif found()dispelse ?对不起,没有找到此人endifclose allreturn请思考:如果换成 input,输入的时候该怎么输入?例 5:删除学生.dbf 中的指定记录:clearclose alluse 学生listinput “请输入您想删除的记录号: ” to xdele reco xwait “你想彻底删除这条记录吗?(y/n)” to ask if ask=Y or ask=ypackendiflistclose all注意区分交换
7、方式和程序方式:有的命令可以在两种状态下执行(例如:刚才的输入命令) ,但有些命令只能在程序方式下执行(例如:循环语句)3、 格式输入输出:详见 P122 格式 常用方法:方法一 行,列 say 表达式方法二 行 1, 列 1 say 提示信息 1 get 内存变量 1行 2, 列 2 say 提示信息 2 get 内存变量 2READ 方法三 行,列 say 提示信息 get 内存变量 default 常量说明:内存变量必须先赋初值才能使用,否则就必须使用 default参数赋初值。输入的值类型应该于初值类型相同。如果没有 read 则表示只显示内容,不输入值。二、输出命令:1、?和?2、
8、行,列 say 表达式 说明:行和列都可以是表达式,常常可以使用函数 ROW( ) 和 COL( )ROW( )表示返回当前行的行号 COL( )表示返回当前列的列号看下面的例题:例 6:循环输入值cleardime xh(10)store 0 to xh10,10 say 请输入数字: get xh(1) i=2do while i=10row()+1,10 say 请输入数字 : get xh(i) i=i+1enddoreadlist memo like xh三、其它常用命令1、 CANCEL 、QUIT 和 RETURNQUIT: 终止程序运行并且退出 Visual Foxpro。CA
9、NCEL : 终止程序执行并关闭所有打开的文件。返回到系统的命令窗口。RETURN: 如果当前程序无上级程序,该命令用于结束程序的运行,返回到命令窗口。如果当前程序是一个子程序,该命令用于结束程序的运行,返回上级程序调用点注意:上述命令执行完后都会自动 clear memory . 但是如果有数据库和表打开不会自动关闭,所以使用数据库和表后在程序结束时我们常常需要加命令: close all 2、 注释命令 NOTE 、* 和 &注释的含义:程序员对程序语句功能的说明,执行程序的时候不执行注释中的内容,注释只起到一个对语句说明的目的。一般复杂程序中应有 30%以上的注释。3、 TEXT 语句:原样输出(参考书 P122)4、 系统设置命令:见教材 P123,注意勾画重点命令