- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
for9第7章1
第7章 数组 5、通过下标引用数组元素 下标表达式应是整型表达式,允许出现+ - * 等算数运算符。操作数可以是常数、变量,也可以是简单的内在函数或数组元素,但表达式的值一定是整数。 d1 = 下标表达式的值 = d2 例:A(3*2),A(ABS(-3)),A(5+I),A(A(I)) 6、数组元素的下标取值必须在相应的维界偶范围内 数组是具有相同数据类型的多个值的集合,数组的所有元素按一定顺序存储在连续的存储单元中。 一维数组只能表示线性顺序,相当于一个一维表,也可以用一维数组表示数学中的向量。 一维数组逻辑结构:一行或一列数据 一维数组存储结构:下标由小到大 例:对如下数组: INTEGER,DIMENSION(1:10)::A 例7-4 使用数组片段输出 PROGRAM TRIPLET IMPLICIT NONE INTEGER,DIMENSION(1:15)::R INTEGER::I DO I=1,15 R(I)=I ENDDO DO I=1,11,5 WRITE(*,(1X,5I4)) R(I:I+4) ENDDO END PROGRAM TRIPLET 如果把输出的循环改成: DO I=1,3 WRITE(*,(1X,5I4)) R(I:15:3) ENDDO 练习:设有数组定义INTEGER,DIMENSION(5)::A,则不能与语句A=(/2,4,6,8,10/)等价的赋值语句是 。 A、A=(/(i,i=2,10,2)/) B、A=(/2,4,(i,i=6,10,2)/) C、A=(/(2*i,i=1,5)/) D、A=(/(2,i=1,5)/) 例7-5使用数组构成器和数组片段 PROGRAM CONSTRUCTOR IMPLICIT NONE INTEGER,DIMENSION(5)::M INTEGER::I M=(/5,4,3,2,1/) DO I=1,5 PRINT (1X,5I5),M(1:I) ENDDO END PROGRAM CONSTRUCTOR 引申问题: 如何求各列元素之和? 如何求靠边元素之和? 如何求不靠边元素之和? …… 数组的形式小结: 1、常界数组:REAL::A(2,4) 在主程序、子程序中使用, 2、可调数组:REAL,DIMENSION(M,N)::B 只在子程序中作虚数组使用, M、N是确定维界的变量,须放入虚元表中 3、假定形状数组: REAL,DIMENSION(:)::C 只在子程序中作虚数组使用,调用时,必须写接口块, C形状取实元形状 4、动态数组: INTEGER,DIMENSION(:),ALLOCATABLE::D ALLOCATE(A(10)) DEALLOCATE(A) 可在主程序、各子程序(不能作为虚元)使用 5、假定大小数组: REAL ,DIMENSION (2,2,*)::A INTEGER,DIMENSION(*)::X 只在子程序中作虚数组使用,使用数组时必须写下标,即不能对名字操作,调用时它从实数组获得大小参数 1、若已有数组说明语句:REAL(kind=8),DIMENSION(3:10,-1:3)::array 则SIZE(array)的值是: A 20 B 40 C 320 D 8 2、若已有数组说明语句:REAL(kind=8),DIMENSION(-2:2,-4:4)::array 则LBOUND(array,DIM=2)的值是: A -2 B -4 C 2 D 4 3、若有语句列:INTEGER,DIMENSION(1:2,1:4)::aa=RESHAPE((/1,3,5,7,2,4,6,8/),(/2,4/)) 则SUM(a,DIM=2)的值是: A 常量:36 B 一维数组:4,12,6,14 C 一维数组:14,22 D 常量:22 主调程序 主调程序 例7-27 用函数子程序求一个5×5整型数组中主对角线上前M个元素之积。 主调程序: 例7-30 利用过程求数组片段中各元素的和。 主调程序 三维数组的结构 三维数组是由行、列和页组成的三维表。三维数组也可理解为几页的二维表,即每页由一张二维表组成。在内存中按页、列、行的顺序存放。例: Integer,dimension(3,3,2) ::page 练习:若数组说明语句为:INTEGER,DI
原创力文档


文档评论(0)