收藏 分销(赏)

程序设计初步PPT课件.ppt

上传人:精**** 文档编号:6540677 上传时间:2024-12-12 格式:PPT 页数:71 大小:355.50KB 下载积分:16 金币
下载 相关 举报
程序设计初步PPT课件.ppt_第1页
第1页 / 共71页
程序设计初步PPT课件.ppt_第2页
第2页 / 共71页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章 程序设计初步,两类工作方式,一、交互操作方式 即命令执行方式,二、程序执行方式,4.1,程序文件,1,.,VFP程序由代码组成,代码包括以命令形式出现的指令、函数和VFP可以理解的任何操作。这些指令包含在“命令”窗口、程序文件、表单设计器与类设计器的事件或方法程序代码窗口、菜单设计器的过程代码窗口、报表设计器的过程代码窗口中。,使用“命令”窗口,可以在“命令”窗口中键入VFP命令并按Enter键执行。若要重新执行该命令,还可以将光标移到此命令所在行并按Enter键。,2,.,甚至可以在“命令”窗口中像独立程序一样执行多行代码。要在“命令”窗口中运行多行代码,可以按下述方法执行:,(1)选取代码行。,(2)按Enter键或右击并在快捷菜单中选择“运行所选区域”。,因为“命令”窗口是一个编辑窗口,所以在编辑命令时可以使用VFP提供的编辑工具。在“命令”窗口中可以修改、插入、删除、剪切、复制和粘贴正文。,3,.,在“命令”窗口中执行命令的优点是:能够立即执行被键入的命令,不需要将其保存为文件并用程序方式执行。此外,,在菜单或对话框中所作的选择可以马上转换成“命令”窗口中的命令。用户可以将这些命令复制并粘贴到VFP程序中,,然后重复执行这些程序。这样做可以很容易地重复执行成百上千条的命令。,2、创建程序,VFP程序是包含一系列命令的文本文件。,4,.,VFP6支持,过程化程序设计,和,面向对象程序设计,两种程序设计与开发的类型。,下面是一个完整的VFP过程化程序,可以引出几个基本概念。,*功能说明:求圆形的面积。,*文件名:L401.PRG,CLEAR,SET TALK OFF,&,不显示命令处理信息,INPUT 请输入圆的半径,半径=TO R,S=PI()*R*R,?半径为+ALLTRIM(STR(R)+的圆,面积=,S,SET TALK ON,&,显示命令处理信息,RETURN,5,.,1、,从形式上看,VFP的程序是由若干有序的命令行组成,且满足下列规则:,(1),一个命令行内只能写一条命令,命令行的长度不得超过,2048,个字符,命令行以回车键结束。,(2),一个命令行可以由若干个物理行组成,即一条命令在一个物理行内写不下时,可以分成几行。换行的方法有两种:一种是在物理行的末尾加分号“;”,表示下一行输入的内容是本行的继续。,6,.,另一种是系统自动换行,即输入程序时,只管逐条命令输入,无需考虑本条语句是否超过屏幕行宽的最大限度,,当输入的语句超过屏幕的最大行宽时,系统自动换行。,输入时只需在一行结束时按回车键,通知系统本命令行输入完毕。,(3),为便于阅读,可以按一定的格式输入程序,即一般程序结构左对齐,而控制结构内的语句序列比控制结构的语句缩进若干格。,2、,从功能上看,,程序可以分为三个部分:,第一部分是程序的说明部分,,在本例程序中是前面的四行,一般用于说明程序的功能、文件名等需要说明的有关信息。,7,.,第二部分是进行数据处理的部分,,在本例程序中是从第五行开始的三行。通常任何一个有意义的程序,总是要有一些原始数据,否则,这个程序就没有处理对象。同样,程序运行的结果也有必要显示或打印出来,否则,用户将不知道程序干了一些什么。,因此,第二部分程序常包括下列三个部分,依次为:提供原始数据部分、数据处理部分、输出结果部分。,第三部分是程序的控制返回部分,,在本例中就是最后二条命令。它控制程序返回到调用该程序的调用处。,8,.,过程化程序设计与面向对象程序设计,过程化程序设计:,它是采用结构化编程语句来编写的程序。这类方法的特点是容易把一个复杂的程序分解为若干个较小的过程,每个过程都可进行独立的调试。这类设计方法发展的总思想是从程序员角度考虑使程序设计更简单,而较少从使用角度去考虑。使用,这类方法设计的程序流程完全由程序员控制,,使用者只能做由程序员预先安排好的事情。,9,.,面向对象程序设计:,这类程序设计思想是面向对象,即设计的重要任务在于描述对象。程序是由,事件驱动,的,因而,在执行过程中,持续等待的是一个发生在对象上的事件。而发生什么事件则要看使用者的操作,如单击、双击鼠标等。至于下一步的程序流向,则要看驱动的是什么事件。这类程序设计的主要目的是从任何方便与简化使用入手,,由使用者控制程序流向,,这在一定程序上增加了编程的难度。,10,.,4.1.1 程序文件的建立与执行,一、程序文件的建立与修改,在VFP中,一个程序文件就是一个,ASCII文本文件,,因而可用各类编辑工具来建立。在VFP中有下面二种简易方法来建立:,在,【文件】,菜单下的,【新建】,菜单项中,选择,“程序”,可选项。,在命令窗口中使用命令,格式:MODIFY COMMAND/?,功能:,打开文本编辑窗口,编写程序代码。,11,.,参数描述:,:,为可选项,指定打开或创建的程序文件名。若不指定新建程序文件的扩展名,VFP自动指定.PRG为扩展名。MODIFY COMMAND命令支持含有“*”和“?”通配符的文件梗概。名称与这个梗概匹配的每一个文件都在编辑窗口中打开。若省略文件名,将给打开的编辑窗口赋一个初始名称“程序1.PRG”。当关闭编辑窗口时,可以用另外的文件名保存该文件。,12,.,?:,显示“打开”对话框。可以从中选择一个已有程序或输入要创建的新程序名。,说明:,修改程序文件之后,更新过的文件将写到磁盘上。除非在配置文件中用TEDIT指定一个外部编辑器,否则,一般使用VFP的内置编辑器。,13,.,【例4-2】,用户通过VFP6的命令窗口建立上例程序文件。,在VFP6的命令窗口中输入下条命令后按回车键。,MODIFY COMMAND L401,打开程序编辑窗口,在程序编辑窗口中输入程序代码,用Ctrl+W存盘退出编辑窗口,或单击程序编辑窗口上的【关闭】按钮,在弹出的对话窗口中确定存盘,生成L401.prg文件。,14,.,二、程序的运行,下面的任一方法均可运行程序:,选择,【程序】,菜单下的,“运行”,菜单,利用“运行”对话框选择要运行的程序;,在命令窗口中输入如下命令:,DO ,15,.,系统就会运行这个程序。如果文件不加扩展名,系统会假定它具有.PRG的扩展名,,如果想运行一个具有其它扩展名的命令文件时,在输入命令时必须给出这个命令文件的全名。,如:要运行上例中编辑的程序,可以在命令窗口中输入:,DO L401,然后按回车键执行。,16,.,设计程序,就是用一系列命令存储数据并操作这些数据。程序设计的原材料是数据和数据的存储容器,而处理这些原材料的工具是命令、函数的操作符。,4.1.2 VFP的交互式输入输出命令,17,.,1、交互式输入命令,(1)字符接收语句,(P331),格式:ACCEPT TO,功能:,将从键盘上接收的字符串数据存入指定的内存变量中。提供此命令是为了向后兼容,在,面向对象程序设计,中可以用文本框控件代替。,参数描述:,:,指定提示信息字符串,其后是数据输入区。在VFP中,提示文本的字体与VFP主窗口的字体相同。但输入的字符数据用9磅FoxFont字体显示。,18,.,:,指定存储字符数据的内存变量或数组元素。如果没有定义此内存变量,ACCEPT将自动创建。如果没有输入数据就按Enter键,内存变量或数组元素则为空字符串。,说明:,在VFP中可用表单设计器或DEFINE CLASS来创建文本框控制。ACCEPT命令允许直接向内存变量或数组元素输入字符数据,,输入时不需要用引号将字符括起来。,19,.,执行此语句时,先在屏幕上显示,光标紧随其后,然后暂停程序运行,等待用户从键盘上输入信息。输入的信息可以是任何可显示的ASCII码字符串,并以回车键结束。系统将此字符串信息存入指定的内存变量中,然后,继续运行暂停的程序。,【例】,试编程完成下述功能:从键盘随机输入某个表的文件名,要求打开并显示此表的内容。,在命令窗口输入下列命令:,MODIFY COMMAND L403,(文件名中的扩展名.PRG可省略,以后不再说明),20,.,屏幕显示编辑窗口。在编辑窗口输入如下程序代码后用Ctrl+W存盘,返回命令窗口。,CLEAR,SET TALK OFF,ACCEPT 请输入表文件名 TO FileName,USE&FileName,LIST,USE,RETURN,说明:程序中第四句使用了宏代换函数,这是由于FileName本身不是文件名,而其内容才是文件名。,P131例4-4、例4-5,21,.,(2)通用数据接收命令,ACCEPT语句只能给字符型内存变量提供数据。如果用户想给其它类型的内存变量提供数据,可以使用下列命令:,格式:INPUT TO,功能,:用于接收从键盘上输入的表达式,并将计算结果存入指定的内存变量或数组元素中。包含此命令也是为了提供向后的兼容性。在VFP中,该命令也可以用文本框控件代替。,22,.,参数描述:,:,提示信息,提示用户输入数据。,:,指定一个内存变量或数组元素,存储从键盘输入的数据。如果指定的内存变量或数组元素不存在,VFP将自动创建该内存变量或数组。,说明:,INPUT语句与ACCEPT语句的执行过程相同,功能相似。,的数据类型取决于输入数据的类型。可以,为数字型、字符型、日期型和逻辑型,。,23,.,INPUT语句与ACCEPT语句的区别,是:ACCEPT命令只能接收字符串,而INPUT语句可以接收任意类型的VFP表达式;如果输入的是字符串,ACCEPT语句不要使用字符型定界符,而INPUT语句必须用定界符括起来。,24,.,一、数值型常量,1.定点法 2.科学计数法,命令中直接写。,例:显示工资在3000.00以上人员,LIST FOR 工资=3000.00,二、字符型常量,需用单引号、双引号或方括号,括起来。,例:显示工资在2000.00以下的女职工,LIST FOR 工资=1970/01/01,设置系统日期格式:,SET DATE TO YMD,&中国式,MDY美国式,DMY欧洲式,25,.,四、逻辑型常量,两端用小数括起来,例:显示党员职工,LIST for 党员否=.T.,或,LIST for 党员否,例:显示非党员职工,LIST for 党员否=.f.,或,LIST for NOT 党员否,五、货币型常量,以$符号开头,六、定义字符常量,#DEFINE PI 3.1415926,26,.,【例】,试编程完成下列功能。从键盘上随机输入一个正数,以此数为半径,求圆面积和球体积,并输出结果。,程序如下:,*L404.PRG,CLEAR,CTALK=SET(TALK),SET TALK OFF,INPUT 半径=TO R,S=PI()*R*R,V=4/3*PI()*R*3,?圆面积=,S,?球体积=,V,SET TALK&CTALK,RETURN,程序中的第一行为注释行,说明此程序文件名;第四行的功能是不显示命令处理信息,第十行的功能是恢复显示命令处理信息。,在命令窗口中执行:,DO L404,屏幕显示,半径=,输入10后按Enter键,10,显示结果,圆面积=314.16,球体积=4188.790205,P304 SET状态,27,.,(3)输入一个字符语句,格式:WAITTO,功能:,暂停正在运行的程序,直到输入一个字符为止。,此语句与ACCEPT语句的功能部分相似。若选择TO 子句,则将输入的单个字符存入指定的内存变量。若直接输入回车键,则内存变量中存入空字符串。内存变量的类型为字符型。,若选择子句,执行此命令时,屏幕上将显示提示信息,否则,屏幕上将显示“按任意键继续”。,28,.,WAIT语句主要用于下列两种情况。,暂停程序的运行,以便观察程序的运行情况,检查程序运行的中间结果。,根据实际情况输入某个字符,以控制程序的执行流程。比如,在某应用程序的“YN”选择中,常用此命令暂停程序的执行,等待用户回答“Y”或“N”,由于这时只需输入单个字符,也不用按回车键,操作简便,响应迅速。,P129例4-2,29,.,2、格式化输出命令,前面的章节中在屏幕上显示信息时,使用的是非格式化输出命令:“?”或“?”,为了能按一定的要求来设计屏幕格式,使之美观、方便,下面介绍一个屏幕显示格式控制命令。,格式:SAY,功能:,从指定的行、列号开始输出表达式的值。,说明:,可以是常数、字段变量及由它们组成的表达式。定位输出时,一次只能输出一个表达式。,P128例4-1,30,.,3、程序设计辅助命令,(1)中止程序运行,在程序运行过程中,按,Esc,键可以中止程序的运行,系统会显示警告对话框让用户选择:,【取消】,中止程序运行,这是缺省选择;,【挂起】,暂停程序运行,返回命令窗口。当,【程序】,菜单下的,【继续执行】,选项或在命令窗口中输入“,Resume,”命令,系统则从中止的地方继续程序的执行;,【忽略】,忽略所给的Esc,继续程序的执行。,31,.,通常在程序的开始时加有命令:,SET ESCAPE OFF,执行该命令后,Esc键处于关闭状态,在程序运行过程中,用户不能通过Esc键来中止程序的运行,因为在应用程序中,不希望中止它;而在程序调试阶段,通常不关闭这个键,让程序在运行过程中,随时都可以中断执行,以检查程序中间的运行状况。,32,.,格式 一:RETURN,功能:,结束程序的执行,返回到调用它的上级程序继续执行,若无上级程序,则返回到命令窗口。RETURN 命令一般允许缺省。,格式 二:CANCEL,功能:,结束程序的运行,返回命令窗口,同时关闭所有打开的文件。,33,.,格式三:SUSPEND,功能:,暂时中止程序运行,返回命令窗口。当在菜单中选择,【程序】|【继续执行】,时,或在命令窗口中输入,RESUME,命令时,系统再次从中止的地方继续执行程序。,格式四:QUIT,功能:,退出VFP系统,返回到Windows。,34,.,(2)注释命令,格式一:NOTE/*,格式二:&,说明:,上述命令不作任何操作,只是注释标记,用于说明程序或命令的功能等。注释内容不需要用定界符定界,执行时也不显示。注释信息如果在一行内没有写完,换行时也必须再写注释命令。NOTE或*是用于整行注释的,因此,它必须写在每一个注释行的开头;而&命令是用于注释一行的部分内容的,因此,它可以写在行中(命令的尾部、注释信息的头部),这是程序中唯一可以在一个逻辑行写二个语句的命令。,USE STUDENT&打开STUDENT表,35,.,(3)文本显示命令,功能:,将原样输出。,这条命令通常是用于程序中对用户说明某些问题。,格式:TEXT,ENDTEXT,36,.,4.2 程序的控制结构,VFP的程序结构可以分为三种:,顺序结构、分支结构、循环结构,。,下面将以一个程序演示条件分支结构的循环结构,并对这些概念详细说明。,【例】,假设某单位有很多员工,并且要给月工资高于或等于1000元的员工增加5%的工资,给月工资低于1000元的员工增加10%的工资。,下面的示例程序将完成这一任务。此示例程序假定已在当前工作区打开了员工工资表,表中有一个名为“月工资”的数值型字段。,37,.,*L505,CTALK=SET(TALK),SET TALK OFF,SCAN,IF 月工资=1000,REPLACE 月工资 WITH 月工资*1.05,ELSE,REPLACE 月工资 WITH 月工资*1.1,ENDIF,ENDSCAN,SET TALK&CTALK,RETURN,38,.,在这一示例程序中用到了顺序结构、循环结构和条件分支结构。,1、条件语句,条件分支根据条件的计算结果执行不同的操作。,条件分支结构逻辑流程图:,入口,条件判断,真,假,语句序列1,出口,语句序列2,VFP中有两条命令实现条件分支:,格式:IF,ELSE,ENDIF,单条件选择命令,39,.,参数描述:,:,指定要计算的逻辑表达式。如果的值为“真”,则执行IF语句之后的;如果的值为“假”,而且包含ELSE语句和,则执行;如果的值为“假”,而且不包含ELSE语句和,则程序忽略IF语句和ENDIF语句之间的所有语句,程序从ENDIF语句后的第一条命令开始继续往下执行其它程序。,40,.,说明:,一个IFENDIF语句块中可以嵌套另一个IFENDIF语句块。,从,【例】,所示的程序中可以看到:当当前记录中“月工资”字段的值大于等于1000元时,将使“月工资=1000”这个条件表达式的值为“真”,此时,程序控制执行“REPLACE 月工资 WITH 月工资*1.05”,即将月工资高于或等于1000元的工资上调5%。否则,即当当前记录中“月工资”字段的值低于1000元时,将使“月工资=1000”这个条件表达式的值为“假”,此时,程序控制执行“REPLACE 月工资 WITH 月工资*1.1”,即将月工资低于1000元的工资上调10%。,例4-3 (P130),41,.,(2)多条件选择语句,格式:,DO CASE,CASE,CASE,CASE,OTHERWISE,ENDCASE,42,.,参数描述:,CASE :,VFP在执行这条多条件选择命令时,按命令行中写出的条件表达式的顺序逐条检查,当遇到第一个结果为“真”的时,就执行它后面的语句序列。语句序列中的命令逐条被执行,直到遇到下一个CASE或OTHER-WISE或ENDCASE,然后,再从ENDCASE语句后的第一条命令开始继续执行其它命令。,如果一个CASE 的为“假”,就忽略它后面的语句序列。,43,.,【例】,运行一个程序,随机输出一条信息:,CLEAR,AA=INT(RAND()*10),&随机产生一个10以内的整数,DO CASE,CASE AA=0,?“这次产生的随机数是:0”,CASE AA=1,?“这次产生的随机数是:1”,CASE AA=2,?“这次产生的随机数是:2”,CASE AA=3,?“这次产生的随机数是:3”,OTHERWISE,?“这次产生的随机数是:大于3!”,ENDCASE,例4-6 (P132),44,.,2、循环语句,程序设计中的循环,是指在程序中从某处开始,有规律地反复执行某一个程序块的现象。VFP的循环命令有,三类:基于条件的循环、基于计数的循环和基于表的循环,。,(1)基于条件的循环:DO WHILE命令,格式:DO WHILE,EXIT,LOOP,ENDDO,45,.,参数描述:,:,指定一个逻辑表达式,它的值决定是否执行DO WHILE和ENDDO之间的命令集合。如果的值为“真”,就执行命令集。,:,指定当计算为“真”时要执行的VFP命令集。,LOOP:,直接将程序控制返回到DO WHILE语,句,并重新计算条件值。LOOP可以放在,DO WHILE和ENDDO之间的任何位置。,46,.,EXIT:,将程序控制从DO WHILE和ENDDO循环的内部转到ENDDO后的第一条命令。EXIT可以放在DO WHILE和ENDDO之间的任何位置。,ENDDO:,表明DO WHILE语句的结束。,【例】,计算连续自然数之和,并且显示和刚大于1000的最后一个自然数。,STORE 0 TO AA,BB,DO WHILE AA=1000,BB=BB+1,AA=AA+BB,ENDDO,?BB,结果显示为45。,47,.,【例】,求连续N个不是7的倍数的自然数之和,当和是101的倍数时显示最后的自然数和它们的和。,STORE 0 TO AA,BB,&定义变量,用以保存累加值和累加数,DO WHILE.T.,BB=BB+1,IF MOD(BB,7)=0,&判断BB是否为7的倍数,LOOP,&BB是7的倍数则返回去将BB再加1,ENDIF,AA=AA+BB,&将不是7的倍数的自然数累加求和,IF MOD(AA,101)=0,&判断AA是否是101的倍数,EXIT,&如是101的倍数,则结束程序的循环,ENDIF,ENDDO,?BB,AA,屏幕显示结果为207和18483。,例4-7(P133)例4-8(P134),48,.,(2)基于计数的循环:FOR命令,格式:,FOR=TO STEP,EXIT,LOOP,ENDFOR/NEXT,参数描述:,:,指定作为计数器的内存变量或数组元素。在执行FORENDFOR语句之前,此内存变量或数组元素不一定存在。,TO:,是计数器的初始值,而是计数器的终止值。,49,.,STEP:,是计数器递增或递减的步长。如果是负值,则计数器递减;如果省略STEP子句,计数器每次递增1。,:,指定要执行的VFP命令,它可以包含任意数量的命令。,EXIT:,将控制权交给紧接在ENDFOR后面的命令。可以在FOR与ENDFOR之间的任何地方放置EXIT,。,LOOP:,将控制权直接交给FOR子句,不再执行LOOP与ENDFOR之间的语句。计数器正常递增或递减,就像执行到ENDFOR子句一样。可以在FOR与ENDFOR之间的任何地方放置LOOP。,50,.,说明:,可以用内存变量或数组元素作为计数器,指定FORENDFOR循环中VFP命令的执行次数。在遇到ENDFOR或NEXT之前,始终执行FOR后面的VFP命令。执行过程中,每循环一次,计数器都会产生一次计数,计数增量由值控制,然后把计数器的值与进行比较,决定是否进行下一次循环。,【例】,求1到100中偶数的和,AA=0,FOR II=2 TO 100 STEP 2,AA=AA+II,ENDFOR,?AA,屏幕显示为:2550,P135 例4-9,51,.,(3)基于表的循环命令,格式:,SCAN FOR WHILE,LOOP,EXIT,ENDSCAN,参数描述:,:,指定对当前表中记录扫描的范围。只有在范围之内的记录才有可能扫描到。SCAN命令的默认范围为ALL。,52,.,FOR:,只有条件表达式的计算结果为“真”的记录,才能对其执行命令。包含FOR子句可以筛选出不想扫描的记录。,WHILE:,指定一个逻辑表达式作为执行命令的条件,只要逻辑表达式计算为“真”,就对记录执行命令,直到遇到使表达式不为“真”的记录为止。,:,指定要执行的VFP命令集。,53,.,LOOP:,把控制权直接交给SCAN子句。LOOP子句可以放在SCAN和ENDSCAN之间的任何地方。,EXIT:,把控制权力从SCANENDSCAN循环语句交给ENDSCAN下面的命令。EXIT子句可以放在SCAN和ENDSCAN之间的任何地方。,ENDSCAN:,标志SCAN过程的结束。,54,.,说明:,SCAN命令自动将记录指针移到下一条满足条件的记录,并执行相应的命令块。,【例】,逐条显示STUDENT表中男生的情况。,USE STUDENT,SCAN FOR 性别=”男”,DISP,WAIT,ENDSCAN,USE,或者使用下列代码:,USE STUDENT,SCAN,IF 性别#”男”,LOOP,ENDIF,DISP,WAIT,ENDSCAN,USE,P135例4-10,P136例4-11、例4-12,55,.,4.3 多模块程序,4.3.1 子程序和过程的调用,过程(P140),子程序或过程的编写和修改方式与一般的程序一样,不同的是子程序或过程的最后一个语句必须是返回语句(RETURN),调用过程的程序是主程序,过程可以嵌套,即一个子程序可以再调用其它子程序,但不能形成循环嵌套。,子程序或过程的调用也是用DO命令:,格式:DO IN,WITH,56,.,功能:,执行过程名所指定的子程序。WITH用于主程序和子程序间参数的传递。,参数描述:,:,指定要执行的子程序或过程名称。VFP会自动搜索。,IN :,执行 指定的程序文件中的一个过程。,当找到该文件时就执行该过程。如果找不到该程序文件,就会显示“文件不存在”的信息。如果找到了程序文件,但指定的过程不存在,就会显示“找不到过程”的信息。,57,.,WITH:,指定要传递给程序或过程的参数。列在中的可以是表达式、内存变量、字母和数字、字段或用户自定义函数。默认情况下,参数按引用传递给程序和过程,也可以将参数放在括号中按值传递。传递给程序或过程的参数的最大数目为,27,。,格式:PARAMETERS ,58,.,子程序或过程的返回语句,格式:,RETURN TO MASTER/TO /,功能:,将程序控制权返回给调用程序。,参数描述:,TO MASTER:,将控制权返回给最高层的调用程序。,(P139图4.7),TO:,将控制权返回给指定的程序文件。,:,指定返回给,调用程序的表达式,。如果省略RETURN命令或省略返回表达式,则自动将“真”返回给调用程序。,59,.,说明:,RETURN终止程序、过程或函数的运行,并将控制权返回给调用程序、最高次调用程序、另一个程序或窗口。当执行RETURN命令时,VFP释放PRIVATE(专用)类型的内存变量。通常,RETURN放在程序、过程或函数的末尾,用来将控制返回给高层的程序。,但是,如果省略RETURN命令,一个隐含的RETURN命令也将被执行。,60,.,子程序或过程调用及返回示意图,P138例4-13,61,.,【例】,计算圆面积的主程序为MYMAIN.PRG,子程序为MYSUB.PRG,*MYMAIN.PRG,CTALK=SET(TALK),SET TALK OFF,CLEAR,STORE 0 TO RR,AREA,DO WHILE .T.,INPUT 请输入圆的半径:TO RR,DO MYSUB WITH RR,AREA,?圆的面积是:,AREA,WAIT 还要继续计算吗(Y/N)?TO ANSWER,62,.,IF UPPER(ANSWER)=Y,LOOP,ELSE,EXIT,ENDIF,ENDDO,SET TALK&CTALK,*MYSUB.PRG,PROCEDURE MYSUB,PARAMETERS R,S,S=PI()*R2,RETURN,以一个独立的文件形式存在,63,.,4.3.2 自定义函数,P139,例4-14,64,.,在实际的程序设计中,需要调用的过程不是一个或二个,而是几个、十几个甚至上百个,这就有可能使打开的文件数超过系统允许打开的文件数,而且将导致磁盘目录过于庞大,使系统调用文件的速度降低,程序执行速度也随之下降,因而有必要,将若干个过程按一定的规定放在一个大文件中,这个文件称为过程文件,。,4.3.3 过程,65,.,1)过程文件的建立,命令格式与建立程序文件一样:,格式:MODIFY COMMAND,过程文件的格式要求每个过程文件的开头必须用,下列语句:,格式:PROCEDURE,功能:,标明是一个过程。,参数描述:,:,指定过程名称。命名方法与文件名的,命名方法相同。,66,.,过程文件的内容如下:,PROCEDURE,RETURN,PROCEDURE,RETURN,PROCEDURE,RETURN,说明:,在一个过程文件中可以包含多个过程,在同一个过程文件中不允许出现相同的过程名,如果有相同的过程名,则只有第一次出现的过程才有被调用的可能。一个过程文件中最多允许包含,128,个过程。,67,.,过程文件的打开命令,格式:SET PROCEDURE TO,在主程序中应先打开过程文件,将过程文件中的,所有过程都调入内存(打开一个过程文件只算打,开了一个文件)。当过程文件不再用时应将其关,闭,以节省内存空间。,系统允许打开一个过程文件,当打开另一个过程,文件时,先已打开的过程文件系统会自动将其关,闭。,2)过程文件的调用,过程文件和表文件一样,都是,在先打开后才能使用,。,68,.,例4-15(P141)例4-16(P141),69,.,4.3.4 变量的作用域(P141),一、公共变量,格式:PUBLIC,二、私有变量,三、本地变量,70,.,谢谢观看!,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服