- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Visual Fortran90第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 例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(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,DIMENSION(-2:2,0:4,-1:2)::a 则数组元素a(1,1,1)是第几个元素? A 58 B 85 C 95 D 59 FUNCTION ARRAY_MAX3(A,M,N)RESULT(MAX_VAL3) IMPLICIT NONE INTEGER::M,N INTEGER,DIMENSION(M,N)::A INTEGER::MAX_VAL3,I,J MAX_VAL3=A(1,1) DO I=1,M DO J=1,N IF(MAX_VAL3A(I,J)) MAX_VAL3=A(I,J) ENDDO ENDDO END FUNCTION ARRAY_MAX3 用可调数组改写例7-25 可调数组作虚元,数组名与维界变量都作虚元 先说明M,N的类型,再说明可调数组A PROGRAM LI7_25KT IMPLICIT NONE INTERFACE FUNCTION ARRAY_MAX3(A,M,N)RESULT(MAX_VAL3) INTEGER,DIMENSION(M,N)::A INTEGER::MAX_VAL3 END FUNCTION ARRAY_MAX3 END INTERFACE INTEGER,DIMENSION(3,5)::A INTEGER::I,
文档评论(0)