- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
函数和子程序
第七章 函数和子程序 本章重点 掌握模块化程序设计思想 掌握函数与子程序的定义及使用 理解全局变量与局部变量 了解参数的传送过程 通常把要多次进行某操作的部分编写为子程序 整个程序由一个主程序和若干子程序组成 使程序结构清晰,可读性好 程序总是从主程序开始执行 通常把独立模块的子程序和函数称为过程 命名规则与变量相同 子程序通过形式参数来接受数据或传递数据 没有参数时括号必须省略 可以用EXIT SUB退出子程序 子程序内不能有DATA语句, DATA语句应放在主程序内 子程序内不能再有SUB行 如省略CALL则必须省略括号,且子程序名和实参间应有空格 实参个数=形参个数,并按类型对应 实参可是变量,常量,表达式,函数 如无参数,括号必须省略 子程序之间可以互相调用 子程序的建立 键入主程序部分 在主程序的后面输入 SUB 子程序名[(形参)] 系统进入子程序窗口,出现 SUB 子程序名[(实参)] END SUB 用F2切换程序与子程序 DECLARE 语句 是一个说明语句 它是在键入子程序后自动生成的 说明该主程序包含几个子程序、子程序的名字及形式参数 有几个子程序,就有几个DECLARE语句 实参与形参的类型必须一致 值传递 是单向传递 形参与实参各占一个单元 形参的变化不影响实参值 实参是常量或表达式时,先计算表达式的值,然后把实参传递给形参 在值传递中 实参是变量时应将实参括起来 M=10 CALL SUB2((M)) SUB SUB2(N) N=N+2 END SUB 地址传递 双向传递 实参将地址传递给形参 实参与形参共同占用一个存储单元 在主程序中实参占用存储单元 进入子程序后形参占用存储单元 子程序执行后,形参让出存储单元,将值传递给实参,实参占有该单元 地址传递的形式 a=5:b=8 CALL sub3(a,b) SUB sub3(x,y) x=x+2 y=y+2 END SUB 模块化的函数 独立模块的函数的定义 当无形参时必须省略括号 函数名起名规则与变量相同 由函数名带回函数值,所以在函数中至少给函数名赋值一次,函数名本身有类型(加% , , ! , # , $) 函数名在函数体内不能参与运算或输出 可用EXIT FUNCTION结束函数 函数体内不能有FUNCTOIN和SUB行 STATIC用来指定函数中的变量为静态变量,调用函数结束后仍保留函数体中的值,作为下次调用该函数的初值 例:求三个整数的最大值 实参个数=形参个数,类型必须一一对应 实参可以是变量,常量,表达式 若函数没有形参,则括号必须省略 函数的调用不能作为一条独立语句 模块化函数的数据传递与子程序的数据传递方法相同 用一个函数求圆面积。累计5个圆面积之和,在函数中累计调用函数的次数 运用STATIC参数 QB7-7 求4到7的阶乘之和 QB7-8 函数与子程序的区别 函数是通过函数名回送一个结果值,仅用于计算单个函数值 子程序的结果由实参带回,可以包括多个结果 函数的调用出现在表达式中,而子程序的调用必须作为一个单独的语句 子程序内至少有一个RETURN语句 主程序与子程序的变量在整个程序中都有效 求三角形的面积 Def fns(a,b,c)=(a+b+c)/2 Def fna(a,b,c)=(fns(a,b,c)-a)*fns(a,b,c)- b)*fns(a,b,c)-c) Def fnarea(a,b,c)=sqr(fns(a,b,c)*fna(a,b,c)) Print “area=”;fnarea(3,4,5) end 局部变量:只在本模块中有效的变量 全局变量:在所有模块中都有效的变量 不加以全局说明的变量都是局部变量 DIM SHARED 对数组做全局说明 COMMON SHARED 对变量做全局变量说明 全局变量不能重复定义,且只能在主程序中定义,必须在所有可执行语句前定义 在一个过程(函数或子程序)执行的过程中又调用另一个过程 例求 本章小结 模块化程序设计的应用 函数与子程序的设计思想 利用参数传递形式程序 全局变量与局部变量的使用 DECLARE SUB AREA (R!) CALL AREA(10) END SUB AREA (R) S = 3.14 * R * R PRINT R=; R, AREA=; S END SUB DECLARE SUB AREA () COMMON SHARED R CLS R = 10 PRINT R=; R C
您可能关注的文档
最近下载
- 2023年武汉科技大学计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 乳腺癌-病例讨论.ppt VIP
- 职业教育课程思政.pptx
- 2020 电力市场交易人员培训考核规范.docx VIP
- Q_GDW 12070-2020 配电网工程标准化设计图元规范.docx VIP
- csds_CSDS100-21-0 对苯二甲酸物质安全资料表SDS或化学品安全技术说明书MSDS.pdf VIP
- 《纪律处分条例》修订课件.ppt VIP
- 乳腺癌病例讨论.ppt VIP
- 护理学术会议心得体会汇报.pptx
- 2023年武汉科技大学网络工程专业《计算机网络》科目期末试卷A(有答案).docx VIP
文档评论(0)