计算机二级-程序设计.ppt_第1页
计算机二级-程序设计.ppt_第2页
计算机二级-程序设计.ppt_第3页
计算机二级-程序设计.ppt_第4页
计算机二级-程序设计.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章VisualFoxPro程序设计基础,第3章VisualFoxPro程序设计基础,知识要点:1程序与程序文件的基本概念;2简单的输入输出命令;3程序的三种基本结构;4多模块程序设计及变量的作用域。,3.3.1程序文件的建立与执行,3.3.1.1程序的基本概念程序是能够完成一定任务的命令的有序集合。程序文件(命令文件)存放程序的文本文件。(.PRG),建立程序文件的优点:(1)运行程序文件,会自动执行程序文件中的各条命令(2)程序文件中的命令可以长期保存,并且可以多次运行,3.3.1程序文件的建立与执行,程序文件建立方法:1、利用菜单:文件|新建|程序2、利用命令:MODIFYCOMMAND,程序文件执行方法:1、菜单方式:程序|运行2、利用命令:DO,别忘了保存CTRL+W,3.3.1.2程序文件的建立与执行,3.3.1程序文件的建立与执行,3.3.1程序文件的建立与执行,四种命令的功能:CANCEL:终止程序的执行,清除所有的私有变量,返回到命令窗口;DO:调用执行另一个程序;RETURN:结束程序,返回到调用它的上级程序继续运行,若无上级程序则返回到命令窗口;QUIT:结束程序的执行,并退出VisualFoxPro系统,返回到操作系统。,3.3.1程序文件的建立与执行,3.3.1.3简单的输入输出命令WAITACCEPTINPUT,3.3.1程序文件的建立与执行,1.简单的输入输出命令(WAIT)格式:WAIT“提示信息”TOWINDOWAT,TIMEOUT功能:显示提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时,程序继续运行,3.3.1程序文件的建立与执行,简单的输入输出命令(WAIT),3.3.1程序文件的建立与执行,简单的输入输出命令(WAIT),(1)WAIT命令只接收单个字符,输入字符时,不需要加定界符,系统将输入的字符赋值给;若用户是按回车键或者单击鼠标左键,系统将空串赋值给;(2)若省略,则显示默认的提示信息“按任意键继续”;否则要加字符串定界符;(3)通常,显示在VisualFoxPro主窗口或当前用户自定义窗口中,如果指定了WINDOW子句,则在主窗口的右上角会出现一个WAIT提示窗口,用来显示提示信息,也可以用AT短语指定窗口的显示位置;(4)若选用NOWAIT短语,系统将不等待用户按键,继续向下执行程序;(5)TIMEOUT子句用来设定等待的时间,以秒数为单位。超过此时间系统将不再等待用户按键,自动往下执行程序。,注意,3.3.1程序文件的建立与执行,2.简单的输入输出命令(ACCEPT)格式:accept“提示信息”to功能:显示提示信息,等待用户从键盘输入字符串,并将该字符串存入内存变量中,3.3.1程序文件的建立与执行,简单的输入输出命令(ACCEPT),(1)ACCEPT命令只接收字符串,输入字符串时,不需要加定界符;(2)可省略,否则要加字符串定界符;(3)可以不输入内容而直接按回车,系统会把空串赋给指定的;(4)此命令根据用户需要既可以输入到命令窗口中执行,也可以编写在程序中。,注意,3.3.1程序文件的建立与执行,3.简单的输入输出命令(INPUT)格式:input“提示信息”to功能:显示提示信息,等待用户从键盘输入数据,并将输入值存入内存变量中,用户可以输入任何合法的表达式。,3.3.1程序文件的建立与执行,简单的输入输出命令(INPUT),(1)用户从键盘输入的数据可是各种类型的常量、变量或者表达式,但不能不输入内容而直接按回车键;(2)可省略,否则要加字符串定界符;(3)从键盘输入各种类型数据时,需要加相应的定界符;(4)此命令根据用户需要既可以输入到命令窗口中执行,也可以编写在程序中。,注意,3.3.1程序文件的建立与执行,INPUT、ACCEPT和WAIT的区别input:可接受各种类型数据accept:只接受字符串wait:只接受单个字符,3.3.2程序结构,3.3.2.1顺序结构3.3.2.2选择结构3.3.3.3循环结构,3.3.2程序结构,3.3.2.1顺序结构按命令在程序中出现的先后次序执行。,3.3.2程序结构,3.3.2.2选择结构在程序执行时,根据不同的条件,选择执行不同的程序语句执行。,条件语句,分支语句,选择结构,单向条件语句,双向条件语句,3.3.2程序结构,3.3.2.2选择结构(条件语句),1单向条件语句,语句格式:IF条件表达式语句序列ENDIF,3.3.2程序结构,3.3.2.2选择结构(条件语句),关闭或打开状态信息,1单向条件语句,Eg1:求圆的面积(半径0),3.3.2程序结构,3.3.2.2选择结构(条件语句),2双向条件语句,语句功能:该语句首先计算条件表达式的值,当条件表达式的值为真时,执行语句序列1中的命令;否则,执行语句序列2中的命令;执行完语句序列1或语句序列2后都将执行ENDIF后面的第一条命令。,3.3.2程序结构,3.3.2.2选择结构(条件语句),2双向条件语句,Eg2:求圆的面积(半径0),3.3.2程序结构,3.3.2.2选择结构(条件语句),3.3.2程序结构,3.3.2.2选择结构(条件语句),2双向条件语句,Eg3:编写密码校验程序,设密码为“ABC”,3.3.2程序结构,3.3.2.2选择结构(分支语句),根据多个条件表达式的值,选择一个执行。,语句格式:DOCASECASE条件表达式1CASE条件表达式2CASE条件表达式NOTHERWISEENDCASE,3.3.2程序结构,3.3.2.2选择结构(分支语句),Eg4:求分段函数0(x5)F(x)=2x2-x(-1=x1)x(1=x5),3.3.2程序结构,3.3.2.2选择结构,1)IFENDIF和DOCASEENDCASE必须成对使用。2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。3)语句序列可以由一条或多条命令组成。4)DOCASEENDCASE命令,每次最多只能执行一个语句序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的语句序列,然后执行ENDCASE的后面的第一条命令。,注意,3.3.2程序结构,3.3.3.3循环结构有一部分程序被反复地执行。,循环结构,当型循环:dowhileenddo计数循环:forendfor数据库扫描:scanendscan,不知道循环次数,己知循环次数,处理表中数据,3.3.2程序结构,3.3.3.3循环结构(当型循环)(1)不带有LOOP和EXIT语句的当型循环,3.3.2程序结构,3.3.3.3循环结构(当型循环),i=1=100s=s+i=0+1=1i=1+1=2,i=2=100s=s+i=1+2=3i=2+1=3,i=3=100s=s+i=3+3=6i=3+1=4,i=101=100.F.,i=100s=s+i=s+100i=100+1=101,3.3.2程序结构,3.3.3.3循环结构(当型循环),逐条输出1982年出生的学生记录,3.3.2程序结构,3.3.3.3循环结构(当型循环)(2)带有LOOP和EXIT语句的当型循环,LOOP语句:强行返回到循环开始语句。EXIT语句:强行跳出循环,接着执行ENDDO后的语句,3.3.2程序结构,3.3.3.3循环结构(当型循环),编写程序,显示“学生”表中的前8条出生在88年之前的学生记录,3.3.2程序结构,3.3.3.3循环结构(计数循环),FOR-ENDFOR语句,3.3.2程序结构,3.3.3.3循环结构(计数循环),i=1=100s=s+i=0+1=1i=1+1=2,i=2=100s=s+i=s+2i=2+1=3,i=100=100s=s+i=s+100i=100+1=101,i=1010?x%10 x=int(x/10)enddo,3.3.3模块化程序设计,引例,输出如下所示的信息。*HelloWorld!*,3.3.3模块化程序设计,3.3.3.1过程文件的建立1、过程的定义,PROCEDURERETURNENDPROC,PROCEDURE命令表示一个过程的开始,并为过程命名。ENDPROC表示一个过程的结束,过程也可以以RETURN语句终止。RETURN语句表示将控制返回到调用程序中调用命令的下一语句,并返回表达式的值,若RETURN命令不带,则返回逻辑真.T.。,3.3.3模块化程序设计,3.3.3.1过程文件的建立2、打开过程文件3、关闭过程文件,SETPROCEDURETOADDITIVE,SETPROCEDURETOCLOSEPROCEDURE,3.3.3模块化程序设计,3.3.3.2过程文件的调用或例:有如下程序,说出此程序的运行结果。X=0DOP1?XPROCEDUREP1&过程文件P1X=1RETURNENDPROC该程序运行的结果为:1,DOWITH,(),3.3.3模块化程序设计,带参数的调用,格式1(程序见下方备注):,3.3.3模块化程序设计,带参数的调用,格式2(程序见下方备注):,3.3.3模块化程序设计,3.3.3.3过程调用中的参数传递1、发送参数(即调用过程)主程序调用子程序或过程时,在主程序中使用发送参数语句传递参数。格式为:,格式1:DO|WITH格式2:|(),3.3.3模块化程序设计,3.3.3.3过程调用中的参数传递2、接收参数在子程序、过程或自定义函数中使用接收参数语句接收参数。格式为:对参数传递的说明如下:(1)PARAMETERS|LPARAMETERS必须是被调用程序的第一条语句;(2)PARAMETERS定义的形参变量是私有变量;LPARAMETERS定义的形参变量是局部变量;(3)实参可以是常量、变量和一般形式表达式,调用模块程序时,把实参传递给对应的形参;形参数目大于等于实参数目,多余的形参取.F.。,格式1:PARAMETERS格式2:LPARAMETERS,3.3.3模块化程序设计,3.3.3.3过程调用中的参数传递3、参数传递方式,按值传递,形参变量值的改变不会影响实参变量的值,即新值不返回;,当形参变量的值改变时,实参变量值也随之改变,即新值返回。,按地址传递(也称按引用传递),3.3.3模块化程序设计,3.3.3.3过程调用中的参数传递,采用格式1调用模块程序时,如果实参是常量或一般形式的表达式,则按值传递;如果实参是变量,这时传递的是变量的地址,即按地址传递。采用格式2调用模块程序时,默认情况下是按值方式传递参数。如果实参是变量,可以通过SETUDFPARMS命令重新设置参数的传递方式。格式为:SETUDFPARMSTOVALUE|REFERENCETOVALUE:按值传递。TOREFERENCE:按地址传递。此命令不能改变用DOWITH格式调用过程时的参数传递方式。如果将实参用括号括住,则实参变成一般形式的表达式,这时强制参数传递以按值传递方式进行。,3.3.3模块化程序设计,值传递与地址传递,100,100,x2,y2,100,x1,y1,2008年4月下列程序段执行以后,内存变量X和Y的值是ClearStore3toxStore5toyPlus(x),y)?x,yProcedureplusParametersa1,a2a1=a1+a2a2=a1+a2Endproc提示:该格式默认情况为按值传递,C,3.3.3模块化程序设计,A)813B)313C)35D)85,2009年9月下列程序段执行时在屏幕上显示的结果是X1=20X2=30SetudfparmstovalueDotestwithx1,x2?x1,x2ProceduretestParametersa,bx=aa=bb=xEndproc,B,3.3.3模块化程序设计,A)3030B)3020C)2020D)2030,3.3.3模块化程序设计,3.3.3.4用户自定义函数函数定义的语法格式:FUNCTIONPARAMETERRETURN函数调用的语法格式:函数名(),3.3.3模块化程序设计,例,计算阶层调用形式:?CF(5),3.3.4变量的作用域,变量分类:,公共变量(public)私有变量(private)局部变量(local),先定义后使用。,在任何模块中都可以使用,不用定义,直接使用,在本模块和下级模块中用,先定义后使用,在本模块中用,3.3.4变量的作用域,3.3.4.1公共变量(public)指在任何模块中都可以使用的变量。公共变量必须先定义,后使用。定义格式:3.3.4.2局部变量(local)指只能在建立它的模块中使用的变量。局部变量不能在他的上层或下层模块中使用。当建立它的模块程序运行结束时,局部变量自动释放。定义格式:,PUBLIC,LOCAL,3.3.4变量的作用域,3.3.4.3私有变量(private)指在程序中直接使用,而没有通过PUBLIC或LOCAL命令定义的变量。私有变量只在定义它的模块以及其下层模块中有效,而在定义它的模块运行结束时自动清除。,3.3.4变量的作用域,范围示意图,3.3.4变量的作用域,3.3.4.4隐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论