收藏 分享(赏)

第5章 程序设计基础.ppt

上传人:dreamzhangning 文档编号:2196001 上传时间:2018-09-05 格式:PPT 页数:73 大小:1.64MB
下载 相关 举报
第5章 程序设计基础.ppt_第1页
第1页 / 共73页
第5章 程序设计基础.ppt_第2页
第2页 / 共73页
第5章 程序设计基础.ppt_第3页
第3页 / 共73页
第5章 程序设计基础.ppt_第4页
第4页 / 共73页
第5章 程序设计基础.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

1、,程序设计基础,5.1 程序设计概述,第5章 程序设计基础,5.2 结构化程序设计,5.3 面向对象的程序设计基础,实验操作说明,课后习题,参考资料,教学目的与要求,掌握基本程序控制语句的用法,掌握创建结构化程序、用户自定义函数和过程的方法,掌握面向对象的程序设计的概念,掌握引用对象、设置对象属性和调用对象的方法程序的方法,了解对象对事件的响应、容器层次与类层次中的事件发生情况以及事件激发顺序,掌握事件驱动和事件循环的概念,掌握事件驱动和事件循环的概念,5.1 程序设计概述,一、程序设计的方法,结构化程序设计(Structured Programming,SP)面向对象程序设计(Object-

2、oriented Programming, OOP),基本单位:语句 设计原则:自顶向下、逐步求精、模块化和限制使用转移语句 开发方法:自顶向下、功能分解 开发过程:从“做什么”到“如何做” 优点:系统结构强,便于设计和理解 缺点:程序员始终要关心什么时刻发生什么事情,二、结构化程序设计的特点,5.1 程序设计概述,基本单位:类和对象 重要特性:封装性、继承性和多态性 开发方法:自底向上的功能综合 开发过程:从“用什么做”到“要做什么” 优点:系统化的程序设计方法 特点:采用以对象为中心的问题求解方法,程序设计通过面向对象来实现,三、面向对象程序设计的特点,5.1 程序设计概述,1.程序的概念

3、计算机能够分析执行的命令集合。 VFP程序由一系列代码组成,代码可以是命令、函数或其他VFP可以 理解的任何操作。 VFP程序的扩展名为 .PRG2.结构化程序设计的任务指根据不同的情况和条件,控制程序去执行相应操作的语句序列3.程序结构主要分为:顺序结构、分支结构、循环结构以及过程/函数调用一个程序总体上是一个顺序结构,其中某个(些)“子部分”则可能是各种结构的组合或嵌套。,5.2 结构化程序设计,创建和修改程序文件方法有2种:1、项目管理器方式(选择代码选项卡)2、命令方式MODIFY COMMAND 程序名运行程序方法有3种:1、项目管理器下选择程序名点击“运行”按钮2、命令方式: DO

4、 程序名3、在程序编辑窗口中,单击“!”按钮运行程序注意:一旦运行程序文件,系统自动对程序文件(.prg)文件进行编译,生成“伪编译”程序(.FXP)。系统实质上执行.FXP文件。,5.2.1 创建、修改和运行程序,5.2 结构化程序设计,5.2.2 顺序结构,5.2 结构化程序设计,顺序结构是指程序运行时按照语句排列的先后顺序,一条接一条依次执行。程序的最基本的结构,任一程序的主体结构,5.2 结构化程序设计,范例:,例5.1 下列程序是计算园的面积,其半径为4.12STORE 4.12 TO PS = P*P*3.14? 圆面积为:, S例5.2 下列程序的功能是显示一个字符串在另一个字符

5、串中的位置。C=“Visual FoxPro”CC=“Fox”?AT(CC,C) &显示结果为8,5.2.3 分支结构,5.2 结构化程序设计,分支结构是指程序在运行过程中,根据条件执行不同的操作。VFP中两种实现分支结构的语句:IFELSEENDIF语句DO CASEENDCASE语句,IFELSEENDIF 语句,5.2 结构化程序设计,语法格式:IF 条件表达式命令语句组1ELSE命令语句组2 ENDIF常见结构:单分支、双分支、多分支,5.2 结构化程序设计,1、IFELSEENDIF 语句的单分支结构,单分支结构的格式:IF 条件表达式命令语句组ENDIF,例5.3:从键盘任意输入一

6、个数,求平方根。 INPUT “请任意输入一个数:” TO X IF X = 0Y=SQRT(X)?“X的平方根为:”,Y ENDIF,5.2 结构化程序设计,2、IFELSEENDIF 语句的双分支结构,双分支结构的格式: IF 命令语句组1 ELSE 命令语句组2 ENDIF,5.2 结构化程序设计,IFELSEENDIF 语句的双分支结构范例,例5.4:从键盘任意输入一个数,判断这个数是奇数还是偶数。,INPUT “请任意输入一个数:” TO X IF X%2 = 0? STR(X)+”是偶数” ELSE? STR(X)+”是奇数” ENDIF,INPUT命令:从键盘接收多个任意类型数据

7、,5.2 结构化程序设计,例5.5:从键盘输入一个密码,判断密码正确与否,给出不同的提示信息。,IFELSEENDIF 语句的双分支结构范例,ACCEPT “请输入密码:“ TO PW IF PW=“654321“?“欢迎使用“ ELSE?“密码不对,谢绝使用“ ENDIF,ACCEPT命令: 从键盘接收多个字符型数据,5.2 结构化程序设计,3、IFELSEENDIF 语句的多分支结构(IF语句嵌套),IF条件1 IF 条件12语句序列11ELSE语句序列12ENDIF ELSEIF 条件22语句序列21ELSE语句序列22ENDIF ENDIF,注意:IFELSEENDIF必须配对使用。,

8、5.2 结构化程序设计,IFELSEENDIF 语句的多分支结构范例,INPUT “请任意输入一个数:” TO XIF X 0 & x0 的情况Y=1ELSE & x=0或者x0 的情况IF X=0Y=0ELSE & x0 的情况Y= -1ENDIFENDIF?“Y=”,Y,例5.6:符号函数的程序实现。,5.2 结构化程序设计,4、 DO CASE ENDCASE 语句,DO CASE语句格式: DO CASE CASE 条件1语句序列1CASE 条件2语句系列2CASE 条件N语句序列NOTHERWISE其他语句系列 ENDCASE,注意:DO CASE 与第一个CASE之间不能有任何语句

9、。,5.2 结构化程序设计,例5.7:用DO.CASE语句实现符号函数。,INPUT “请任意输入一个数:”TO X DO CASECASE X 0Y=1CASE X=0Y=0CASE X0Y=-1 ENDCASE ?“Y=”,Y,5.2 结构化程序设计,5.2.4 循环结构,循环结构用于控制一组语句重复执行若干次,可预先指定要循环的次数,也可根据某个条件控制循环。VFP实现的三种语句: FORENDFOR语句DO WHILEENDDO语句SCANENDSCAN语句,5.2 结构化程序设计,1、 FOR ENDFOR 语句,语句格式: FOR变量=初值TO 终值STEP 步长语句组 ENDFO

10、R / NEXT 功能: 主要用于执行已知次数的循环, 只要变量的值不超过终值, 程序将重复执行循环体中的语句。 当步长为1时,STEP 可缺省。,5.2 结构化程序设计,S=0 FOR I=1 TO 99 STEP 2S=S+I ENDFOR ?“前1100之间的奇数和为:”,S,例5.8:求1+3+5+99的和。,5.2 结构化程序设计,P=1 FOR I=1 TO 100P=P*I ENDFOR ?“100的阶乘为:”,P,例5.9:求100的阶乘。,5.2 结构化程序设计,例5.10:下面程序的功能是将由英文组成的字符串加密。加密的算法是:如果是大写字母,用原字母后面第4个字母代替原字

11、母,否则用原字母后面第2个字母代替原字母。例如,“China”的密文是“Gjkpc”,m=SPACE(0)c=“China” FOR i=1 TO LEN(c)nc=ASC(SUBSTR(c,i,1)IF nc64 AND nc9m=m+CHR(nc+4)ELSEm=m+CHR(nc+2)ENDIF ENDFOR WAIT WINDOWS c+“字母加密后为”+m,在VisualFoxPro主窗口右上角的系统信息窗口中,显示信息,并暂停VisualFoxPro的执行,按某个键或单击鼠标后继续执行。,5.2 结构化程序设计,2、 DO WHILE ENDDO 语句,语句格式:DO WHILE 循

12、环判断条件语句系列ENDDO 功能:根据指定的逻辑条件,控制语句序列执行的次数。只有DO WHILE 条件为假时,才结束循环。,5.2 结构化程序设计,例5.11 求1+2+3+100的和。,5.2 结构化程序设计,例5.12: 将ASCII码字符组成的字符串进行反向显示。,STORE “abcdef” TO C, CC P=space(0) DO WHILE LEN(C) 0P=LEFT(C,1)+PC=SUBSTR(C,2) ENDDO ?CC+”的反序为”+P,5.2 结构化程序设计,EXIT:是循环的出口语句,遇到EXIT 循环结束。 LOOP:是短路语句,遇到 LOOP回到循环的开始

13、而短路了LOOP与ENDDO/ENDFOR之间的语句。在任何时候都可以通过使用EXIT命令从任何一个循环中退出,或者使用LOOP命令来跳过循环中的后续处理。,3、在循环中,可有两个特殊的语句:EXIT 和LOOP,5.2 结构化程序设计,例5.13:求1100之间非3的倍数的所有奇数之和。,S=0 FOR I=1 TO 100 STEP 2IF MOD( I, 3 )=0LOOPENDIFS=S+I ENDFOR ?S,5.2 结构化程序设计,例5.14:从键盘输入一个密码,若为“654321”,程序结束。DO WHILE .T. ACCEPT “请输入密码:” TO PWIF PW”6543

14、21”?” 密码不对,请重输” LOOPELSE?”欢迎进入本系统”EXITENDIFENDDO,5.2 结构化程序设计,4、 SCAN ENDSCAN 语句,语句格式:SCAN 范围 FOR 条件语句组ENDSCAN功能:仅用于处理表的记录。,5.2 结构化程序设计,例5.15:写出下列程序运行的结果(js表如下),USE JS GZSUM=0 SCAN FOR XB=”女”GZSUM=GZSUM+JBGZ ENDSCAN ?GZSUM USE,例5.16:显示教师表中偶数号记录教师的姓名、性别。CLEARUSE JSFOR i=1 TO RECCOUNT()IF RECNO()%2=0?X

15、M,XBENDIFSKIPENDFORUSE,CLEAR USE JS SCAN FOR RECNO()%2=0?XM,XB ENDSCAN USE,5.2 结构化程序设计,5.2.5 过程与用户自定义函数,用户可以将经常执行的具有某种功能的一段程序代码独立出来,将其作为一个过程(procedure)或者用户自定义函数(User Defined Function,UDF),在需要该功能的时候,调用这个过程或自定义函数即可。过程或自定义函数可以独立存储在程序文件中,也可以放在调用(者)函数的后面。当一个或多个自定义函数和过程存放在一个程序文件中时,这个程序文件称为过程文件。若要调用过程文件中的过

16、程或自定义函数,必须使用命令:SET PROCEDURE TO 过程文件名打开过程。 例如:过程文件名为procs.prg 则:SET PROCEDURE TO procs,5.2 结构化程序设计,过程的定义如下: PROCEDURE myprocPARAMETERS 过程体语句 RETURN 表达式 ENDPROC,函数的定义如下: FUNCTION myfunc PARAMETERS 函数体语句 RETURN 表达式 ENDFUNC,过程的调用为: DO myproc with 参数 或者:变量myproc(参数) 或者:?myproc( 参数),函数的调用为: DO myfunc wit

17、h 参数 或者:变量myfunc( 参数) ? myfunc( 参数),5.2 结构化程序设计,例5.17:求圆面积的自定义函数和过程(圆的半径作为参数)。,FUNCTION AREA_FPARAMETERS RS=3.14159*R*RRETURN S ENDFUNC,函数调用: ?AREA_F(6),PROCEDURE AREA_PPARAMETERS RS=3.14159*R*RRETURN s ENDPROC,过程的调用: DO AREA_P WITH 6,5.2 结构化程序设计,例5.18:定义自定义函数,实现数字0-9到汉字零九的转换。,FUNCTION ntocPARAMETER

18、S pDigitLOCAL cStringcString=“零一二三四五六七八九”R=substr(cString, pDigit*2+1 ,2) RETURN R ENDFUNC,调用:?NTOC(3) 返回:三,5.2 结构化程序设计,例5.19:求阶乘的自定义函数,?JC(5) FUNCTION JCPARAMETERS XS=1FOR I=1 TO XS=S*IENDFORRETURN S ENDFUNC,返回,5.2 结构化程序设计,例5.20: 下列程序是用来计算1!+2!+3!+4!+5!的值,将程序补充完整,P=0 For i=1 to 5 P=P+jc(i) ENDfor ?

19、P,Function jc _ S=1 FOR N=1 TO x S=S*N ENDFOR RETURN S ENDPROC,调用,返回,复习:控制变量的访问,用LOCAL指定局部变量(只在定义的程序中有用)用PRIVATE指定私有变量(在定义的程序中和它的下一层程序中有用)用PUBLIC指定全局变量(在当前工作期中,所有运行的程序中都有用),5.2 结构化程序设计,5.2 结构化程序设计,PROCEDURE P1PRIVATE M1local m3 M1=20M2=M1*M2m3=50DO p2?“M1(in p1)=“,M1RETURN ENDPROC,运行结果: m4=21 M1(in

20、p1)=20 M1=10 M2=200,STORE 10 TO M1,M2 DO P1 ? “M1=“,M1, ? “M2=“,M2 * ? “m3=“,m3,procedure p2m4=M1+1?“m4=“,m4*?“m3=“,m3 endproc,调用,例5.21:,5.3 面向对象程序设计基础,类和对象概述 基类 处理对象 事件模型 事件驱动和事件循环,类指的是具有相同结构、操作并遵守相同规则的一组对象,它刻画了对象的模板,它是一个具有相同行为的对象的抽象,所有对象的属性、事件和方法都在类中定义。对象是类的一个实例,包括了数据和过程。在程序运行时,视需要创建该类的各个对象。类是静态概念

21、,对象是动态概念。,5.3 面向对象程序设计基础,5.3.1 类和对象概述,属性(Property):定义对象的特征或某一方面的行为。例如:大小、颜色、所处的位置、停与行的状态等。事件(Event)是由对象识别的一个动作,可以编写相应的代码,对此动作进行响应。在多数情况下,事件是由用户的交互行为产生的 (例如,单击鼠标、移动鼠标或键盘按键等);也可以由系统或者程序产生(例如,计时器等)。(用户不能创建新的事件)方法(Method)是对象能够执行的一个操作。方法实际上就是对象的内部函数,每个类型的对象都有它自己的方法集。例如,用于处理数据的对象一般有Refresh(刷新)方法。与事件不同的是,方

22、法可以由用户自己创建,并进行扩展。,5.3 面向对象程序设计基础,对象的属性、事件和方法定义,一、VFP中的类可以分为三种:基类(Base Class)VFP系统提供的内部定义的类,可用做其他用户自定义类的基础。(见表5-1。)子类(Subclass)以其他类定义为起点,为某一种对象所建立的新类。子类将继承任何对父类(即子类所基于的类)所做的修改。用户自定义类与基类相似,但由用户定义,并且可用来派生子类。,5.3 面向对象程序设计基础,5.3.2 基类,根据是否能够包容其他类,可以分为:容器类和控件类容器类容器类是包含其他容器的基类。将容器类的对象加入表单后,无论在设计时,还是在运行时,均可将

23、该容器类的对象作为一个整体进行操作,也可以对其包含的对象进行处理。例如,表单集(表单、工具栏),选项按纽组。见表5-2。控件类控件类是可以包含在其他容器类中的基类。例如,命令按钮和文本框就属于控件类。,5.3 面向对象程序设计基础,二、VFP中的基类的分类:,基类的最小属性集Class 该类属于何种类型BaseClass 该类由何种基类派生而来ClassLibrary 该类属于哪种类库ParentClass 对象所基于的类基类的最小事件集 Init 当对象创建时激活Destroy 当对象从内存中释放时激活Error 当类中的事件或方法程序中发生错误时激活,5.3 面向对象程序设计基础,三、基类

24、的最小属性集和最小事件集,一、引用对象引用对象前应确定该对象所对应的容器层次关系。(1)绝对引用绝对引用是指从容器的最高层次引用对象,给出对象的绝对地址,例如:Formset1. Form1. Pageframe1. Page1. Grid1. Column1. Text1 (2)相对引用相对引用是指在容器层次中相对于某个容器层次的引用。通常应用于某个对象的事件处理代码或方法程序代码中。Form1层: Pageframe1. Page1. Grid1. Column1. Text1 Form1中Text2层:thisform.Pageframe1. Page1. Grid1. Column1.

25、 Text1,5.3 面向对象程序设计基础,5.3.3 处理对象,5.3 面向对象程序设计基础,二、相对引用的关键词,This 该对象本身 Thisform 该对象所在的表单 Thisformset 该对象所在的表单集 Parent 包含该对象的直接容器 _Screen 屏幕的对象 ActiveForm 当前活动表单 ActivePage 当前活动页面 ActiveControl 当前活动表单中具有焦点的控件例如:对当前活动表单中的当前活动控件的应用:_SCREEN.ActiveForm.ActiveControl,对象的属性可以在设计时设置,也可在运行时设置, 但也有些属性是只读的,即不可更

26、改;设置方法:a)在程序代码中设置: 引用对象.属性=值b)在“属性”窗口中进行可视化设计 例如:thisform.Text1.Value=DATE()thisform.Text1.ForeColor=RGB(255,0,255)thisform.Text1.BackColor=RGB(192,192,192)thisform.Text1.FontName=“黑体”,5.3 面向对象程序设计基础,三、设置对象属性,对同一对象多个属性的设置,可采用WithEndWith结构 例如:WITH thisform.Text1.Value=DATE().ForeColor=RGB(255,0,255).

27、BackColor=RGB(192,192,192).FontName=“黑体”ENDWITH,5.3 面向对象程序设计基础,采用 WITHENDWITH结构简化,对象的方法需要显式调用,且可在应用程序的任何地方。 调用方法程序的语法为: 引用对象 . 方法程序 例如:调用hide方法来隐藏表单: thisform.hide从内存中释放表单: thisform.Release刷新表单: thisform.Refresh设置输入焦点在文本框上:thisform.text1.SetFocus,5.3 面向对象程序设计基础,四、调用对象的方法程序,当对象的事件发生时,该事件的过程代码就被自动执行。如

28、果事件没有与之相关的处理程序,则事件发生时不会 发生任何操作。例如:用户单击命令按钮,将产生一个Click事件,命 令按钮的Click事件代码被执行。需要特别强调说明:事件一般是由用户的交互方式触发的,如单击、双击鼠 标,按下键盘上的键,也有些是被系统触发的,如计时器控 制中的 Timer 事件。在没有事件发生时,用户也可以显式地调用与事件相关 的过程,如语句: thisformset.form1.Activate 将使Activate事件代码被执行,但并不激活这个表单。,5.3 面向对象程序设计基础,五、对象事件的响应,5.3 面向对象程序设计基础,5.3.4 事件模型,一、核心事件VFP提

29、供了比较全面的事件处理机制,使得程序员能够较容易地为用户设计基于事件驱动的、内容更丰富的交互环境。每一个类都有自己的事件集合,不同的类有不同的事件种类,如计时器具有Timer事件,而其它的类则没有,但也有一些事件是大多数类都具有的,称之为通常使用到的、大多数类都具有的VFP核心事件。参见表5-6。,5.3 面向对象程序设计基础,二、容器层次与类层次中的事件,为控件编写事件代码应注意的原则:(1)容器不处理所包含的控件相关联事件;例如,单击表单上的命令按钮,激发的是命令按钮的Click事件,而不是表单的Click事件。在容器层次中,当事件发生时,只有与事件相关联的最里层对象识别该事件,更高层的容

30、器不识别该事件。(2)若没有与控件相关联的事件代码,vfp将在更高的类层次上检查是否有与此事件相关联的控件代码。例如,选项按钮组(设置了Click事件代码)中有2个选项按钮,其中Option1有Click事件代码,Option2没有Click事件处理代码,当单击Option2时,执行选项按钮组的Click事件代码。,5.3 面向对象程序设计基础,三、事件激发的顺序,基于事件驱动的编程技术不同于传统的过程化程序设计,程序的执行顺序不是在设计时确定的,而是取决于事件的顺序。有时一个用户动作只触发一个事件,而有些情况下会有多个事件接连发生,如包含多个对象的表单被启动运行的时候,这样的情况下,了解事件

31、发生的顺序是很重要的,否则就无法确定该往哪个事件中写入代码。见表5-7。,5.3 面向对象程序设计基础,焦点事件的激发顺序:when事件、gotfocus事件、 valid事件、lostfocus事件对象创建事件的激发顺序:load事件、 init事件、 activate事件对象释放事件的激发顺序destroy事件、unload事件,常用事件的激发顺序,在vfp应用程序中,事件循环是由READ EVENTS命令建立、 CLEAR EVENTS命令终止的交互时刻环境。当发出 READ EVENTS命令时,VFP启动事件处理。 发出 CLEAR EVENTS命令时停止事件处理。READ EVENT

32、S命令通常时出现在应用程序的主程序中,或主表单的某事件处理程序中。在启动事件循环之前需要建立一种退出事件循环的方法,而且必须确保界面有这种发出CLEAR EVENTS命令的机制(如表单的退出按钮),否则进入死循环。,5.3 面向对象程序设计基础,5.3.5 事件驱动和事件循环,要点总结,掌握基本程序控制语句的用法,掌握创建结构化程序、用户自定义函数和过程的方法,掌握面向对象的程序设计的概念,掌握引用对象、设置对象属性和调用对象的方法程序的方法,了解对象对事件的响应、容器层次与类层次中的事件发生情况以及事件激发顺序,掌握事件驱动和事件循环的概念,掌握事件驱动和事件循环的概念,实验操作说明,程序的

33、编辑与保存程序调试,一、程序的创建与编辑,程序的创建步骤: 方法一: 在项目管理器中,“代码”选项卡,选定“程序”,单击“新建”按钮,打开程序编辑窗口。在编辑窗口中输入程序。,方法二:利用“文件”菜单下的“新建”菜单项,选择“程序”,单击“新文件”; 方法三:在命令窗口中输入MODIFY COMMAND ,也可以打开程序编辑窗口;,二、保存程序,将编辑好的程序保存,文件类型为prg。三、运行程序方法一:在项目管理器中,选定“代码选项卡”,选定“程序”,选择某个程序文件,单击“运行”按钮;方法二:在程序编辑状态下(程序编辑窗口打开时),利用工具栏上的运行按钮方法三:在命令窗口,执行命令 DO 程

34、序名.prg,四、程序调试,程序中常见的是语法错误和逻辑错误,两种错误的调试方法不同。,1、语法错误语法错误,可以在程序执行时,由系统自动检测,如下:,选择“取消”按钮,在编辑窗口中直接修改。,错误点,2、逻辑错误逻辑错误是指程序能够顺利运行,但不能达到预定的功能。利用“工具”菜单下的“调试器”菜单项,设置断点,跟踪调试,如下:,断点设置:在调试器窗口中,对应的代码行的最左侧,双击鼠标即可 单步跟踪:按F6或者F8,或者 按钮,观察局部窗口中变量的值:,判断各个变量值的变化,确定程序是否达到预定功能,课后习题,1、下列命令中,不能使程序跳出循环的是 。A LOOP B EXIT C QUIT

35、D RETURN 2、采用面向对象的程序设计方法设计的应用程序,其功能的实现是_事件_由驱动的。 3、在表单的Load、Activate和Init这三个事件中,_ init_ 事件不能引用表单及表单中的对象,_Activate _ 事件最后一个被触发。 4、在运行程序文件(.PRG)时,系统会自动地对程序文件进行“伪编译“,包括对程序的词法检 查和语法检查等系统生成的“伪编译“程序的文件扩展名为.FXP,课后习题,5、执行以下程序段后,屏幕显示的运行结果为 15 。 【程序清单】(2009年秋省二级笔试题)CLEAR x=12 Do WHILE .T. x=x+1 IF x=INT(x/4)*

36、5 ?x ELSE LOOP ENDIF IF X10 EXIT ENDIF ENDD0,课后习题,6、运行下面的程序段后,屏幕显示的运行结果是 9 。 (2010年春省二级笔试题)CLEARSET TALK OFFSTORE 3 TO n?ss(n)FUNCTION SSPARAMETERS X y=1p=0FOR i=1 TO xy=y*ip=p+yENDFORRETURN PENDFUNC,课后习题,7、完善下列程序,其功能是显示如图3所示的“九九乘法表“SET TALK OFF CLEARFOR m=1 TO 9? STR(m,2)+“:“FoR n=1 TO m?STR( m*n ,

37、4)ENDFORENDFoR1: 12: 2 43: 3 6 94: 4 8 12 165: 5 10 15 20 256: 6 12 18 24 30 367: 7 14 21 28 35 42 498: 8 16 24 32 40 48 56 649: 9 18 27 36 45 54 63 72 81,课后习题,8、完善下列自定义函彖STR_RV(),其功能是将一个字符串(假设所有字符均为ASCII和GB2312字符集中的字符)进行“反序“。例如,STR RV(“ABCD“)的返回值为“DCBA“。FUNCTION str_rv()PARAMETERS cStrlcStr2=“DO WHILE .T.c1=LEFT(cStrl,1)IF ASC(c1)127 &AscII码大于127的字符为汉字(c1为半个汉字的机内码)c1=LEFT(cStrl,2)ENDIFcStr2= c1+cStr2 cStrl=RIGHT(cStr1,LEN(cStr1)-LEN(c1)IF LEN(cStrl)=0EXIT ENDIFENDDORETURN cStr2ENDFUNCTION,参考资料,江苏省计算机等级考试网江苏省高等学校计算机等级考试中心编二级考试试卷汇编 Visual FoxPro语言分册李雁翎Visual FoxPro应用基础与面向对象程序设计基础高等教育出版社 2002,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报