第八章子程序.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PROGRAM FRACTION COMMON N1,N2,N3,N4,C1,N5,N6 !在无名公用区中存储7个变量与ADD通信 INTEGER(1) C1 INTEGER N1,N2,N3,N4,N5,N6 WRITE(*,*)PLEASE INPUT K,L,M,N READ(*,*)N1,N2,N3,N4 WRITE(*,*)PLEASE INPUT C(1,-1) READ(*,*)C1 CALL ADD() !调用ADD子程序求结果的分子分母 IF (C1==1) THEN WRITE(*,100)N1,N2,N3,N4,N5,N6 ELSE WRITE(*,200)N1,N2,N3,N4,N5,N6 ENDIF 100 FORMAT(I4,/,I4,+,I4,/,I4,=,I4,/,I4) 200 FORMAT(I4,/,I4,-,I4,/,I4,=,I4,/,I4) END PROGRAM FRACTION 程序的运行结果是: 第一次运行: PLEASE INPUT K,L,M,N 1,2,1,3 (回车) PLEASE INPUT C(1,-1) 1 (回车) 1/ 2+ 1/ 3= 5/ 6 第二次运行: PLEASE INPUT K,L,M,N 5,6,3,4 (回车) PLEASE INPUT C(1,-1) -1 (回车) 5/ 6- 3/ 4= 1/ 12 8.6.3 数据块子程序 如果一个程序中要对一部分变量赋予相应初值,并且这些初值为该程序中几个不同的程序单元所引用,则可以建立一个特殊的程序单元,在该程序单元中对这些变量进行集中说明并使用DATA语句赋初值,完成这种任务的程序单元称为数据块程序单元。 数据块程序单元的形式是: BLOCK DATA [程序名] 程序单元 END [BLOCK DATA] 如: BLOCK DATA EXAM_BLOCKDATA INTEGER A,B,C,D DIMENSION A(100) COMMON /AREY1/A COMMON /AREY2/B,C,D END BLOCK DATA EXAM_BLOCKDATA FUNCTION F(x,y) INTEGER X1,Y1 COMMON /AREY2/X1,Y1/ ..... END F PROGRAM TEST COMMON/ AREY2/M,N ...... END TEST 上述示例中对主程序TEST的变量M、N和函数子程序F中的变量X1、Y1建立了公用存储关系并赋了初值0。 数据块子程序应注意如下问题: 1.? 数据块子程序中只能包含DATA、COMMON、EQUIVALENCE以及数据类型说明语句,不可包含任何可执行语句。 2.? 数据块中的公用区只能是有名公用区,并且对这些有名公用区中的所有变量,都必须使用COMMON语句一一排列。 3.? 数据块子程序不能被别的程序单元调用,它所要完成的功能(给变量赋初值)在该程序单元进行编译时即已完成。 4.? 数据块程序是一种特殊的程序单元,在数据块程序中进行的变量说明并不能代替其它程序单元中对变量的说明,并且,数据块子程序并没有在不同的程序单元之间建立变量的公用存储关系,不同程序单元之间变量的公用存储关系还是在各程序单元内部的数据说明部分完成的。 8.7 内部子程序 前面所讨论的子程序,包括函数子程序、子例行程序和数据块子程序都是作为一个独立的程序单元,所谓独立的程序单元具有两个特征: 1.? 从形式上看:各种独立的程序单元的源程序是分别编写的,当上一个程序单元的代码编写完后(出现了程序单元的结束语句END),才开始另一个程序单元代码的编写,代码之间没有嵌套、没有交叉。 2.? 从变量的作用域来看,每个程序单元拥有一组独立的变量空间,各程序单元之间的变量是彼此独立的,相互不干扰。两个程序单元要传递数据时,要么使用参数的虚实结合方法,要么通过公用数据区。任何程序单元都不能直接引用其它程序单元的变量。 如果一个子程序建立在某个程序单元的内部,那么这个子程序就不再是一个程序单元,而是一个内部子程序。如: PROGRAM EX1 PROGRAM EX2

文档评论(0)

yuguanyin2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档