网站大量收购闲置独家精品文档,联系QQ:2885784924

Fortran第7章2精编.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例:实参数是数组元素时的对应关系: PROGRAM MAIN3 REAL,DIMENSION(1:8)::A CALL SUB3(A(4)) …… END PROGRAM MAIN3 SUBROUTINE SUB3(B) REAL,DIMENSION(0:3)::B …… END SUBROUTINE SUB3 ? B(3) B(2) B(1) B(0) ? ? ? 子程序 ? ? ? ? ? ? ? ? 存储单元 A(8) A(7) A(6) A(5) A(4) A(3) A(2) A(1) 主程序 例2:阅读下列程序,写出运行结果 INTEGER,DIMENSION(2,3)::A A=reshape((/1,2,3,4,5,6/),(/2,3/)) CALL S(A(2,1)) PRINT*,A END SUBROUTINE S(B) INTEGER,DIMENSION(2,2)::B B=B+1 END 实元为数组元素名 答案: 1 3 4 5 6 6 3、当虚元为数组名,实元为数组片段时: 数组片段构成一个新的数组 新的实数组将第一个元素的地址传送给虚数组的第一个元素, 其它元素按内存顺序结合(二维为列序) 虚实结合传送地址的方式3 例3:阅读下列程序,写出运行结果 INTEGER,DIMENSION(3,3)::A A=reshape((/1,4,7,2,5,8,3,6,9/), (/3,3/)) CALL S(A(3:2:-1,1:2)) END SUBROUTINE S(X) INTEGER,DIMENSION(4)::X PRINT*,X END 实元为数组片段 形成新数组 虚数组可为假定大小数组和可调数组等多种情况。虚实结合方式同常界数组 答案: 7 4 8 5 如函数值为数组,主调程序中必须写接口块 例1:假设有两个形状相同(3行4列)的数组A和B,编写求A+B的函数子程序,并把A+B的值作为函数值。 分析:函数子程序的传入数据——数组A和B 函数子程序的传出数据——数组C=A+B 补充 数组可作为函数过程的函数值 Function f(a,b)result(c) Implicit none Integer,dimension(3,4)::a,b,c C=a+b End Program main Implicit none Interface Function f(a,b)result(c) Implicit none Integer,dimension(3,4)::a,b,c end endinterface Integer,dimension(3,4)::a,b,c Integer::I,J;read*,a;read*,b C=f(a,b) Do I=1,3 Print*,(c(I,j),j=1,4) Enddo; end 函数值为数组 主调程序必须写接口 数组中写接口块: 函数值为数组;假定形状数组 7.7数组的应用举例 一、累加和算法 算法复习:重复执行S新=S原+通项 循环编程步骤:A、重复语句 B、选择DO结构 C、循环初值的确定 数组累加和算法 1、元素法: 算法:重复执行S新=S原+元素通项 元素通项: 一维——A(I) 二维——A(I,J) 例1: 输入10个整数,计算其累加和。 一批数据的处理引入数组 PROGRAM MAIN IMPLICIT NONE INTEGER,DIMENSION(10)::A INTEGER::I,S READ*,A 程序结构: 单位定义 说明所有数组 输入数组 数组的处理 输出数组 单位结束语句 元素法 Print*,S END S=S+A(I) S=0 DO I=1,10 ENDDO 阅读程序 验证 练习1、求2×3二维数组的所有元素之和 INTEGER,DIMENSION(2,3)::A DO I=1,2 READ(*,*)(A(I,J),J=1,3) ENDDO S=0 DO I=1,2 DO J=1,3 S=S+A(I,J) ENDDO ENDDO PRINT*,S; END 元素法 2、调用内在数组函数:SUM求累加和 INTEGER,DIME

文档评论(0)

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

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

1亿VIP精品文档

相关文档