- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- DB13T 298.3-1997 结球甘蓝品种(系)区域试验调查项目及要求.pdf VIP
- 2025年新改版人教版七年级上册地理全册精编知识点 (背诵用).pdf
- 三菱FR-D740变频器使用手册(应用篇)-说明书.pdf
- 2025年国家开放大学《农村经济管理》形考作业三答案.docx VIP
- DB13T 298.3-1997 结球甘蓝品种(系)区域试验调查项目及要求.docx VIP
- DELTA台达ASDA-A2伺服驱动器使用手册.pdf
- 水工隧洞课件.pptx VIP
- 精益管理培训-拉动式生产方式.pdf VIP
- 部编版语文六年级上册第五单元【集体备课】.pptx VIP
- (完整版)华师版七年级下册数学知识点总结.pdf VIP
文档评论(0)