当前位置:文档之家› 第六章 程序设计基础

第六章 程序设计基础

<语句组1> CASE <条件表达式2>
<语句组2> …… CASE <条件表达式N>
<语句组N> [OTHERWISE
<语句组N+1>] ENDCASE
28
执行规则: 1)依次求解条件表达式,若 某条件表达式的计算结果为.T., 则执行相应的语句组; 2)否则继续求解下一个条件 表达式。 3)如果所有的条件表达式都 为.F.,若有OTHERWISE,则 执行语句组N+1,DO CASE语 句执行结束,否则不执行任何 语句,直接执行ENDCASE后 面的语句。
因此,程序的基本组成包括输入、处理和输出三部分。
3
算法 算法是解决某个问题或处理某个事件的方法和步骤。 算法可以分为两大类: - 数值计算方法,如求解超越方程的根等。 - 是非数值计算方法,如排序、查找、求总和等。
算法的描述 算法可以采用不同的方法来描述,如自然语言、伪代
码、流程图或程序设计语言等。 最常用的算法图形描述工具是流程图,它使用的图形
符/18
4
流程图中常用的图形符号:
例如,根据三角形的三条边求三角形面积的算法步骤 用流程图描述:
2020/6/18
5
2020/6/18
6
2. 程序的书写规则
- 程序由若干个程序行组成,一行只能写一条命令。 - 在程序中命令书写应遵循命令书写规则。 - 可在程序中加入注释语句。 注释语句有以下三种书写格式: ① 作为单独一行,以“*”开头,后跟注释信息。 ② 作为单独一行,以NOTE语句开头,后跟注释信息。 ③ 与命令行同行,在命令行后加“&&”以及注释信息。
ENDCASE
30
3. 循环结构
编写程序时会遇到一些语句需要多次重复执行。例如, 求1+2+3+…+n的累加和,需要重复执行n次加法运算。
像这类问题可使用程序设计中的另一种结构,即循环结 构。
循环结构依据条件反复执行相同的语句组,这组被反复 执行的语句组称为循环体,循环体被反复执行的次数称为 循环次数。
7
3. 程序的建立
在VFP中,程序文件是一个利用命令语句和程序控制语 句序列来表达算法功能的文本文件,其文件扩展名为.prg。
利用命令建立程序文件 语法格式: MODIFY COMMAND [文件名|?]
功能:如果程序文件不存在,则建立一个程序文件,并 自动打开程序代码编辑器,输入程序代码;若程序文件已存 在,则自动打开该文件,进行编辑和修改。若选用“?”, 则由用户选择程序文件进行修改。
在VFP中常用的循环控制语句有三种: - DO WHILE…ENDDO - FOR…ENDFOR/NEXT - SCAN…ENDSCAN
31
DO WHILE…ENDDO DO WHILE…ENDDO循环用于条件控制循环的执行。 DO WHILE <条件表达式> <语句组1> [LOOP] [EXIT] <语句组2> ENDDO
2020/6/18
24
双分支语句 IF <条件表达式> <语句组A> ELSE <语句组B> ENDIF
执行流程: 条件表达式的值为.T.,则执行语句组A;条件表达式值
为.F.,执行执行语句组B。 两个语句组执行且仅执行一个。
25
例6.3:根据三条边求三角形的面积。
CLEAR INPUT "请输入第一条边" TO a INPUT "请输入第二条边" TO b INPUT "请输入第三条边" TO c s=0 p=(a+b+c)/2 IF a+b>c and a+c>b and b+c>a
第六章 程序设计基础
6.1 结构化程序设计概述 6.2 程序控制结构 6.3 模块化程序设计
6.1 结构化程序设计概述
结构化程序设计是根据不同的情况和条件,控制程序执 行相应操作的语句序列。
一般遵循四条原则:自顶向下、逐步求精、模块化和限 制使用转移语句。
结构化程序的本质是功能设计,即以功能为主进行设计 ,其方法是自顶向下、功能分解。
例如:执行语句 Input "请输入一个数据" to x ?x Input "请输入一个数据" to y ??y
&&输入3 &&输入"abc"
说明:? 表示在光标所在行的下一行开始显示;?? 表示 在当前光标位置开始显示。
13
6.1 结构化程序设计概述
WAIT语句 语法格式 WAIT ["<提示信息>"] [TO <内存变量名>] WINDOW 功能:暂停程序运行,并在屏幕上显示提示信息,等待 用户从键盘上输入一个字符,然后继续执行。 - <提示信息>用于提示用户进行操作的信息。 - TO <内存变量名>表示输入的字符保存到指定的内存 变量中。 - WINDOW 表示在屏幕右上角系统信息窗口中显示提 示信息的内容。
29
例6.5:实现百分制成绩的等级转换,若成绩>=90为优秀, 成绩<90且成绩>=80为良好,成绩<80且成绩>=70为中等, 成绩<70且成绩>=60为及格,成绩<60为不及格。
DO CASE CASE a>=90 b="优秀" CASE a>=80 b="良好" CASE a>=70 b="中等" CASE a>=60 b="及格" OTHERWISE b="不及格"
输入语句 INPUT 语句 语法格式:INPUT [提示信息] TO <内存变量> 功能:等待用户从键盘输入数据,并赋给内存变量。
例如:执行语句 Input "请输入一个数据" to x &&输入3 ?x 输入的数据可以是数值型、字符型等数据。如果是字符型 数据或日期型等,必须加定界符。
11
例如:执行语句 Input "请输入一个数据" to y ?y ACCEPT语句
例6.1:求圆的面积。 INPUT "请输入圆的半径" to r S=3.14*r*r ? "圆的面积是:", S
22
2. 分支结构 分支结构是根据条件表达式的计算结果判定执行不同
语句组的结构。VFP中提供了三种分支结构:单分支、双 分支和多分支语句
单分支语句 IF <条件表达式> <语句组> ENDIF
16
6. MESSAGEBOX消息框函数
用途:用于信息提示, 并要求用户做出响应。
格式为: m=MESSAGEBOX(cMessageText [, nDialogBoxType [, cTitleBarText]]) 参数说明:
cMessageText:消息框中显示的文本信息。 nDialogBoxType:一个数值表达式(缺省时为0),用于定义消息 框中按钮的个数、类型和显示图标的样式。 cTitleBarText:消息框的标题,缺省时为“Microsoft Visual FoxPro”。 m:变量,用于接收MESSAGEBOX函数的返回值。
图标样式取值
nDialogBoxType参数:n1+n2+n3。
取值
图标
16 32 48 64
nDialogBoxType参数:4+32+n3。
19
nDialogBoxType参数
默认按钮取值 nDialogBoxType参数:n1+n2+n3。
取值
默认按钮
0
第一个按钮
256
第二个按钮
512
第三个按钮
S=SQRT(p*(p-a)*(p-b)*(p-c)) ? "三角形的面积是", s ELSE WAIT WINDOW "输入的三条边a、b、c不能构成三角形" ENDIF
26
条件函数IIF IIF函数是根据条件成立与否返回不同的结果。 IIF(条件表达式,表达式1,表达式2) 执行规则:如果条件表达式的值为.T.,函数返回表达式
nDialogBoxType参数:4+32+256。
函数调用: m=MESSAGEBOX("是否退出系统?", 4+32+256, "退出")
20
MESSAGEBOX函数返回值
取值
按钮名
1
确定
2
取消
3
终止
4
重试
5
忽略
6

7

m=MESSAGEBOX("是否退出系统?", 4+32+256, "退出")
返回Windows操作系统。
15
CLEAR ALL 功能:关闭所有数据表文件,释放所有变量,清除所
有用户自定义的菜单和窗口,并将当前工作区设置为1区。 SET TALK ON|OFF
功能:打开或关闭人机对话。
说明:在SET TALK ON状态下,程序执行时把一些 非显示命令的执行结果显示出来;在OFF状态下,只有 输出命令的结果才能显示。系统默认状态为ON状态。
执行流程:当条件表达式的值为.T.时,执行循环体,直到条 件表达式的值为.F.,结束循环体,执行ENDDO后面的语句。
32
例6.6 逐条显示学生表(student)中所有来自“上海”的 学生信息。
14
相关主题