visual fortran 90 程序设计§7.3.3 数组内在函数.pptVIP

visual fortran 90 程序设计§7.3.3 数组内在函数.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚元的种类:只能为变量名、数组名、过程名。 7.4 数组作为过程的实元、虚元 复习:虚元为变量名 1、对应的实元可为同类型的变量名、常量或表达式、数组元素 2、虚实结合规则:传送地址,虚元、实元共享同一存储单元 复习:虚元为过程名 1、对应的实元可为同类型的内在函数名、 外部过程名 2、虚实结合规则:等价,虚过程用实过程替代 虚元为数组名 1、对应的实元可为同类型的数组名、数组元素名、数组片段。 注意:对应数组的维数、维界可以不同 2、虚实结合规则:传送地址 1、当虚实都为数组名时: 实数组将第一个元素的地址传送给虚数组的第一个元素, 其它元素按内存顺序结合(二维为列序) 虚实结合传送地址的方式1 例1:阅读下列程序,写出运行结果 INTEGER,DIMENSION(2,3)::A A=RESHAPE((/1,2,3,4,5,6/),(/2,3/)) CALL S(A) PRINT*,A END SUBROUTINE S(B) INTEGER,DIMENSION(4)::B B=B+1 END 实元为数组名 答案:2 3 4 5 5 6 对应数组的维数、维界可以不同 程序阅读方法: 利用数组逻辑结构,跟踪处理结果 练习1:阅读下列程序,写出运行结果INTEGER,DIMENSION(3,3)::A A=RESHAPE((/1,2,3,4,5,6,7,8,9/),(/3,3/)) CALL S(A) PRINT*,A END SUBROUTINE S(B) INTEGER,DIMENSION(2,2)::B B=B+1 END 答案:2 3 4 5 5 6 7 8 9 元素按列序结合 2、当虚元为数组名,实元为数组元素时: 实数组将指定的数组元素的地址传送给虚数组的第一个元素, 其它元素按内存顺序结合(二维为列序) 虚实结合传送地址的方式2 例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 7.4.2 数组可作为函数过程的函数值 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 函数值为数组 主调程序必须写接口 数组中写接口块: 函数值为数组;假定形状数组 数组程序设计:常见算法 一、累加和算法 算法复习:重复执行S新=S原+通项 循环编程步骤:A、重复语句

文档评论(0)

wx171113 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档