当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第十二章 数据共用存储单元和数据块子程序(赵永军)

资源类别:文库,文档格式:PPT,文档页数:26,文件大小:777.5KB,团购合买
1 等价语句(equivalence语句 ) 等价语句:使同一程序单元中的多个变量共用同一个 存储单元。 2 公用语句 (common语句) 公用语句:使不同程序单元的变量共用同一个存储单 元。 3 数据块子程序(自学) 数据块子程序:给公用区中的变量赋初值。
点击下载完整版文档(PPT)

第12章数据共用存储单元 和数据块子程序 §1等价语句 quivalence语句) 等价语句:使同一程序单元中的多个变量共用同一个 存储单元。 §2公用语句( common语句) 公用语句:使不同程序单元的变量共用同一个存储单 §3数据块子程序自学) 数据块子程序:给公用区中的变量赋初值。 2021/2/24

1 2021/2/24 §1 等价语句(equivalence语句 ) 等价语句:使同一程序单元中的多个变量共用同一个 存储单元。 §2 公用语句 (common语句) 公用语句:使不同程序单元的变量共用同一个存储单 元。 §3 数据块子程序(自学) 数据块子程序:给公用区中的变量赋初值。 第12章 数据共用存储单元 和数据块子程序

§1等价语句(p292294) 2 等价语句即 equivalence语句)的作用是使本程序单元 中的多个变量共用同一个存储单元。 一般飛式:equⅳ valence(变量表1,(变量表2), 功能:每一对括号内变量表中的变量将占用同一个存 储单元,通常称这些变量等价。 9A: equivalence(w, st),(im, npl, jj2, neg) ()每个变量表中至少应有两个变量,变量之间用逗号 隔开,变量可以是普通变量、数组或数组元素,但不能是 虚参。 §1等价语句 2021/2/24

2 2021/2/24 §1 等价语句(p292-294) 等价语句(即equivalence语句)的作用是使本程序单元 中的多个变量共用同一个存储单元。 一般形式: 功能:每一对括号内变量表中的变量将占用同一个存 储单元,通常称这些变量等价。 如: ⑴ 每个变量表中至少应有两个变量,变量之间用逗号 隔开,变量可以是普通变量、数组或数组元素,但不能是 虚参。 equivalence (变量表1), (变量表2), … equivalence (w, st), (im, npl, jj2, neg) §1 等价语句

(2)变量表中的变量类型既可以相同也可以不同:当类3 型相同时,变量将具有相同的值;当类型不同时,由于不 同类型变量所占的存储单元长度不同,变量将不具有相同 的值。 【例121】 equivalence(im,np,j2,neg) im=1 write(", )im, npl, jj2, neg end 【例122】 equivalence(a,b, a=1.0 write(, ")a, b, end §1等价语句 2021/2/24

3 2021/2/24 ⑵ 变量表中的变量类型既可以相同也可以不同:当类 型相同时,变量将具有相同的值;当类型不同时,由于不 同类型变量所占的存储单元长度不同,变量将不具有相同 的值。 【例12.1】 【例12.2】 equivalence (im, npl, jj2, neg) im=1 write(* , *)im, npl, jj2, neg end equivalence (a, b, m) a=1.0 write(* , *)a, b, m end §1 等价语句

(3)当变量表中的变量是数组名或数组元素、且数组的4 类型相同时,则每个数组中相对应的数组元素将共用同一 个存储单元。 如: real a(8),b(42,c(2,2,2) equivalence(a, b, c) a(1)a(2)a(3)a(4)|a(5)a(6)(a7)a(8) b(1,1)b(2,1)b(3,1)b(41)b(1,2)b(2,2)b(32)b(4,2) c(1121121c(21c(112c(2,1,2)c(12,2)c(222) 如: real a(2,3),b(4) equivalence (a(2, 2),b(2)) a(1112(21)a(1,2)a(2,2)a(1,3)a(2,3) b(1)b(2)b(③3)b(4) §1等价语句 2021/2/24

4 2021/2/24 ⑶ 当变量表中的变量是数组名或数组元素、且数组的 类型相同时,则每个数组中相对应的数组元素将共用同一 个存储单元。 如: 如: real a(8), b(4,2), c(2,2,2) equivalence (a, b, c) §1 等价语句 a(1) b(1,1) c(1,1,1) a(2) b(2,1) c(2,1,1) a(3) b(3,1) c(1,2,1) a(4) b(4,1) c(2,2,1) a(5) b(1,2) c(1,1,2) a(6) b(2,2) c(2,1,2) (a7) b(3,2) c(1,2,2) a(8) b(4,2) c(2,2,2) real a(2,3), b(4) equivalence ( a(2,2), b(2) ) a(1,1) a(2,1) a(1,2) b(1) a(2,2) b(2) a(1,3) b(3) a(2,3) b(4)

如: real a(2,3),b(4) 5 equivalence (a(1,2),c), b(1),c) a0111a(21)a(1,2)|a(22)a(1,3)a23 b(1)b(2)b(3)b(4) (4)当变量表中的变量是数组名或数组元素、但数组的 类型不同时,则每个数组中的数组元素是按照其存储长度 对应的。 如: real b(4 设一个实型数据占 character c(8 4个字节,一个字符 eqμ divalence(b(2,c(2)型数据占1个字节。 b(1) b(2) b(3) b(4) §1等价语句 2021/2/24

5 2021/2/24 b(1) b(2) b(3) b(4) c(1) c(2) c(3) c(6) c(7) c(8) 如: ⑷ 当变量表中的变量是数组名或数组元素、但数组的 类型不同时,则每个数组中的数组元素是按照其存储长度 对应的。 如: §1 等价语句 a(1,1) a(2,1) a(1,2) c b(1) a(2,2) b(2) a(1,3) b(3) a(2,3) b(4) real a(2,3), b(4) equivalence ( a(1,2), c ), ( b(1), c ) real b(4) character c(8) equivalence ( b(2), c(2) ) 设一个实型数据占 4个字节,一个字符 型数据占1个字节。 c(4) c(5)

(5)不能利用等价语句建立矛盾的等价关系。 6 如: real a(10) equivalence(x, a(1),(x, a( 3)) 如 real a(5), b(10) equivalence (a(0),b(2)),(a(3),b (3)) 练习:教材p301习题一、习题二。 习题 a(1) 1. dimension a(5),b(3) a(2) b(1) equivalence (a 3),b(2)) a a(4) b(3) a(5) §1等价语句 2021/2/24

6 2021/2/24 ⑸ 不能利用等价语句建立矛盾的等价关系。 如: 如: 练习:教材p301习题一、习题二。 §1 等价语句 real a(10) equivalence ( x, a(1) ), ( x, a(3) ) real a(5), b(10) equivalence ( a(1), b(2) ), ( a(3), b(3) ) 1. dimension a(5), b(3) equivalence (a(3), b(2)) 习题一 a(1) a(2) a(3) a(4) a(5) b(1) b(2) b(3)

2 dimension e(2, 2, 2), f(5) 3. integer i(3) equivalence (e(2, 1, 2), f(4 )) character*2 c(5) real r(8) e(1,1,1) equivalence (r(2), c(2)),i, c) e(2,1,1) (1)=) e(1,2,1) f(1) 2) c(2)}i(2 c(3)}(3) e(2,2,1) f(2) ……… c(4) c(5) e(1,1,2) f(3) r(4) ………… e(2,1,2) f(4) e(122 f(5) r(5) e(22,2) r(7E r(8)1∷ §1等价语句 2021/2/24

7 2021/2/24 c(1) 2. dimension e(2,2,2), f(5) equivalence (e(2,1,2), f(4)) §1 等价语句 e(1,1,1) e(2,1,1) e(1,2,1) e(2,2,1) e(1,1,2) e(2,1,2) e(1,2,2) e(2,2,2) f(1) f(2) f(3) f(4) f(5) 3. integer i(3) character*2 c(5) real r(8) equivalence (r(2), c(2)), (i, c) r(1) r(2) r(3) r(4) r(5) r(6) r(7) r(8) c(2) c(3) c(4) c(5) i(1) i(2) i(3)

4. integer i(6) 8 character*8 d(4 equivalence (d(1),r),d(2), c),(d( 3),i(2)) d(1){ d(2) d(3) "" ……………… 4 5 }i(6) d §1等价语句 2021/2/24

8 2021/2/24 §1 等价语句 4. integer i(6) character*8 d(4) equivalence (d(1), r), (d(2), c), (d(3), i(2)) d(1) d(2) d(3) d(4) r c i(2) i(3) i(4) i(5) i(1) i(6)

§2公用语句(p294-299) 9 common语句的作用是使不同程序单元的变量共用同 一个存储单元,从而使这些变量具有相同的值,实现不同 程序单元之间的数据传递。 不同程序单元之间的数据传递有两种实现方式:④采 用实参和虚参结合的形式实现;②利用 common语句实 现。 在一个 Fortran程序运行时,不同程序单元的变量共用 的存储单元放在内存中该程序的一个公用数据区内,称为 公用区。 公用区实现的是一种全局变量的功能,只不过在不同的 程序单元中变量的名字不同而已。 52公用语句 2021/2/24

9 2021/2/24 §2 公用语句(p294-299) common语句的作用是使不同程序单元的变量共用同 一个存储单元,从而使这些变量具有相同的值,实现不同 程序单元之间的数据传递。 不同程序单元之间的数据传递有两种实现方式:① 采 用实参和虚参结合的形式实现;② 利用common语句实 现。 在一个Fortran程序运行时,不同程序单元的变量共用 的存储单元放在内存中该程序的一个公用数据区内,称为 公用区。 公用区实现的是一种全局变量的功能,只不过在不同的 程序单元中变量的名字不同而已。 §2 公用语句

公用区有两种类型:④无名公用区,任何一个 Fortran0 程序中只可能有一个无名公用区:②有名公用区,一个 Fortran程序中根据需要可以有多个有名公用区 无名公用区 建立无名公用区的 common语句的一般飛式: common变量1,变量2, 【例123】 common X, y, I subroutine sub data x,yi/.0,2.0,3/ common a, b, j,W call sub We*(a+b) end write(", )a, b,j,w end 52公用语句 2021/2/24

10 2021/2/24 公用区有两种类型: ①无名公用区,任何一个Fortran 程序中只可能有一个无名公用区;② 有名公用区,一个 Fortran程序中根据需要可以有多个有名公用区。 一、无名公用区 建立无名公用区的common语句的一般形式: 【例12.3】 common 变量1, 变量2, … common x, y, i data x, y, i/1.0, 2.0, 3/ call sub end subroutine sub common a, b, j, w w=j*(a+b) write(* , *)a, b, j, w end §2 公用语句

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共26页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有