




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CH7 程序设计基础大纲要求1、命令文件的建立与运行:(1) 程序文件的建立。(2) 简单的交互式输入输出命令。(3) 应用程序的调试与执行。2、结构化程序设计:(1) 顺序结构程序设计。(2) 选择结构程序设计。(3) 循环结构程序设计。3、过程与过程调用。(1) 子程序设计与调用。(2) 过程与过程文件。(3) 局部变量和全局变量、过程调用中的参数传递。4、用户定义对话框(MESSAGEBOX)的使用。知识要点1.Visual FoxPro的工作方式Visual FoxPro系统提供有三种工作方式:即命令操作方式、菜单操作方式及程序文件操作方式。2. 程序的概念有关此Visual FoxPro程序的几点说明:(1)注释语句【格式1】NOTE 【格式2】*【格式3】&【功能】为程序行加注释说明,以增强程序文件的易读性。(2)对话开关语句【格式】SET TALK OFF|ON【功能】关闭或打开命令执行时的对话开关(3)命令的分行Visual FoxPro 程序是命令行的序列,每个命令都以回车键结束,一行只能写一条命令;若一条命令太长,一行写不下,也可分行书写,并在分行处加上续行符“;”,再按回车键。2建立或修改程序文件可用两种方式调用系统内置的文本编辑器建立或修改程序文件 :命令方式MODIFY COMMAND 程序文件名或MODIFY FILE 程序文件名菜单方式打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”3保存程序程序输入、编辑完毕,单击【文件】|【保存】菜单项,或按Ctrl+W复合键,在“另存为”对话框中指定程序文件的存放位置和文件名,并单击“保存”按钮保存程序文件并退出文本编辑器。程序文件的默认扩展名是.PRG。4执行程序程序文件建立后,可以用多种方式、多次执行它。下面是两种常用的方式。(1)菜单方式 单击【程序】|【运行】菜单项,打开“运行”对话框,选择程序文件,单击“运行”按钮; 从文件列表框中选择要运行的程序文件,打开该程序文件,并单击“运行”命令按钮。(2)命令方式【格式】DO 【功能】执行指定、下的程序文件注意:执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕。以下是终止程序运行的几个常用命令:1. CANCAL:终止程序运行,清除所有私有变量,返回命令窗口。2. DO:转去执行另一个程序。3. RETURN:结束当前程序的执行,返回到调用它的上级程序,若无上级程序则返回到命令窗口。4. QUIT:退出VF 系统,返回到操作系统。例题:1在Visual FoxPro 中,程序文件的扩展名为_。A.prg B. qprC.scx D.sct解析 本题考查的知识点是程序文件的扩展名。在V1sual FoxPro中,程序文件的扩展名为prg。答案 A 是程序文件的扩展名。选项B 是生成的查询程序文件的扩展名。选项C 是表单文件的扩展名。选项D 是表单备注文件的扩展名。答案 A2在Visual FoxPro 中,用来建立程序文件的命令是_。AOPEN COMMAND文件名BCREATE COMMAND文件名CMODIFY COMMAND文件名D以上答案都不对解析 本题考查的知识点是建立程序文件的命令的使用。在VisualFoxPro 中,建立程序文件的命令是MODIFY COMMAND文件名。选项 A 和B 语法错误。选项C 是建立程序文件的命令。选项 D的说法错误答案 C6输入命令 INPUT【格式】INPUT TO 【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量 ,可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给。注意:(1)如果选用,那么系统会首先显示该表达式的值,作为提示信息。(2)输入的数据可以是常量、变量、表达式。但不能不输入任何内容直接按回车。(3)输入字符串时必须加定界符,逻辑常量必须用圆点定界,日期常量用大括号(如2004-12-23)举例1.输入”张航”到XM 变量中。INPUT ”请输入员工姓名:” TO XM请输入员工姓名:”李小林”? XM李小林2.输入逻辑值到HF 变量中表示婚姻状况。INPUT ”已婚否:” TO HF已婚否:.T.? HF.T.7输入命令 ACCEPT【格式】ACCEPT TO 【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。该命令只接受字符型数据,输入的字符串不需要加定界符注意:(1)如果选用,那么系统会首先显示该表达式的值,作为提示信息。(2)该命令只能接收字符串。在输入字符串时不需要加定界符。(3)如果不输入任何内容直接按回车。系统会把空串赋给指定的内存变量。【例 1】输入“平衡”到XM 变量中。ACCEPT ”请输入教师姓名:” TO XM请输入教师姓名:平衡? XM平衡【例 2】编程从键盘输入某数据库的文件名,要求打开该数据库并显示其内容。程序文件名为 PA1.PRG。MODI COMMAND PA1SET TALK OFFCLEARACCEPT 请输入数据库名: TO AOPEN DATABASE &AACCEPT 请输入表名: TO BUSE &BLISTUSESET TALK ONRETURN8WAIT 命令【格式】WAIT TO WINDOW AT, NOWAIT CLEAR|NOCLEAR TIMEOUT【功能】显示提示信息,暂停程序执行,直到用户按任意键或单击鼠标时继续执行程序。若选择可选项TO ,将输入的单个字符作为字符型数据赋给指定的;若用户是按Enter 键或单击鼠标,的值为空串。若省略所有可选项,屏幕显示“键入任意键继续”默认提示信息。【例】在STUDENT 数据库的STUD 表中显示任意一个系学生的情况。程序文件名为 PA2.PRGSET TALK OFFCLEAROPEN DATABASE 学生管理USE 学生WAIT 请输入待查学生的学号(1-3): TO NIF VAL(N)3WAIT 输入无效,结束程序运行! WINDOW TIMEOUT 5RETURNELSESTORE 0+N TO AAALIST FOR 学号=AAAENDIFCLOSE DATABASESET TALK ONRETURN三条输入命令的异同INPUT 命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束ACCEPT 命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;WAIT 命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;例题1下列关于Visual FoxPro输入输出指令的说法不正确的是_。AINPUT命令用来从键盘输入数据B用INPUT命令输入数据时,若不输入任何数据,直接按回车键,则系统会把空字符赋给指定的内存变量CACCEPT命令只能接收字符串DWAIT命令能暂停程序执行,直到用户按任意键或单击鼠标时继续程序解析 本题考查的知识点是一些基础知识。本题一目了然选择B。8程序结构是指程序中命令或语句执行的流程结构。Visual FoxPro 提供了三种基本结构: 顺序结构、选择结构、循环结构。9顺序结构程序设计是程序中最简单、最基本的结构。使用该结构只需先把过程的各个步骤详细列出,然后将有关命令按处理的逻辑顺序自上而下排列起来。Visual FoxPro 就能按程序排列的顺序,一条接一条地依次执行。10. 分支结构形式有如下三种:(1)单向分支单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。(1)语句格式:IF条件表达式命令行序列ENDIF条件式真语句序列假ENDIF 之后语句(2)语句功能:该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列;否则,执行ENDIF 后面的第一条命令。【例】求一元二次方程AX2BXC0的实根。程序文件名为PA3.PRG。SET TALK OFFCLEARINPUT A= TO AINPUT B= TO BINPUT C= TO CZ=B2-4*A*CIF Z=0X1=(-B+SQRT(Z)/(2*A)X2=(-B-SQRT(Z)/(2*A)? X1,X2ENDIFSET TALK ONRETURN(2)双向分支双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。1)语句格式:IF条件表达式 命令行序列 1 ELSE 命令行序列 2 ENDIF 2)语句功能:该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列1中的命令;否则,执行命令行序列2中的命令;执行完命令行序列1或命令行序列2后都将执行ENDIF 后面的第一条命令。真条件式假语句序列1 语句序列 2ENDIF 后面语句【例】编写一密码校验程序(假设密码为ABC)。程序文件名为PA4.PRG。SET TALK OFFCLEARACCEPT “请输入您的密码:” TO AAAIF AAA=”ABC”CLEAR? ”欢迎使用本系统!”ELSE? ”密码错误!”WAITQUITENDIFSET TALK ON(3)多向分支多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行 。(1)语句格式:DO CASE CASE条件表达式1 命令行序列1 CASE条件表达式2 命令行序列2 CASE条件表达式N命令行序列NOTHERWISE命令行序列N+1ENDCASE【例】假设收入(P)与税率(R)的关系如下表,编程求税金。程序文件名为PA5.PRG。0 P800真条件式 2语句序列1ENDCASE 后面语句条件式1Otherwise条件式2真语句序列2真语句序列 n-1有语句序列 n无R= 0.05 800 P20000.08 2000P50000.1 P5000SET TALK OFFCLEARINPUT “请输入收入:” TO PDO CASECASE P800R=0CASE P2000R=0.05CASE P5000R=0.08OTHERWISER=0.1ENDCASETAX=P*R? ”税金为:”,TAXSET TALK ONRETURN(2)语句功能:该语句根据给出的 N 个条件表达式的值,选择N+1 个命令行序列中的一个执行。当所有CASE 中条件表达式的值都是假时,如果有OTHERWISE 项,则执行命令行序列N+1,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE 后面的第一条命令。(4)使用分支语句应注意的几点1)IF ENDIF 和DO CASE ENDCASE 必须配对使用,DO CASE 与第一个CASE条件表达式之间不应有任何命令。2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。3)命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。4)DO CASE ENDCASE 命令,每次最多只能执行一个命令行序列。在多个CASE 项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行ENDCASE 的后面的第一条命令。【例】下面程序段的功能是计算个函数f(x)的值,请写出表达式。SET TALK OFFINPUT“请输入x 值:”TO xDO CASECASE x-lf=0CASE X1f=2*x*x-xCASE x5f=xOTHERWISEf0ENDCASE? f(X),fSET TALK ONRETURN由以上程序得A:f(x)_。解析 本题考查的知识点是用分支语句来实现求一个函数的值。由分支语句的特点和程序的结构可知, 函数f(x)是一个分段函数,我们可以较为容易地写出函数的表达式:答案0 (x 5)f(x)= 2x2-x (-1= x 1)x (1= x 5)11循环结构程序设计循环结构也称为重复结构,是指程序在执行过程中,其中的某段代码被重复执行若干次。被重复执行的代码段通常称为循环体。Visual FoxPro 支持循环结构的语句包括:DOWHILEENDDO、FORENDFORSCANENDSCAN 语句。ENDDO 后面的语句条件表达式真循环体假(1) DO WHILE 循环语句【格式 1】DO WHILE ENDDO【功能】执行该语句时,先判断是否成立,如果为真,执行,执行到ENDDO 时,返回到DO WHILE,再判断。若条件为假,则结束循环,执行ENDDO 后面的语句。【格式 2】DO WHILE LOOPEXITENDDOLOOP 语句:强行返回到循环开始语句。EXIT 语句:强行跳出循环,接着执行ENDDO 后的语句DO WHILE 循环一般由如下部分组成:初始部分。通常位于程序开头,用来保证循环程序能够开始执行。如果第一次判断条件时,条件为假,则循环体一次都部执行。工作部分,即循环体。这部分除了需要重复执行的命令外、还应包括对于循环控制变量的修改,使循环进行有限次以后能够自动终止。控制部分。控制部分应保证循环程序按预定条件恰到好处地执行完毕。做到这一点,不仅要选择适当的入口条件,还要给有关的量设定适当的初值,并在循环体中对有关的量进行适当的修改,关键在于这三者恰到好处地配合。【例 1】编程求123100 之和。程序文件名为PA6.PRG。SET TALK OFFCLEARS=0I=1DO WHILE I=100ENDDO 后面的语句条件表达式真假循环体LOOPEXITS=S+II=I+1ENDDO? ”123100”,SSET TALK ONRETURN【例 2】逐条显示在“学生管理”数据库的“学生”表中性别为“男”的所有记录。程序文件名为PA7.PRG。SET TALK OFFCLEAROPEN DATABASE 学生管理USE 学生DO WHILE .NOT. EOF()IF 性别=”男”DISPLAYENDIFSKIPENDDOCLOSE DATABASESET TALK ONRETURN【例 3】编程显示“学生管理”数据库的“学生”表中除“李宁”以外的所有记录。程序文件名为PA8.PRG。SET TALK OFFCLEAROPEN DATABASE STUDENTUSE STUDDO WHILE .NOT. EOF()IF 姓名=”李宁”SKIPLOOPENDIFDISPLAYSKIPENDDOCLOSE DATABASESET TALK ONRETURN(2)FOR 循环语句【格式】FOR = TO STEPENDFOR|NEXT使用 FOR 循环语句的有关说明: 省略 STEP ,则步长为默认值1;初值、终值和步长都可以是数值表达式,但这些表达式仅在循环语句开始执行时计算一次。循环语句执行过程中,初值、终值和步长是不会改变的,并由此确定循环的次数; 可以在循环体内改变循环变量的值,但会改变循环执行次数; EXIT 和LOOP 命令可以出现在循环体内。执行LOOP 命令时,结束本次循环,循环变量增加一个步长值,返回FOR 循环头判断循环条件是否成立。执行EXIT 命令时,程序跳出循环,执行循环尾后面的语句【例】从键盘输入 10 个数,编程找出其中的最大值和最小值。程序文件名为PA9.PRG。SET TALK OFFCLEARINPUT “请从键盘输入一个数:” TO ASTORE A TO MAX,MINFOR I=2 TO 10INPUT “请从键盘输入一个数:” TO AIF MAXAMIN=AENDIFENDFOR? “最大值为:” , MAX? “最小值为:” , MINSET TALK ONRETURN(3)“指针”型循环控制语句“指针”型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。1)语句格式:SCAN范围FOR条件表达式1 WHILE 条件表达式2命令行序列ENDSCAN 2)语句功能:该语句在指定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数EOF()的值,若其值为“真”,则结束循环,否则,结合条件表达式1或条件表达式2,执行命令行序列,记录指针移到指定的范围和条件内的下一条记录,重新判断函数EOF()的值,直到函数EOF()的值为真时结束循环。【例】输出“学生管理”数据库的“学生”表中所有团员的姓名和地址。程序文件名为PA10.PRG。SET TALK OFFCLEAROPEN DATABASE 学生管理USE STUDSCAN FOR 是否团员? 姓名,地址ENDSCANCLOSE DATABASESET TALK ONRETURN(4)使用循环语句时应注意的几点(1)DO WHILE 和ENDDO、FOR 和ENDFOR、SCAN 和ENDSCAN必须配对使用。(2)命令行序列可以是任何FoxPro 命令或语句,也可以是循环语句,即可以为多重循环。(3)循环变量应是数值型的内存变量或数组元素。(4)EXIT 和LOOP 命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。EXIT 的功能是跳出循环,转去执行ENDDO、ENDFOR、ENDSCAN 后面的第一条命令;LOOP 的功能是转回到循环的开始处,重新对“条件”进行判断,相当于执行了一次ENDDO、ENDFOR、ENDSCAN 命令,它可以改变命令行序列中部分命令的执行次数。EXIT、LOOP 可以出现在命令行序列的任意位置。(5)多重循环多重循环即循环的嵌套,是在一个循环结构的循环体中又包含另一个循环。我们称外层循环为外循环,被包含的循环为内循环。嵌套层数一般没有限制,但内循环的循环体必须完全包含在外循环的循环体中,不能相互交叉。正确的嵌套关系如:DO WHILE DO WHILE DO WHILE ENDDOENDDOENDDO例题:【例】编程输出下三角形乘法口诀表。程序文件名为PA11.PRG。SET TALK OFFCLEARX=1DO WHILE X=9Y=1DO WHILE Y=XS=X*Y? STR(Y,1)+*+STR(X,1)+=+STR(S,2)+ Y=Y+1ENDDO?X=X+1ENDDOSET TALK ONRETURN例 题1在Visual FoxPro 中,结构化程序设计的三种基本逻辑结构是_。A顺序结构、选择结构、循环结构B选择结构、分支语句、循环结构C顺序结构、分支语句、选择结构D选择结构、嵌套结构、分支语句解析 本题考查的知识点是结构化程序设计的三种基本结构。在Visual FoxPro 中,结构化程序设计的三种基本结构是顺序结构、选择结构、循环结构。选项A 中的三种结构正确。选项B 中缺少顺序结构,另外分支语句错误,分支语句支持选择结构。但不是三种基本结构之一。选项C 中缺少循环结构,分支语句错误。选项D 嵌套结构和分支语句错误。答案 A2. Visual FoxPro 支持循环结构的语句包括_。ADO WHILEENDDO BFORENDFORCSCANENDSCAN DA, B, C解析 本题考查的知识点是Visual FoxPro 中支持循环结构的语句。Visual FoxPro 支持循环结构的语句包括DO WHILEENDDO,FORENDFOR, SCANENDSCAN。因此正确答案为 D。答案 D3下列_组语句可以将变量A,B 值互换。AAB BA(A 十B)2BA B(AB)2CAA 十B DACBAB CBAAB BA解析 在Visual FoxPro 的某些程序设计中,往往需要将两个变量值互换。这一问题不难解决,但容易出错。仔细分析便知选项C 正确。答案 C4用VFP 表达式表示“X 是小于100 的非负数”,正确的是_。A0=X100 B0=X100C0=X AND X100 D0=X OR X100解析选项A,B 是错误的VFP 表达式,同时根据题意应用逻辑性与AND 来表示。所以选项C 是正确的。答案 C5下列程序的运行结果是_。INPUT”请输入a 的_值:“TO aINPUT”请输入b 的值:“TO bINPUT”请输入c 的值:“TO cIF MAX(a,b)c? MAX(a,b)ELSEIF MIN(a, b)c? cELSE? MIN(a,b)ENDIFENDIF运行:2 回车5 回车19 回车A2 B5C 19 D. 2,5,19解析 这是一个求3 个数的中间数(其值大小居中)的程序段。本题输入的3 个数值是2,5,19,由此可知运行的结果是5。答案 B6程序是_。解析 本题考查的知识点是程序的概念。在Visual FoxPro 中,程序是能够完成一定任务的命令的有序集合。答案 能够完成一定任务的命令的有序集合7执行FORENDFOR 语句时,若步长为_值,则循环条件为(循环变量)(终值);若步长为_值,则循环条件为(循环变量)(终值)。解析 由于执行该语句时,若循环条件成立,则执行循环体,然后循环体变量增加一个步长值,并再次判断循环条件是否成立,以确定是否再次执行循环体。若步长为正值,则循环体变量递增,循环条件为(循环变量)(终值);若步长为负值,则循环变量递加,循环条件为(循环变量)(终值)。答案 正; 负8现有程序段如下,S 的值为_。SOilDO WHILE il OOSS 十iii 十1ENDDO? ”S“, S解析 本题中程序的功能是有DO WHILEENDDO语句实现从自然数l 到100 之间的数相加。于是S1 十2 十3 十十100 的结果为5050。答案 50509在Visual FoxPro 中,_语句实现一种扩展的选择结构,它可以根据条件从多组代码中选择一组执行。解析 在Visual FoxPro 中,分支(DO CASEENDCASE)语句实现了一种扩展的选择结构,它可以根据条件从多组代码中选择一组执行。当题目中有多组条件时,用它比用IFENDIF 语句更简捷,令程序更加清晰明了。答案 多分支或DO CASEENDCASE11. 过程及过程调用Visual FoxPro 与其他高级语言一样,支持结构化程序设计方法,允许将若干命令或语句组合在一起作为整体调用,这些可独立存在并可整体调用的命令语句组合称为过程。(1).调用过程语句,即执行已有的过程。语句格式:DO 过程名 WITH 语句功能:执行以过程名为名的过程。(2).过程返回语句,即返回过程的调用处。语句格式:RETURNTO MASTERTO过程名语句功能:将控制返回到调用程序中调用命令的下一语句。12. 外部过程外部过程也叫子程序,和主程序一样是以程序文件(.PRG)的形式单独存储在磁盘上。子程序是指能被其他程序调用的程序。通常情况下,被调用的称为子程序,调用它的称为主程序。子程序中必须使用的条命令是返回命令RETURN,格式为:RETURN表达式|TO MASTER|TO程序文件名功能是返回到调用该子程序的上级程序【例】分别建立如下程序文件,*正在执行主程序MAIN.PRGSET TALK OFFclearDO PA11SET TALK ON*PA11.PRG? 正在执行PA11RETURN13. 内部过程:把多个过程组织在一个文件中(这个文件称之为过程文件),或者把过程放在调用它的程序文件的末尾。Visual FoxPro 为了识别过程文件或者程序文件中的不同过程,规定过程文件或者程序文件中的过程必需用PROCEDURE 语句说明。其格式为:PROCEDURE RETURN 【例】建立如下程序文件,过程放在程序文件中* MAIN.PRGSET TALK OFF? ”正在执行主程序”DO SUB1SET TALK ONProcedure SUB1? ”正在执行SUB1”RETURN14.过程文件的建立过程文件的建立方法与程序文件相同。可用MODIFY COMMAND命令或调用其他文字编辑软件来建立。过程文件的结构一般为:PROCEDURE RETURNPROCEDURE RETURNPROCEDURE RETURN(1)过程文件的调用调用某过程文件中的过程时,必须先打开该过程文件,打开过程文件命令为:【格式】SET PROCEDURE TO 任何时候系统只能打开一个过程文件,当打开一 个新的过程文件时,原已打开的过程文件自动关闭。(2)过程文件的关闭关闭过程文件可用下列命令:【格式 1】 SET PROCEDURE TO【格式2】 CLOSE PROCEDURE【例】用过程文件实现对“学生管理”数据库的“学生”表进行查询、删除和插入操作。主程序如下:* PA12. PRG & 主程序文件名SET TALK OFFCLEAROPEN DATABASE 学生管理SET PROCEDURE TO PROCE & 打开过程文USE 学生INDEX ON 姓名 TO XMDO WHILE .T. & 显示菜单CLEAR 2,20 SAY “学籍管理系统” 4,20 SAY “A:按姓名查询” 6,20 SAY “B:按记录号删除”过程文件如下:*PROCE.PRG & 过程文件名PROCEDURE PROCE1 & 查询过程CLEARACCEPT ”请输入姓名:” TO NAMESEEK NAMEIF FOUND()DISPLAYELSE? ”查无此人”ENDIFWAITRETURNPROCEDURE PROCE2 & 删除记录过程CLEARINPUT ”请输入要删除的记录号:” TO NGO NDELETEWAIT ”物理删除吗Y/N:” TO FLAGIF FLAG=”Y” .OR. ”y”PACKENDIFRETURNPROCEDURE PROCE3 & 插入新的记录过程CLEARAPPENDRETURN15.过程调用中的参数传递过程可以有零个或多个参数,多个参数由逗号隔开带参程调用命令在主程序中的调用格式:(1)有参过程中的形式参数定义有参过程中的形式参数定义语句为:【格式】PARAMETERS 该语句必需是过程中第一条语句。中的参数可以是任意合法的内存变量名。(2)程序与被调用过程间的参数传递程序与被调用过程间的参数传递是通过过程调用语句DO WITH 中WITH 子句来实现的。【说明】(1)DO 命令中参数称为实际参数,PARAMATERS 命令中的参数称为形式参数。两个中的参数必须相容,即个数相同,类型和位置一一对应;(2)实际参数可以是任意合法表达式,形式参数是过程中的局部变量,用来接收对应实际参数的值;(3)Visual FoxPro 的参数传递规则为:如果实际参数是常数或表达式则传值,如果实际参数是变量则传址,即传递的不是实参变量的值而是实参变量的地址,这样,过程中对形参变量值的改变也将使实参变量值改变。如果实参是内存变量而又希望进行值传递,可以用圆括号将该内存变量括起来,强制该变量以值方式传递数据【例】用参数传递编程,计算圆的面积。* 主程序名PA13SET TALK OFFCLEARS=0INPUT 请输入圆的半径: TO RDO AREA WITH R,S? 圆的面积为:,SSET TALK ON?PROCEDURE AREA & 计算面积的过程PARA X,Y & 形参说明Y=3.1416*X*2RETURNSET TALK ON16变量的作用域程序设计离不开变量,如果以变量的作用来分,内存变量分为公共变量、私有变量和局部变量。(1)公共变量公共变量是指在所有程序模块中都可以使用的内存变量。公共变量要先建立后使用。【格式】PUBLIC 该命令的功能是建立公共的内存变量,并为它们赋初值逻辑假.F.【说明】1)当定义多个变量时,各变量名之间用逗号隔开;2)用PUBLIC 语句定义过的内存变量,在程序执行期间可以在任何层次的程序模块中使用;3)变量定义语句要放在使用此变量的语句之前,否则会出错;4)任何已经定义为公共变量的变量,可以用PUBLIC 语句再定义,但不允许重新定义为局部变量;5)使用公共变量可以增强模块间的通用性,但会降低模块间的独立性。(2)局部变量局部变量是指在建立它的程序以及被此程序调用的程序中有效的内存变量。【格式】LOCAL 【功能】该命令的功能是建立指定的内存变量,并为它们赋初值逻辑假.F.【说明】1)由于该命令LOCAL 与LOCATE 的前4 各字母相同,所以这条命令的动词不能缩写。2)在程序中没有被说明为公共变量的内存变量都被看作是局部变量。在子程序中可以用 PRIVATE 命令隐藏主程序中可能存在的变量,使这些变量在子程序中暂时无效。命令格式为:【格式 1】PRIVATE 【格式2】PRIVATE ALL LIKE | EXCEPT 【说明】(1)用PRIVATE 语句说明的内存变量,只能在本程序及其下属过程中使用,退出程序时,变量自动释放;(2)用PRIVATE 语句在过程中说明的局部变量,可以与上层调用程序出现的内存变量同名,但它们是不同的变量,在执行被调用过程期间,上层过程中的同名变量将被隐藏。(3)私有变量在程序中直接使用而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。一旦建立它的模块程序运行结束,这些私有变量将自动清除。(P179-P181)17调用调试器调用调试器的方法一般有两种:选择“工具”菜单中的“调试器”命令。在命令窗口输入 DEBUG 命令。在 Visual FoxPro 中,打开“调试器”窗口后,可以选择地打开5个子窗口:跟踪、监视、局部、调用堆栈、调试输出。系统默认显示:监视、局部和调用堆栈三个子窗口。18程序调试是指在发现程序有错误的情况下,确定出错的位置并纠正错误,其中关键是确定出错的位置。例 题1在Visual FoxPro 中,用于调用模块程序的命令是_。APROCEDURE过程名BSET PROCEDURE TO过程文件CFUNCTION过程名DDO,ADDITIVE;关闭个别过程文件的命令是_,解析本题考察了过程文件的操作命令。我们只有熟悉了visualFoxPro 的各种命令格式和他们的功能,才能熟练的编程和进行表单,菜单操作。答案 SET PROCEDURE TO;RELEASE PROCEDURE4PARAMETERS 命令声明的形参变量被看作是模块程序中建立的_变量;LPARAMETERS 命令声明的形参变量被看作是模块程序中建立的_变量解析本题考察的知试点是有关变量作用域的知识。PARAMTERS 和LPARMETERS 命令声明的形参变量变量的作用域属性分别为私有变量和局部变量。答案 私有;局部5在程序中没有通过PUBLIC 和LOCAL 命令声明,而由系统自动隐含建立的变量都是_变量。解析 在Visual FoxPro 中,系统默认的变量都是私有变量。答案 私有19. 用户定义对话框MESSAGEBOX( )函数:1格式:MESSAGEBOX(CMessageText,nDialogboxType,CTitleBarText)2功能: 该函数用于显示一个信息框。3. 说明:1) CMessageText:表示显示在信息框中的正文内容。2) nDialogboxType:确定消息框中要显示哪些按钮和图标。如果没有nDialogboxType;则默认消息框中只有“确定”按钮3)CTitleBarText:表示出现在消息框标题栏中的文本。a) 05:表示出现在信息框中的按钮,如表1 所示。表1 按钮类型和数目b) 16, 32, 48, 64 :表示出现在消息框中的图标;c) 0,256,512 :表示消息框中哪些是默认按钮。表2 图标类型表3 默认按钮例如:1+64+256 表示消息框中有“确定”,“取消”按钮,有信息号图标,“取消”按钮是默认按钮。3+32+512:表示消息框中有“是”,“否”,“取消”按钮,有问号图标,“取消”按钮是默认按钮。MESSAGEBOX()函数的返回值是一个数值,用于确定在消息框中选择了哪个按钮。例如,消息框中有“取消”按钮,那么按Esc 键或单击“取消”按钮时,就会返回2。值 按 钮0 只有“确定”按钮1 具有“确定”和“取消”按钮2 具有“终止”、“重试”和“忽略”按钮3 具有“是”、“否”和“取消”按钮4 具有“是”和“否”按钮5 具有“重试”和“取消”按钮值 图 标16 停止图标32 问号图标48 感叹号图标64 信息图标值 默认按钮0 第一个按钮256 第二个按钮512 第三个按钮表4 MESS()函数的返回值【例1】显示“要将更改保存到PA13.PRG 中吗?”,有“是”、“否”、“取消”按钮,有“问号”图标,“是”为默认按钮。? MESSAGEBOX(“ 要将更改保存到PA13.PRG 中吗? ”,3+32+0,“VFP6.0 数据库注释”)编程举例1编程计算半径为10 的圆面积。解析 编程的结构如下:SET TALK OFFR10? 半径为10 的圆面积: + LTRIM(STR(R*R*314) )SET TALK ONINPUT 请输入一个值 TO YIF Y0 Y0XlELSE Y0, 还需进一步区分Y0 和返回值对应按钮1 “确定”按钮2 “取消”按钮3 “终止”按钮4 “重试”按钮5 “忽略”按钮6 “是”按钮7 “否”按钮Y0IF Y0 Y0X0ELSE Y0XlENDIFENDIF? XSET TALK ON3编程计算x1 十2 十十10解析 编程的过程如下:SET TALK OFFIl 初始化循环控制变量x0 初始化累加结果存放单元DO WHILE I10Xx+I 将 I 加到S中II+1 修改循环控制变量ENDDO? x+LTRIM(STR(x) 输出结果SET TALK ON解析 编程的过程如下:SET TALK OFFINPUT请输入成绩 TO SCIF SC=90GRADE=AELSEIF SC=75GRADE=BELSEIF SC=60GRADE=CELSE4输入一个成绩,按如下原则给出相应等级:A:90100B:75 89C:60 74D:0 59GRADE=DENDIFENDIFENDIF? LTRIM(STR(SC)+分对应的等级是:+GRADESET TALK ON一.选择题1在Visual FoxPro 中,用来建立程序文件的命令是_(A)_。AOPEN COMMAND文件名BMODIFY文件名CMODIFY COMMAND文件名D以上答案都不对2在Visual FoxPro 中,INPUT 命令用来_(A)_。A暂停执行程序,将键盘输入的数据送入指定的内存变量后再继续执行B结束当前程序的执行,返回调用它的上一级程序C暂停执行程序,将键盘输入的字符串送入指定内存变量后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-江西-江西水文勘测工四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西林木种苗工四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽食品检验工一级(高级技师)历年参考题库典型考点含答案解析
- 2020-2025年二级建造师之二建建筑工程实务自我提分评估(附答案)
- 2025年事业单位工勤技能-北京-北京水文勘测工四级(中级工)历年参考题库含答案解析
- 2025年中级卫生职称-主治医师-肿瘤放射治疗学(中级)代码:343历年参考题库典型考点含答案解析
- 2025年通信专业技术-通信专业技术(中级)-中级通信专业技术(全科)历年参考题库含答案解析(5套)
- 2025年药学职称考试-辽宁省-辽宁省药学(初级中药师)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-热工职业-热工自动装置检修职业技能鉴定(初级)历年参考题库含答案解析(5套)
- 热控维护基本知识培训课件
- AutoCAD计算机辅助设计标准教程(中职)PPT完整全套教学课件
- 安全生产费用使用范围及计量办法
- 肾脏疾病常见症状和诊疗
- 安全环保职业卫生消防题库及答案
- 数据中心负荷计算方法
- 金X绅士无双攻略
- 第八章 立体几何初步(章末复习) 高一数学 课件(人教A版2019必修第二册)
- GB/T 27518-2011西尼罗病毒病检测方法
- GB/T 26255-2022燃气用聚乙烯(PE)管道系统的钢塑转换管件
- GB/T 14202-1993铁矿石(烧结矿、球团矿)容积密度测定方法
- 新时代中小学教师职业行为十项准则考核试题及答案
评论
0/150
提交评论