《12数据共用存储单元和数据块子程序--FORTRAN语言程序设计-教学课件.ppt》由会员分享,可在线阅读,更多相关《12数据共用存储单元和数据块子程序--FORTRAN语言程序设计-教学课件.ppt(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 九 章 数组第 十 章 语句函数第十二章 数据共用存储单元 和数据块子程序第十三章 文件第十一章 子程序1一、等价语句(一、等价语句(Equivalence语句)语句)Equivalence(变量表变量表1),(变量表),(变量表2),),作用:作用:使使同一个程序单位同一个程序单位中的两个或更多的变量共用中的两个或更多的变量共用 一个存储单元。一个存储单元。说明:说明:1.Equivalence 语句是说明语句,必须出现在程语句是说明语句,必须出现在程序单位的执行语句之前。序单位的执行语句之前。2.每一对括号内的变量表中,可以是变量名、数每一对括号内的变量表中,可以是变量名、数组名或数组
2、元素,但至少应该有两个变量名,组名或数组元素,但至少应该有两个变量名,中间用逗号隔开。不允许出现虚拟参数名。中间用逗号隔开。不允许出现虚拟参数名。Equivalence(W,ST)3.每对括号中的变量可以具有不同类型,一个等每对括号中的变量可以具有不同类型,一个等价语句可以使多组变量等价。价语句可以使多组变量等价。Equivalence(A,B),(X,Y,Z)24.等价语句可以节省内存。等价语句可以节省内存。Equivalence(IM,NPL,JJ2,NEG)不能同时或交叉使用!不能同时或交叉使用!5.等价语句允许用两个或更多的变量名代表同一个量。等价语句允许用两个或更多的变量名代表同一个
3、量。Equivalence(A,A0,A1)6.数组的等价数组的等价。Dimension A(8),B(4,2),C(2,2,2)Equivalence (A,B,C)等价于等价于Equivalence (A(1),B(1,1),C(1,1,1)7.不能利用等价语句建立矛盾的等价关系不能利用等价语句建立矛盾的等价关系。Dimension A(10)Equivalence (X,A(1),(X,A(3)3二、公用语句(二、公用语句(COMMON)语句语句传统传统Fortran程序不同单位之间的数据交换是通过:程序不同单位之间的数据交换是通过:虚实结合虚实结合优点:优点:符合结构化程序设计的指导思
4、想。程序有较好的可符合结构化程序设计的指导思想。程序有较好的可读性,容易跟踪数据的流向,便于对程序进行调试读性,容易跟踪数据的流向,便于对程序进行调试和维护。和维护。缺点:缺点:传输速度慢。传输速度慢。4read(*,*)a1,a2,a3call quad(a1,a2,a3,z1,z2)write(*,*)z1,z2endsubroutine quad(a,b,c,x1,x2)p=-b/(2.0*a)q=sqrt(b*b-4.0*a*c)/(2.0*a)x1=p+qx2=p-qendcommon z1,z2read(*,*)a1,a2,a3call quad(a1,a2,a3)write(*,
5、*)z1,z2endsubroutine quad(a,b,c)common x1,x2endcommon z1,z2,a1,a2,a3read(*,*)a1,a2,a3call quadwrite(*,*)z1,z2endsubroutine quadcommon x1,x2,a,b,cend例:用子例行程序解一元二次方程的两个根例:用子例行程序解一元二次方程的两个根6说明:说明:mon语句是说明语句,必须语句是说明语句,必须 出现在所有可执行语句之前。出现在所有可执行语句之前。3.一个程序只有一个无名公共区,一个程序只有一个无名公共区,同一程序单位中出现多个同一程序单位中出现多个common 语句,作用相当于一个。语句,作用相当于一个。4.公用语句区中的变量或数组类公用语句区中的变量或数组类 型必须按顺序一一对应型必须按顺序一一对应。5.变量或数组名只能在同一程序变量或数组名只能在同一程序 单位的公用语句定义中出现一次。单位的公用语句定义中出现一次。6.区分区分equivalence和和common语句语句 的作用的作用。common x,y,z(3)common a,bcommon x,y,z(3),a,bcommon a,b,ccommon a1,b1,a有名公共区、数据块子程序内容(自学)有名公共区、数据块子程序内容(自学)7