ImageVerifierCode 换一换
格式:PPT , 页数:71 ,大小:285KB ,
资源ID:682719      下载积分:11 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/682719.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(子程序、过程、自定义函数PPT课件.ppt)为本站上传会员【胜****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

子程序、过程、自定义函数PPT课件.ppt

1、第10章 子程序、过程、自定义函数、内存变量与数组1.10.1 子程序一、子程序与主程序的概念 结构化程序设计方法的一个核心思想是程序的模块化,它可把一个大的复杂的应用程序按功能分解成若干个相对独立的模块,这个模块就叫做子程序。通过模块的组合来完成一个大的复杂的应用程序的编写。子程序是一个为实现某个功能的独立程序。其特点是:它总被其它程序调用而一般不能单独执行。通常把调用它的程序称为主程序,被主程序调用的程序称为子程序。当然,其概念也是相对的,即子程序也可以调用其他子程序。2.二、子程序的建立与修改1建立、修改子程序 Modify Command 参数说明:子程序的建立、修改和存盘与其它VFP

2、程序一样,用Modify Command 命令或用菜单建立和修改,其扩展名也是Prg。子程序一定要用Return命令结束。3.2Return命令 Return参数说明:Return如不作任何选项,该语句结束子程序文件的运行,返回到调用子程序的主程序的下一个语句,继续执行。三、子程序的调用 Do子程序文件名 主程序调用子程序后,会通过子程序中的Return命令返回到主程序调用子程序的下一条命令继续运行。4.例:编程求N!+M!的和 Sum=0 P1=1 Do Jc Sum=Sum+P1 Do Jc Sum=Sum+P1?”N!+M!的值=”+Str(Sum)Return Modi Comm Jc

3、建立子程序jc P1=1 Input“请输入计算阶乘的值”To A For I=1 To A P1=P1*I EndFor Return5.例:编写一个完成对“学生档案表”按“姓名”查询或按“学号”删除的程序。主程序名Main.Prg。查询子程序名Cx.Prg,Sc.Prg删除子程序名Sc.Prg。*主程序main.Prg Use 学生档案表 Do While.T.Clear K=0 6,12 Say 1.按姓名查询 8,12 Say 2.按学号删除记录 10,12 Say 3.退出系统 12,12 Say 请输入相应的选择号 Get K Read6.Do CaseCase K=1 Do C

4、x&调用子程序cx.PrgCase K=2 Do Sc&调用子程序sc.PrgOtherwise 14,20 Say“输入的选择号有错!”EndcaseWait 是否继续(Y/N)?To AIf Upper(A)YExitEndifEnddoReturn7.子程序Cx.Prg功能:输入姓名查询记录Do While.T.ClearAccept 请输入待查询的姓名 To XmLocate For 姓名=XmIf Eof()?查无此人!Else DisplayEndifWait 是否继续查询(Y/N)?To AIf Upper(A)Y ExitEndifEnddoReturn 8.*子程序Sc.Pr

5、g功能:输入学号删除记录Do While.T.ClearAccept 请输入要删除的记录的学号:To XhLocate For 学号=XhIf Found()DeleDisplayWait 是否要作物理删除(Y/N?)To BIf Upper(B)=YPackEndIfElse?输入有错,没有该学号!EndifWait 是否继续删除(Y/N)?To AIf Upper(A)YExitEndIfEndDoReturn9.10.2 过程 过程是子程序的另一种形式,一个过程也是一个为了实现某个功能的程序段。过程是主程序文件的一个组成部分,习惯上常把它写在主程序的最后。一个主程序可以包括多个过程,但每

6、个过程都要用Procedure过程名开头来说明过程名、用Return来结束一个过程。10.一、过程的编写格式 Procedure过程名&以过程说明语句开头 过程体命令序列&过程体Return To Master/To&过程的结束语句11.参数说明:Procedure过程名:过程总是写在主程序的后面,每个过程都要用Procedure过程名开头来说明过程名,主程序通过Do命令能够直接调用过程。过程体命令序列:是一个完成指定任务的程序段,是过程的核心部分。Return:是过程的结束语句,每个过程必须用Return结束。二、过程的调用 Do过程名12.例:对任意给的正整数A、B、C,用过程编写程序计算

7、S=A!+(3/5)*B!+(C!/2)*主程序JSG.PRGSet Talk OffClearT=1Input“A=”To XDo JcA1=TInput“B=”To XDo JcB1=TInput“C=”To XDo JcC1=T?”S=”,A1+(3/5)*B1+(C1/2)Return13.求阶乘的过程Jc,注意:应直接写在主程序后面。Procedure Jc T=1For I=1 To X T=T*IEndforReturn14.10.3 过程文件 如果在主程序中过程太多,那么,主程序调用多个过程、多次访问磁盘会影响到程序的运行速度。为了克服调用多个过程、多次访问磁盘的问题,一般使用

8、过程文件来解决。过程文件是由若干个过程组成的一个独立程序文件。它把多个过程放在一个过程文件中,其文件类型仍为Prg。过程文件一旦被打开,过程文件中包含的所有过程都被打开。从而,克服了调用多个过程、多次访问磁盘的问题,提高了程序运行的速度。15.一、建立过程文件 Modify Command过程文件名 过程文件是一个独立程序文件,同样是用Modify Command过程文件名建立的。二、过程文件的编写格式 过程文件中的每一个过程都要用Procedure 开始来说明一个过程名,用Return来结束一个过程。Procedure过程名1 过程体命令序列 Return&每个过程都要用return结束 P

9、rocedure过程名n 过程体命令序列n Return 16.三、过程文件的使用 使用过程文件一般要经过以下几步:打开过程文件、调用过程文件和关闭过程文件。1打开过程文件 Set Procedure To 在主程序调用过程前,一定要打开包含该过程的过程文件。过程文件一旦打开,包含在该过程文件中的所有过程都已打开。系统规定,某一时刻只能打开一个过程文件。17.2过程文件中的过程的调用 Do过程名 过程文件被打开后,能用DO过程名命令来调用过程文件中的任何一个过程。主程序执行到过程调用语句,就转去执行指定的过程,执行到Return语句则返回主程序调用过程的下一条命令。3过程文件的关闭 Set P

10、rocedure To Close Procedure 过程文件打开后,若不再调用过程。为了节省内存空间和保护过程文件,应将过程文件关闭。18.例:假设主程序名为MAIN.PRG,过程文件名为GCWJ.PRG,过程文件中包含二个名为PA和PB的过程。过程文件及主程序内容如下:*主程序MAIN.PRG Set Procedure To Gcwj&打开过程文件 Do Pa&调用过程pa Do Pb&调用过程pb?这是主程序 Close Procedure&关闭过程文件 Return*过程文件gcwj.Prg Procedure Pa?这是过程pa Return Procedure Pb?这是过程p

11、b Return19.例:把主菜单程序中的追加记录、修改记录、删除记录作为个过程编写成一个过程文件。*主程序Main.Prg Set Talk Off K=0 Use Xsda Set Procedure To Gc Do While.T.Clear K=0 6,12 Say”1.追加记录”8,12 Say“2.修改记录”10,12 Say“3.删除记录”12,12 Say”4.退出系统”14,12 Say“请输入相应的选择号”Get K Read20.Do Case Case K=1 Do Zj&调用追加记录过程zj.Prg Case K=2 Do Xg&调用修改记录过程xg.Prg Cas

12、e K=3 Do Sc&调用删除记录过程sc.Prg Case K=4 Exit Otherwise Wait”输入的选择号有错,请重新选择输入!”EndcaseEnddo21.Set Procedure ToReturn*Gc.Prg过程文件Procedure Zj&追加记录的过程zj Append&用全屏幕追加记录ReturnProcedure Xg&修改功能过程xg Input 请输入修改记录的学号:To Xh Locate For 学号=Xh If Found()Edit&用edit修改该记录 Else?“查无该学生!”EndIfReturn22.Procedure Sc&删除功能过程

13、sc Accept 请输入删除记录的条件表达式:To Nr Locate For&Nr If Found()Display Delete Wait“是否要作物理删除(Y/N)?”To A1 If Supper(A1)=”Y”Pack EndIf Else?“查无满足条件的记录!”Endif Return 23.10.4 自定义函数 尽管Visual FoxPro系统提供了丰富的标准函数,但有时它们并不能满足某些应用程序的设计要求。这时,用户就可以为应用程序定义一些特殊的函数,用户自定义函数。一、自定义函数的基本概念 自定义函数和子程序、过程相似,也是实现某个功能的一个程序块。自定义函数既可以写

14、在主程序的后面,也可以是一个独立的程序。所不同的是自定义函数必须通过Return 返回一个函数值。24.二、自定义函数的建立 1、自定义函数可以和调用程序共处同一程序文件中,习惯上常把它写在主程序的最后。2、也可以用Modify Command 命令建立一个独立的程序,程序名应定义为函数名,其扩展名也是Prg。25.三、自定义函数的编写格式 不论自定义函数是写在主程序的后面,还是作为一个独立的程序来建立,其编写格式均为:Function函数名 Parameters形式参数表函数体 Return表达式26.参数说明:它是由字母、数字或下划线组成,必须以字母或下划线开头,不能与系统提供的标准函数名

15、同名。必须用Function函数名说明语句开头。Parameters:如果要向函数中传递参数,则必须用该语句定义形式参数表,各参数间用逗号隔开。尤其注意,形式参数表中各参数的类型必须与主程序的实际参数表相一致。Return:将的值作为函数值返回到调用程序中。27.四、自定义函数的调用 自定义函数的调用与系统标准函数的调用方法相同,其形式为:28.例:用自定义函数的形式,编写程序计算圆面积*主程序 Clear Input 请输入圆的半径:To A&输入要计算圆的半径 P=Area(A)&调用自定义函数area,(A)为实际参数?“圆面积s=”,P Return*自定义函数 Function Ar

16、ea&定义函数名为area Parameters R&定义函数的形参 R S=3.14159*R*R Return S&返回函数的值 29.例:用自定义函数计算组合数cmn=M!/N!/(M-N)!*主程序 Clear Input“请输入m的值”To M Input“请输入n的值”To N Cmn=Jc(M)/Jc(N)/Jc(M-N)?“Cmn=”,Cmn Return*自定义阶乘函数 Function Jc Parameter K T=1 For I=1 To K T=T*I Endfor Return T30.10-5 参数的传递 在实际应用中,有时需要在调用程序与被调用的子程序之间进行

17、一些参数的传递来提高程序设计的灵活性。无论是在子程序、过程,还是在自定义函数中,参数传递都是一个非常重要的应用。一、传送参数与接受参数的命令1传递参数的命令格式 Do With 2接受参数的命令格式 Parameters 31.3.参数传送与接受的规则 与应一一对应。接受参数的Parameters 命令必须是被调用程序(子程序、过程)的第一条可执行语句。当的数量少于的数量,多余的形式参数取逻辑假的值。32.二、参数传送方式 子程序、过程、函数与主程序之间的数据通信是通过实际参数与形式参数的对应传送来实现的,参数传送有值传送和地址传送两种方式。1值传送方式 当With 是常量、内存变量表达式列表

18、和加圆括号的简单内存变量时,这种传递接受参数的方式是值传送方式。值传送方式是一种单向传送,在调用时With 中的变量值会按顺序传递给Parameters 对应的变量。但返回时With 中的变量值不会随Parameters 对应变量值的变化而变化,With 中的内存变量在子程序中也不会被隐含。函数的参数传送方式默认为值传送方式。33.2地址传送方式 在实际变量参数前加符号为地址传送方式。当With 是简单内存变量列表时,这种传递接受参数的方式是地址传送方式。地址传送是一种双向传送,在调用时With 中的变量值会按顺序传递给Parameters 对应的变量。而返回时With 中的变量值会随Para

19、meters 对应变量值的变化而变化,With 中的内存变量在子程序中会被隐含。34.例:已知半径为R,求圆面积S。其程序及过程如下:*主程序 Clear S=0 Input 请输入圆的半径:To R1 Do Sub With R1,S&6,S为实际参数表,必须在过程的调用中说明?圆面积S=,SReturn*Sub过程 Procedure Sub&Sub过程说明语句 Parameters R2,Area&R、Area为过程的形式参数表,与实参表对应 Area=3.14159*R2*R2 Return35.例:求S=A!+B!+C!的值。*主程序 Store 0 To S,P1 For J=1

20、To 3 Input 请输入求阶乘的值 To X1 Do Pp With X1,P1 S=S+P1 Endfor?S=,S Return*过程pp Procedure Pp&过程说明语句 Parameters X2,P2&形式参数表 P2=1 For K=1 To X2 P2=P2*K EndFor Return36.10-6 内存变量的作用域 在多模块程序中,每一个内存变量都有自己的有效作用范围,通常称之为作用域。内存变量根据其作用域可分为全局变量、私有变量(普通)、局部(本地)变量和隐蔽变量四类。一、全局变量1全局变量的概念 所谓全局变量是一种可在所有程序的任何位置中定义、赋值、调用或更改

21、的变量。在Visual Foxpro运行期间,全局变量可以被所有的程序使用,而不管它是在那一层程序中定义的。所以,不管在哪一层程序改变了全局变量的值,这个改变都会反映到其他程序中。因此,定义全局变量要特别小心。程序执行结束后,除非用命令清除。否则,全局变量将一直保留在内存中。37.2全局变量的定义 Public 用Public定义的变量是全局变量,它将指定的变量定义为全局变量,并同时将这些变量的初值赋以逻辑假.F.。如果定义多个内存变量,中各变量名之间用逗号隔开。38.3全局变量的作用域 在Visual Foxpro运行期间,全局变量可以在所有的程序中起作用。在上层程序中定义的全局变量,如果在

22、下层程序中只是被重新赋值而没有改变变量类型,那么返回上层程序后,重新赋的值仍然有效。上层程序中定义的全局变量在下层程序中允许重新定义为同名的隐蔽型变量。这时,则把上层程序中定义的全局变量隐蔽起来。在该层程序中,只是重新定义的那个隐蔽型变量起作用。但返回上层程序后,隐蔽型变量被释放,全局变量恢复作用。39.例:全局变量示例。Public A,B,C A=25 B=125 C=A+B?主程序中变量C的值=+Str(C)Do Gc1?调用过程后C的值=+Str(C)Return Procedure Gc1 C=2*A+B?过程中C的值=+Str(C)Return40.6-2 普通(私有)变量1普通(

23、私有)变量的概念 普通(私有)变量是一种直接用赋值方法定义的变量。普通(私有)变量可以在任何一层程序中定义,普通(私有)变量可以在定义变量那层程序中或下层程序中起作用。如果对其进行修改,也只能影响到建立它的那层程序或下层程序。程序执行结束后,则这些普通变量也随之被释放。2普通变量的定义 普通(私有)变量的定义有直接赋值法和间接赋值法两种方法。(1)直接赋值法 A=123(2)间接赋值法 Store“Abcd”To A1,A2,A3 41.3普通(私有)变量的作用域 普通(私有)变量可以在定义变量那层程序中或下层程序中起作用。上层程序中定义的普通(私有)变量在下层程序中允许重新定义为同名的隐蔽型

24、变量。这时,则把上层程序中定义的普通(私有)变量隐蔽起来。在该层程序中,只是重新定义的那个隐蔽型变量起作用。但返回上层程序后,隐蔽型变量被释放,上层程序中定义的普通(私有)变量恢复作用。普通(私有)变量若在下层程序中只是重新赋值,则在返回上层程序仍然有效。42.例:普通(私有)变量的示例。ClearX=10Y=Fuc(20)W=30?X,Y,WReturnFunction FucPara ZM=X+ZW=40?X,M,WReturn M43.6-3 局部(本地)变量1局部(本地)变量的概念 局部变量是一种使用范围最为严谨的变量。局部变量只能在定义它的那层程序起作用,而不能被高层的或低层的程序访

25、问。一旦包含局部变量的程序执行结束后,则这些局部变量也自动随之被释放。局部变量可以区别于同名的全局变量,在程序中优先使用同名的局部变量。当你希望某些内存变量只能在某一层程序中起作用,那就需要将变量定义为局部变量,以防止与其它变量发生干扰。44.2局部(本地)变量的定义 Local 用Local定义的变量是局部变量,它将指定的变量定义为局部变量,并同时将这些变量的初值赋以逻辑假.F.。如果定义多个内存变量,中各变量名之间用逗号隔开。3局部(本地)变量的作用域 局部变量可以区别于同名的全局变量,在程序中优先使用同名的局部变量。局部变量只能在定义它的那层程序起作用,而不能被高层的或低层的程序访问。上

26、层程序中定义的局部变量变量在下层程序中允许重新定义为同名的隐蔽型变量。这时,则把上层程序中定义的局部变量隐蔽起来。在该层程序中,只是重新定义的那个隐蔽型变量起作用。但返回上层程序后,隐蔽型变量被释放,上层程序中定义的局部变量恢复作用。45.例:下面是一个有关局部变量使用的例题,请分析错误。Release all memory Local A Public B A=ABCD?主程序中的A值:,A?主程序中的B值:,B DO GC2?调用后的A值:,A?调用后的B值:,B?调用后的C值:,C Procedure GC2 Local C C=123?过程中的A值:,A?过程中的B值:,B?过程中的C

27、值:,C Return 46.6-4 隐蔽型变量1隐蔽型变量的概念 隐蔽型变量只是在当前的程序层中,把上层程序中已定义的同名的全局变量、普通(私有)变量和局部变量隐蔽起来。隐蔽后,你便可以在当前的程序层中创建和使用同名的变量。隐蔽型变量定义后,一定要赋值。否则,会提示“找不到变量”。2隐蔽型变量的定义 Private内存变量名表严格地说Private并不是在创建变量,只是把上层程序中已定义的同名的全局变量、普通(私有)变量和局部变量隐蔽起来。47.3隐蔽型变量的作用域 隐蔽型变量只能在当前定义的程序中有效,当Private所在的程序执行结束后,隐蔽型变量将自动被释放,它所隐蔽的上层程序中的变量

28、可恢复作用。而且,它的值与隐蔽前一样,不会有任何改变。48.例:理解主程序调用子程序过程中的变量屏蔽作用。*程序一Public AA=ABCB=123Local CC=456?A,B,CDo Sub1?A,B,CProc Sub1Private A,B,CA=BCD“B=456C=CDE?A,B,CReturn49.*程序二ClearPublic I,JStore 1 To I,J,KDo Scx2?主程序的输出结果:?I=+Str(I,2)+J=+Str(J,2)+K=+Str(K,2)CancelProcedure Scx2ClearPrivate J,K I=I*2J=2&J不赋值可否?

29、K=J+1?过程中的输出结果:?I=+Str(I,2)+J=+Str(J,2)+K=+Str(K,2)Return50.程序运行结果:过程中的输出结果:I=2 J=2 K=3主程序的输出结果:I=2 J=1 K=151.7 数组一、数组的概念 内存变量,其特点是一个内存变量只能存放一个数据。Visual FoxPro还有另一种内存变量类型,即数组变量。数组是一种特殊的内存变量,是以同一个名字组织起来的N个内存变量的集合。其中,每一个内存变量称为一个数组元素,每个数组元素都有各自的标识符。Visual FoxPro在内存允许的情况下,最多可建立65000个数组,每个数组最多可拥有65000个元素

30、每个数组元素的数据类型可以不同。对内存变量进行命名、赋值、保存、恢复、释放等操作对数组同样有效。数组在使用之前需要先定义,由专门的数组定义语句来实现。数组元素默认的初始值是逻辑值.F.。每个数组元素的数据类型可以不同,数组分为一维数组和二维数组。52.二、数组的定义 在通常情况下,数组在使用之前需要先定义,所谓定义数组,就是指明该数组的名称、确定数组的维数与大小、确定数组的作用范围。数组名以字符、下划线开头,可以包括字符、数字及下划线,最长可达254字符。Visual FoxPro支持一维及二维数组。一个数组的维数与大小决定了一个数组所能保存的元素的个数。如果是一维数组的话,该数组有几个元素

31、如果是二维数组,则该数组有几列、几行。根据数组的作用范围,数组又可分为局部数组和全局数组。53.1局部数组定义Dimension 数组名1(,),数组名2(,)2全局数组定义Public 数组名1(,),数组名2(,)54.参数说明:数组的定义包括二个内容:定义数组名、数组的维数或数组元素的个数。数组定义后,数组所有元素被自动赋为逻辑假“.F.”如果是定义一维数组,则表示数组元素的个数,如果是定义二维数组,则和表示二维数组的行数和列数。如果是定义多个数组,则各数组之间用逗号“,”分隔。数组定义后,数组的最小下标是1。数组可以重新定义,而且原数组元素的值可以根据重新定义的情况保持或删除。55.

32、例:数组定义示例。Dime Ar1(6),Mn(12)&定义二个一维局部数组public abc(12),Bcd(5,8)&定义一个一维全局数组和一个二维全局数组56.7-3 数组元素的表示与引用 数组元素的表示是对数组元素访问的标识符。数组元素的表示有数组下标和数组元素序号二种表示方法:数组下标表示方法:数组名,数组元素序号表示方法:数组名。对于一维数组而言,数组元素的下标表示方法与序号表示方法是相同的。对于二维数组而言,数组元素的下标表示法与序号表示法是不相同的,57.例:数组元素的下标与序号示例。Dime AB(6)下标表示:AB(1),AB(2),AB(3),AB(4),AB(5),A

33、B(6)序号表示:AB(1),AB(2),AB(3),AB(4),AB(5),AB(6)Dime CD(2,4)下标表示:CD(1,1),CD(1,2),CD(1,3),CD(1,4),CD(2,1),CD(2,2),CD(2,3),CD(2,4)序号表示:CD(1),CD(2),CD(3),CD(4),CD(5),CD(6),CD(7),CD(8)58.例:数组元素下标表示与数组元素序号表示。Dime A(5,8)Store 5 To AA(3,6)=A(1)+A(38)?A(2,7)+A(22)+A(1)59.7-4 数组的赋值 数组的赋值和内存变量赋值一样,有间接赋值和直接赋值二种,赋值

34、的形式有给整个数组赋值和给数组元素赋值二种。没有赋值的数组元素的值自动为.F.。1数组间接赋值Store表达式To数组名|数组元素Input 输入数据:To X(i)60.例:定义数组并给数组间接赋值。Dimension Ar(6),Mn(4,6)Store 12 To Ar&给Ar局部数组所有元素赋值为12Display Memory Like Ar Store“字符”To Mn(2,1)&给Mn局部数组Mn(2,1)元素赋值为“字符”Store 2005-11-08To Mn(2,2)&给Mn局部数组Mn(2,2)元素赋值为2005-11-08Store.T.To Mn(2,3)&给Mn局

35、部数组Mn(2,3)元素赋值为逻辑值.T.Store 24 To Mn(2,4)&给Mn局部数组Mn(2,4)元素赋值为24,其余为.F.Display Memory Like Mn61.例:建立一个X(N)、AB(5,8)的数组。ClearInput 请输入数组的元素数:To NDime X(N),AB(5,8)For i=1 To NInput 输入数据:To X(I)EndforDisplay Memory Like X62.For i=1 To 5For j=1 To 8Input 输入数据:To AB(i,j)EndforEndforDisplay Memory Like AB63.

36、2数组直接赋值例:定义数组并给数组直接赋值。Public Abc(12),Bcd(5,8)Abc=26&给一维全局数组abc赋值 Display Memory Like Abc Bcd=”ABCDEF”Display Memory Like Bcd Bcd(3,6)=12&给二维全局数组Bcd的第三行,第六列的元素重新赋值 Display Memory Like Bcd 64.7-5 数组与数据表之间的数据传递1从当前表向数组传送数据(1)传送当前记录数据到数组 Scatter Fields To 把表中的当前记录的字段按的顺序依次传送给数组元素。在传送的过程中,如果字段数多于定义的数组元素个

37、数,则系统会自动扩大数组元素个数来接受字段内容。如果定义的数组元素个数多于字段数,则多余的数组元素保持原来的值不变。65.(2)传送多个记录数据到数组Copy To Array数组名Fields 范围 For条件表达式 把当前表中满足条件的所有记录按的顺序依次传送给数组元素。在传送的过程中,如果字段数多于定义的数组元素个数,则系统也会自动扩大数组元素个数来接受字段内容。如果定义的数组元素个数多于字段数,则多余的数组元素保持原来的值不变。66.2从数组向当前表传送数据。(1)将数组数据传送到当前表的当前记录Gather From Fields Memo 从数组元素的第一个元素开始,按顺序依次将数

38、据传送给表的当前记录中指定的字段。在传送的过程中,数组与表各字段的数据类型必须一致。如果数组元素个数少于字段的个数,则多余的字段内容用空格插入。如果数组元素个数多于字段个数,则多余的数组元素中的数据不传送。67.(2)将数组数据传送到当前表的尾部 Append From Array Fields for 68.例:从下面的例题理解数组与数据表之间的数据传递。Use 课程代码表Scatter To A1Disp Memo Like A1List?Recno()Copy To Array A2 For 任课系代码=018Disp Memo Like A269.Append BlankGather From A1ListAppend From Array A2ListAppend From Array A2 For A2(4)=60List 70.谢谢观看!

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服