VFP6.0教案2.2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2.4程序设计基础22.4.1程序与程序文件程序的概念为完成某项任务,将VFP的若干命令按一定的逻辑结构编写为一个完整的命令文件程序。当运行程序时,系统会按一定的次序自动执行包含在程序文件中的命令。例题1:3编写程序时必须遵守的基本规则:(1)程序有若干行组成;(2)每一行有一条语句或一条命令组成。(3)每一行都以回车键结束,若一行写不完,可在分行处用续行符号“;”(4)程序末尾可加上结束语句.如:RETURN,CANCEL,QUIT等(5)注释语句:以*或NOTE开头的注释行:以&&注释放在行的后面使用;(6)SETTALKON/OFF会话开关42.4.2、程序文件的建立和执行一、程序文件的建立1.菜单方式2.命令方式:MODIFYCOMMAND[文件名]3.利用项目管理器中的”代码”项5二、执行程序文件:(1)菜单”程序”→”运行…”(2)命令:DO程序文件(3)在项目管理器”代码”项→选”程序”项→”运行”2.4.3简单的输入输出命令(交互式命令)1.INPUT命令:格式:INPUT[字符表达式]TO内存变量功能:从键盘上接受一个数据给指定的内存变量,以回车键结束输入.一个数据:可以是C、N、L、D72.ACCEPT命令命令格式:ACCEPT[字符表达式]TO内存变量功能:从键盘上接受一个字符串赋给指定的内存变量,以回车键结束输入.输入的字符串不需要加定界符83.WAIT命令格式:WAIT[字符表达式][TO内存变量][WINDOW[AT行,列]][NOWAIT][CLEAR|NOCLEAR][TIMEOUT数值表达式]功能:从键盘上接受一个字符给指定的内存变量92.5程序的基本结构结构化程序设计:顺序结构程序:按照命令或语句的排列顺序依次执行选择结构程序循环结构程序子程序调用10顺序程序结构顺序程序由语句行组成,程序按语句自上而下顺序执行。如:use学籍表AppendblankEdituse112.5.1选择结构(分支结构)一.条件语句:1.单路选择分支结构格式:IF条件表达式命令序列1ENDIF例题ENDIF后面的语句条件表达式命令序列.T..F.输入初值例1从键盘上输入两个数,计算它们的商,要求能够判断除数为零的情况。*程序文件名:EX7_1.PRG*通过键盘输入两个数,计算它们的商SETTALKOFFCLEARINPUT输入被除数:TOxINPUT输入除数:TOyIFy0z=x/y?x/y=,zENDIFRETURNY0Z=X/Y.T..F.ENDIF后面的语句132.双路选择分支结构格式:IF条件表达式语句序列1ELSE语句序列2ENDIF例题条件表达式命令序列1.T..F.命令序列2ENDIF后面的语句例2利用双路选择分支结构重新编写例7.1程序。*程序文件名:EX7_2.PRG*通过键盘输入两个数,计算它们的商SETTALKOFFCLEARINPUT输入被除数:TOxINPUT输入除数:TOyIFy0z=x/y?x/y=,zELSE?“错误!除数不能为零ENDIFRETURNY0Z=X/Y.T..F.?”错误!除数不例题3(P162例4)邮件计费:重量W100克,每克0.05元重量100克,超出部分按0.02元计费w*0.05w=100100*0.05+(w—100)*0.02w100编辑程序:)(xfY0W*0.05.T..F.W*0.05+(W-100)*0.02W=100ENDIF后面的语句16IF条件1语句序列1ELSEIF条件2语句序列2ELSEIF条件3语句序列3ELSE语句序列4ENDIF第三层ENDIF第二层ENDIF第一层17IF条件1IF条件2IF条件31语句序列1ELSE语句序列2ENDIF并列第三层1ELSEIF条件32语句序列3ELSE语句序列4ENDIF并列第三层2ENDIF第二层ENDIF第一层183.多路选择分支结构格式:DOCASECASE条件表达式1命令序列1CASE条件表达式2命令序列2…………CASE条件表达式n命令序列n[OTHERWISE命令序列n+1]ENDCASE19多路选择分支结构流程图条件表达式1命令序列1.T..F.条件表达式2命令序列2.T..F.条件表达式n命令序列n.T..F.命令序列n+1OTHERWISEENDCASE后面的语句例4设计一个程序,要求从键盘输入两个数和一个运算符(+、-、*、/),根据输入的运算符计算两个数的和、差、积或商。如果输入了错误的运算符,则应显示错误信息。EX7_3.PRGSETTALKOFFCLEARINPUT输入第一个数:TOx15INPUT输入第二个数:TOy5WAIT输入运算符:TOobDOCASECASEob=+?x,ob,y,=,x+y15+5=20CASEob=-?x,ob,y,=,x-y15-5=10CASEob=*?x,ob,y,=,x*y15*5=75CASEob=/?x,ob,y,=,x/y15/5=3OTHERWISE?运算符错误!ENDCASERETURN212.5.2循环程序结构循环结构在程序设计中表现为重复执行某一个程序段。在程序段中,某些数据有规律地变化,每次执行都会得到不同的结果,直到满足一定条件时才退出这个程序段,这种能在给定条件下重复执行的程序称为循环程序。程序的这种结构称为循环结构。1.DOWHILE循环2.FOR循环3.SCAN循环221.DOWHILE循环格式:DOWHILE条件表达式语句序列1ENDDO条件表达式语句序列.T.ENDDO后面的语句.F.循环体23.T.条件表达式EXIT.F.循环体LOOPENDDO后面的语句格式:DOWHILE条件表达式语句序列1[LOOP][EXIT]ENDDO例5从键盘输入一个字符,若该字符是“X”,则结束程序的运行,否则一直等待用户的输入。算法一:程序文件名:EX7_4.PRG*接受键盘输入,直到接收到字符“X”,程序退出SETTALKOFFCLEARc=“DOWHILEcx.AND.cXWAIT输入字符X退出!TOcENDDORETURN例5算法二:*程序文件名:EX7_4_.PRG*接受键盘输入,直到接受到字符“X”,程序退出*否则,显示输入错误信息,然后继续等待用户输入SETTALKOFFCLEARc=DOWHILE.T.WAIT输入字符X退出!TOcIFc=x.OR.c=XEXITELSE?输入的字符,c,错误!LOOPENDIFENDDORETURN262.FOR循环格式:FOR循环变量=初值TO终值[STEP步长]命令序列[EXIT][LOOP]ENDFOR|NEXT例题循环变量超过终值?命令序列循环变量=初值循环变量=循环变量+步长TFENDFOR后面的语句例6计算1到100之间的所有偶数之和。*程序文件名:EX7_5.PRG*计算1到100之间的所有偶数之和SETTALKOFFCLEARs=0FORk=2TO100STEP2s=s+kNEXT?2+4+……+,k,=,sRETURN例7显示”学籍表”中的所有纪录,要求每显示3行,使程序暂停,然后按任意键继续显示下面的3行。*程序文件名:EX7_6.PRGSETTALKOFFCLEAROPENDATABASE学生USE学籍表DOWHILE.NOT.EOF()&&是否到达数据表末尾CLEAR&&清除屏幕FORi=1TO3&&显示3条纪录IFEOF()&&是否到达数据库末尾EXITENDIFDISPLAY&&显示1条纪录SKIP&&纪录指针移到下一条纪录ENDFORWAIT按任意键继续……&&暂停,等待用户按键ENDDOUSERETURN293.SCAN循环格式:SCAN[范围][FOR条件表达式]命令序列[LOOP][EXIT]ENDSCAN功能说明:该命令的功能是在指定的范围内查找满足指定条件的记录。具体做法是:在当前打开的数据库中移动记录指针,对每个满足条件的记录执行“命令序列”(循环体)的操作。SCAN会自动将指针先指向满足条件的第一条记录,执行一次循环体,再自动将指针移到下一条满足条件的记录,直到对数据库文件的每一条记录检查操作完毕。例8逐个显示”学籍表”中入学成绩大于400分的所有女生的”姓名,性别,入学成绩”.程序文件名:EX7_7.PRGCLEAROPENDATABASE“e:\学籍管理\学生USE学籍表SCANALLFOR入学成绩400IF性别=男LOOPELSE?姓名,性别,入学成绩ENDIFWAITENDSCANUSECLOSEDATABASERETURN312.5.3编程实例例题7.8求10!(教材P170例7.12)P=1FORK=1TO10step1P=P*KENDFOR?P322.6多模块程序子程序VFP中允许子程序调用,子程序也是结构化程序设计的主要特点,子程序类似于函数。332.6.1模块的定义和调用过程的格式:PROCEDURE过程名命令序列[RETURN[表达式]][ENDPROCEDURE]模块的调用格式:(1)DO文件名/过程名(2)文件名/过程名()打开过程文件:SETPROCEDURETO[过程文件1[,过程文件2,…]关闭过程文件:RELEASEPROCEDURE[过程文件1[,过程文件2,…]34程序调用主程序…DO子程序1…RETURN子程序1…DO子程序2…RETURN子程序2………RETURN子程序的嵌套调用A35主程序…DO子程序1…RETURN主程序1…DO子程序2…RETURN主程序2………RETURNTOMASTER子程序的嵌套调用Cmn子程序的嵌套调用B36**子程序EX1.PRG?”这是第一个子程序”DOEX2RETURN**子程序EX2.PRG?”这是第二个子程序”RETURN**主程序EX.PRGSETTALKOFF?”显示子程序EX1的输出”DOEX1SETTALKONRETURN37本章重点1.掌握变量和字段的类型2.理解常量和变量的概念3.掌握变量的操作方法4.了解变量的作用域的概念5.了解数组的使用方法6.掌握VFP名称的命名规则7.掌握注释的方法8.掌握操作符的使用9.掌握常用函数的功能和使用10.掌握表达式的分类和使用11.掌握分支和循环程序结构12.能够熟练地编写简单的小程序例题例7_1从键盘上输入两个数,计算它们的商,要求能够判断除数为零的情况。例7_2利用双路选择分支结构重新编写例7_1程序。例7_3设计一个程序,要求从键盘输入两个数和一个运算符(+、-、*、/),根据输入的运算符计算两个数的和、差、积或商。如果输入了错误的运算符,则应显示错误信息。例7_4从键盘输入一个字符,若该字符是“X”,则结束程序的运行,否则一直等待用户的输入。例7_5计算1到100之间的所有偶数之和。例7_6显示XS数据表中的所有纪录,要求每显示3行,使程序暂停,然后按任意键继续显示下面的3行。例7_7逐个显示”学籍表”中入学成绩大于400分的所有女生的”姓名,性别,入学成绩”.程序文件名:EX7_7.PRG补充习题:1.编写一个程序,计算下面数学式的结果要求用FOR和DO-WHILE循环结构分别实现。2.编写一个程序,要求从键盘输入的一个整数,然后判断该数是否能够被3整除,如果能被3整除,则显示“该数是3的倍数”,否则显示“该数不能被3整除”。3.教材P171例题7.14输出3~100之间的所有素数.10016141211100405.1数据类型和字段类型数值型N接受数字数据n浮点型F浮点数(精确运算的数据)日期型D日期数据8用花括号括起日期时间型T同时接受日期和时间8用花括号括起双精度型B双精度数据,比数值型和浮点型可表示长度多一倍8整型I整数4逻辑型L接受逻辑数据1用.T.或.F.表示备

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功