实验09数组(二).docVIP

  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文档。上传文档
查看更多
实验09数组(二)

实验九 数组(二) 数组是FORTRAN90最常用的结构数据类型之一,数组是求解许多复杂问题的有效工具。 FORTRAN90不但提供静态数组,而且还新增加了动态数组,为求解复杂问题和提高程序运行效率提供了方便。 FORTRAN90提供了丰富的有关数组运算的标准函数,为问题求解带来了极大方便。 本次实验是学习和掌握多维数组、动态数组的一次系统实验活动。通过本次实验,能够设计和编写比较复杂的数组应用程序。 一.实验目的 进一步掌握数组声明、数组元素引用、数组输入输出、数组赋初值、数组构造器、隐含DO循环的使用规则。 掌握有关数组运算的常用标准函数。 掌握动态数组概念和动态数组的声明、存储分配的使用规则。 掌握设计和编写多维数组和动态数组应用程序。 二.实验内容1 1.问题描述 在一个m×n的矩阵matrix中求绝对值最大和最小元素所在的行、列位置。并将绝对值最小元素与第1行第1列数组元素交换,将绝对值最大元素第m行第n列数组元素交换。编写程序实现之。 25.5 35.2 38.5 15.3 matrix= 15.2 12.0 29.5 18.5 20.3 14.5 30.5 17.8 2.算法设计 已知的m×n的矩阵符合数组定义,用二维实型数组matrix保存,用数组构造器赋初值。 算法基本思想:使用“计数型”二重循环结构求绝对值最小元素min和最大元素max所在的位置。然后将绝对值最小元素与第1行第1列数组元素matrix(1,1)交换,将绝对值最大元素第m行第n列数组元素matrix(m,n)交换。输出绝对值最小元素和最大元素所在的行号和列号,以及交换前后矩阵数据。 根据分析,设计算法如下: 算法: 给数组matrix赋初值; 给min赋初值:min=matrix(1,1), 位置赋初值:i_min=1,j_min=1; 给max赋初值:max=matrix(m,n),位置赋初值:i_max=m,j_max=n; 使用“计数型”二重循环结构求绝对值最小元素min,所在位置i_min和j_min,最大元素max,所在位置i_max和j_max; 输出绝对值最小元素min,所在位置i_min和j_min; 输出绝对值最大元素max,所在位置i_max和j_max; 输出交换前数组数据; 绝对值最小元素与数组第1行第1列元素matrix(1,1)交换; 绝对值最大元素与数组第m行第n列元素matrix(m,b)交换; 输出交换后数组数据。 结束 3.程序编写 根据算法,设计和编写不完整示例程序如下(请在下划线空白处填充正确内容): 程序9-1: !班级:??? !姓名:??? !时间:??? !查询绝对值最小值和最大值 PROGRAM main PARAMETER(m=3,n=4) REAL :: matrix(m,n),min,max,temp INTEGER :: i_min=1,j_min=1,i_max=m,j_max= matrix=RESHAPE((/25.5,15.2,20.3,35.2,12.0,14.5,38.5,29.5, 30.5,15.3,18.5,17.8/),(/3,4/)) min=ABS(matrix(1,1)); max= DO i=1,m DO j=1,N IF (ABS(matrix(i,j)) ) THEN min=ABS(matrix(i,j)) i_min= ; j_min=j ENDIF IF ( max) THEN max= i_max=i; j_max=j ENDDO PRINT 100,’最小元素’, min, i_min, j_min PRINT 100,’最大元素’, max, i_max, j_max PRINT *,’交换前矩阵:’ DO i=1,m PRINT 200,(matrix(i,j),j= ) ENDDO IF (min/=matrix( )) THEN =matrix(1,1); matrix(1,1)=min; matrix(i_min,j_min)=temp ENDIF IF (max/=matrix( )) THEN temp=matrix(m,n); matrix(m,n)=m

文档评论(0)

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

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

1亿VIP精品文档

相关文档