作业帮 > 综合 > 作业

Fortran语言小程序编写,请各路大神帮忙

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/30 15:06:30
Fortran语言小程序编写,请各路大神帮忙

A文件中有K*N个数(K组数),逗号隔开排列.

转换生成B文件,格式见下,每隔六组取一组数,每组数前加一行,两个数为3600*K/6  3600*K/6/M.


还是不行,无法输出.我给你看看两种格式,你看哪个更好处理

Fortran语言小程序编写,请各路大神帮忙
表示很难理解你的需求.
再问: 就是每十分钟有N个数,然后提取第6,12,18...时刻的数(即一个小时,两个小时,三个小时)。 在每个时刻数第一行加上对应的时间和相应的步数,然后每个时刻的数加上1到N的编号。
再答: A 文件是多少行多少列? 你说 “两个数为3600*K/6 3600*K/6/M。” 其中的 M 是什么?
再问: A文件有K*N个数,用逗号隔开。 M就是时间步长(1秒对应1/M步) 转换后形式问题后边我加了
再答: 我是问,A文件有多少行多少列? 如果有 K*N 个数,是否是规则的 K 行 N 列 或 N 列 K 行? 从图片上看,A文件貌似有点乱。 A 文件中的数据如何排列,会影响这个程序的复杂程度。
再问: 没有行列,一个一个数排列的
再答: 还是不太确定我理解的是否是你的需求。 你试试下面的代码,如果不对再追问 (需补齐 K N M 的值,及 A B 文件名) Program Baidu_Thlws Implicit None Integer , parameter :: K = Integer , parameter :: N = Integer , parameter :: M = 5 Real :: d( N , K ) integer :: i , j Open( 12 , File = 'A文件' ) Read( 12 , * ) d Close( 12 ) Open( 13 , File = 'B文件' ) Do i = 6 , K , 6 write( 13 , * ) 3600 * i / 6 , 3600 * i / 6 / ( M ) Do j = 1 , N write( 13 , * ) j , d( j , i ) End Do End Do Close( 13 ) End Program Baidu_Thlws
再问: 能不能运行时提示输入文件名,输出文件名为 fort.63
再答: Program Baidu_Thlws Implicit None Integer , parameter :: K = Integer , parameter :: N = Integer , parameter :: M = 5 Real :: d( N , K ) integer :: i , j character( Len = 512 ) :: cFile Read( * , * ) cFile Open( 12 , File = Trim(cFile) ) Read( 12 , * ) d Close( 12 ) Open( 13 , File = 'fort.63' ) Do i = 6 , K , 6 write( 13 , * ) 3600 * i / 6 , 3600 * i / 6 / ( M ) Do j = 1 , N write( 13 , * ) j , d( j , i ) End Do End Do Close( 13 ) End Program Baidu_Thlws