do tub with 6,6,3,b ?b
procedure tub
PARAMETER A,B,C,D B=A* A-4 *C* D DO CASE CASE B<0 B=120 CASE B>0 B=210 CASE B=0 B=100 ENDCASE RETURN
分析: 在程序开始对A,B赋值为3,对C,D赋值为2。然后把实参A、B、C、D传递给予程序TUB,根据表达式B=A*A-4*c*D
计算出结果为-7,所以输出结果为120,同样,以下程序执行时,根据表达式的计算结果,输出依次为1和6。
答案:结果显示在3行上,依欠为120,1,6
[例25] 根据输入的半和径值,计算圆的面积,请将程序填写完整。 程序: CLEAR R=0 SM=0
@12,15 SAY “输入圆半径” CET R READ IF R=0 EXIT ENDIF ————
@16,16 SAY“圆的面积为:”+ ALLTRIM(STR(SM)) ENDDO RETURN
计算圆面积的函数: FUNCTION AREA PARAMETERS A S=3.1415926*A*A
RETURN
分析:该语句是实现对计算圆面积函数的调用,返回值赋给变量SM。这个程序所使用的是一个自定义函数,自定义函数和
子程序的区别就是自定义函数必须返回一个函数值,而子程序没有这个限制。自定义函数的编辑方法和子程序的编辑方法相同,只是要把子程序文件名改为自定义函数名。
需要注意的几点是:自定义函数能以独立的文件存储,也可包含在调用程序中作为它的一部分。如果[FUNCTION<函数名>]缺省,这表示该函数是一个独立的文件。另外,自定义函数不能与系统函数同名,也不能与内存变量同名。 答案:SM=AREA(R)
例26 当变量I在奇偶之间变化时,求出下面程序的输出结果。 程序: CLEAR I=O
DO WHILE I<10 IF INT(I/2)=I/2 ?\ ENDIF ?\ I=I+1 ENDDO
分析:该程序应用的是循环和条件嵌套的结构。 答案:W,T,T连续显示5次
[例27] 填空完成下列程序,仅接受输入Y和N的程序,否则程序结束。 DO WHILE .T.
WAIT \请输入Y/N\TO AS
IF UPPER(AS)< >\UPPER(AS) < >\ (1) ELSE (1) ENDIF ENDDO
分析:该例是一个条件循环,选用EXIT是强制推出循环条件,执行它能够立即跳出循环,执行ENDDO
后面的语句。选用LOOP则是一种强制缩短循环的语句,其功能是终止本次循环体语句的执行,把控制转到
循环结构的开始。
答案: (1)EXIT,(2)LOOP
[例28] 当变量X的值变化时,依次显示其结果,注意循环体内的LOOP和EXIT语句。 程序: CLEAR X=3
DO WHILE .T. X=X+1
IF X=INT(X/3)*3 ?x ELSE
LOOP ENDIF IF X>10 EXIT ENDIF ENDDO RETURN
分析:INT()是取整数函数
如果循环体内有LOOP命令,那么当晕到LOOP时,就结束循环的本次执行,不再执行其后的语句,而是转回DO WHILE 处重新判断条件。
如果循环体包括EXIT命令,那么当遇到EXIT时,就结束该循环语句的执行,转去执行ENDDO后面的语句。
通常LOOP或EXIT出现在循环体内嵌套的选择语句时,根据条件来决定是LOOP回去,还是EXIT出去。 答案:依次显示为:6,9,12
[例29] 填空完成下列程序,求数绝对值的程序。 INPTU’请输入一个数:‘TO X
?STR(X)+“它的绝对值是:’+STR(f(x)) FUNCTION F (1) ——— IF T>=0 T=T ELSE T=-T ENDIF RETURN T
分析:FUNCTION 是一个子函数,语句PARAMETERS是定义子函数里面的变量。
[例30] 如果说用DO命令来执行查询文件、菜单文件、那么<文件名>中必须名含——————。 分析:VISUAL FOXPRO 程序文件通过编辑、连接,可以产生不同的目标代码文件,这些文件具有不同的文件名。
当用DO 命令执行程序文件时,如果没有指定扩展名,系统将按下列顺序寻找程序文件的源代码或某种目标代码文件
执行:.EXE->.APP->.FXP->.PRG;但是用DO命令来执行查询文件、菜单文件时,那么<文件名>中必须包括扩展名。
答案:扩展名(.QBR或.MPR)
[例31]打开银行客户关系表,输入一个控制口令控制程序的执行,若口令为1,则把
“银行代码”为“001”的所有记录加上删除标记;若口令为2,把“银行代码”为“002”的所有记录 加上删除标记;若口令为3,把“银行代码”为“003”的所有记录加上删除标记。请将程序填写完 整。 程序: CLEAR
USE银行客户关系表EXCLUSIVE BROWSE LAST
WATT“请输入你的选择:(1-3)”TO yhdm DO CASE CASE (1)
DELETE ALL FOR 银行代码=“001” BROWSE ALL FOR银行代码=“001” RECALL CASE (2)
DELETE ALL FOR 银行代码=“002” BROWSE ALL FOR 银行代码=“002” RECALL CASE (3)
DELETE ALL FOR 银行代码=“003” BROWSE ALL FOR 银行代码=“003” RECALL ENDCASE BROWSE USE
分析:该程序执行时,依次判断语句中列出的条件,当碰到取值为真时就执行该条件下的语句序列。 答案:(1)yhdm=“1”,(2)yhdm=“2”,(3)yhdm=“3”
例32 按银行帐号显示存款记录,如果该帐号不存在,则会显示空记录,请将该程序 填写完整。
相关推荐: