第六章 程序设计基础.pptx
第六章程序设计基础;结构化程序设计是根据不同的情况和条件,控制程序执行相应操作的语句序列。
一般遵循四条原则:自顶向下、逐步求精、模块化和限制使用转移语句。;1.结构程序设计与算法;2024-12-30;2024-12-30;2024-12-30;注释语句有以下三种书写格式:
①作为单独一行,以“*”开头,后跟注释信息。
②作为单独一行,以NOTE语句开头,后跟注释信息。
③与命令行同行,在命令行后加“”以及注释信息。;在VFP中,程序文件是一个利用命令语句和程序控制语句序列来表达算法功能的文本文件,其文件扩展名为.prg。;选择“文件”菜单中的“新建”命令,在“新建对话框”中选择“程序”选项,单击“新建文件”按钮,即可创建程序文件。;4.程序的运行;输入语句;语法格式:ACCEPT[提示信息]TO内存变量
功能:等待并提示用户从键盘输入一个字符串数据,并赋给内存变量。;输出语句;6.1结构化程序设计概述;例如:执行语句
Wait请输入一个数据tox
?x
Wait请输入一个数据toywindow
?y ;CLEARALL;6.MESSAGEBOX消息框函数;nDialogBoxType参数;;取值默认按钮
0 第一个按钮
256 第二个按钮
512 第三个按钮 ;取值按钮名
1 确定
2 取消
3 终止
4 重试
5 忽略
6 是
7 否;1.顺序结构;2.分支结构;2024-12-30;双分支语句;例6.3:根据三条边求三角形的面积。;IIF函数是根据条件成立与否返回不同的结果。;多分支语句;执行规则:
1)依次求解条件表达式,若某条件表达式的计算结果为.T.,则执行相应的语句组;
2)否则继续求解下一个条件表达式。
3)如果所有的条件表达式都为.F.,若有OTHERWISE,则执行语句组N+1,DOCASE语句执行结束,否则不执行任何语句,直接执行ENDCASE后面的语句。;例6.5:实现百分制成绩的等级转换,若成绩=90为优秀,成绩90且成绩=80为良好,成绩80且成绩=70为中等,成绩70且成绩=60为及格,成绩60为不及格。;3.循环结构;DOWHILE…ENDDO;例6.6逐条显示学生表(student)中所有来自“上海”的学生信息。;USEstudent
m=0
n=0
DOWHILENOTEOF()
IFstudent.gender=???
m=m+1
ELSE
n=n+1
ENDIF
SKIP
ENDDO
?男生人数+STR(m),女生人数+STR(n)
USE;FOR…ENDFOR/NEXT;s=0
n=1
DOWHILEn=10
s=s+n
n=n+1
ENDDO
?s;字符操作算法;SCAN…ENDSCAN;CLEAR
USEteacher
STORE0TOm
SCANFORteacher.education=博士
DISPLAY
m=m+1
ENDSCAN
?博士人数+STR(m)
USE;USEstudent
m=0
n=0
DOWHILENOTEOF()
IFstudent.gender=男
m=m+1
ELSE
n=n+1
ENDIF
SKIP
ENDDO
?男生人数+STR(m),女生人数+STR(n)
USE;6.3模块化程序设计;1.自定义函数;例6.12编写一个求n!的函数。;在命令窗口调用fact函数求5!,执行过程:;FUNCTIONfact
PARAMETERSn
p=1
FORi=1TOn
p=p*i
NEXT
RETURNp
ENDFUNC;1.自定义过程;例6.14编写一个过程求两个数据的和。;3.参数传递;在参数传递过程中要注意以下几点:
-实参和形参的数量要保持一致,并且形参和实参之间是一一对应的。
-形参变量名和实参变量名可以相同,也可以不同。;按引用传递是指实参把内存单元的地址传递给对应的形参。;CLEAR
A=10
B=20
SETUDFPARMSTOREFERENCE
DOSQWITH(A),B
?A,B
子过程
PROCEDURESQ
PARAMETERSX1,Y1
X1=X1*X1
Y1=2*X1
ENDPROC;4.过程文件;CLOSEPROCEDURE
功能:关闭当前打开的过程文件;章节重点和难点