用FORTRAN语言编写一程序已知青岛某一个月的每小时记录的水位数据shuju.txt,单位cm。 请读取该数据,求出每天的平均水位,保存到一个新的文件 average.txt中。
时间: 2024-11-22 18:39:13 浏览: 2
通过Fortran语言实现如何从一个简单的文本文件中读取数据,对数据进行一些处理(在这个例子中是计算平均值)
在Fortran语言中,你可以按照以下步骤编写一个程序来实现这个任务:
首先,确保你已经有一个名为`shuju.txt`的数据文件,其中包含每小时的水位数据。这是一个简单的文本文件,每行代表一个时间点的水位。
```fortran
program calculate_daily_average
implicit none
character(len=100) :: filename, new_filename
integer :: hour, day, i, j
real :: current_value, daily_total, average
! 初始化变量
filename = 'shuju.txt'
new_filename = 'average.txt'
! 打开输入文件
open(newunit=89, file=filename, status='old', action='read')
! 创建一个临时文件用于存储每日总和
open(unit=90, file=new_filename, status='new', action='write', form='formatted')
! 遍历文件,计算每日平均值
do i = 1, 24 * 30 ! 假设一天有24小时,一个月有30天
read(89, *) hour, current_value ! 读取小时和水位
if (i / 24 == day + 1) then ! 检查是否进入新的一天
daily_total = daily_total + current_value ! 累加水位
day = i / 24 ! 更新当前天数
end if
write(*,*) "Hour ", hour, " Value ", current_value, " Daily Total ", daily_total
end do
close(89) ! 关闭输入文件
daily_average = daily_total / 24.0 ! 计算平均值
write(90,*) "Day", day, "Average Water Level (cm):", daily_average ! 写入新文件
close(90) ! 关闭输出文件
write(*,*) "Daily averages saved to:", new_filename
end program calculate_daily_average
```
当你运行这个程序时,它会逐行读取`shuju.txt`,按天累加水位,然后在完成一天的数据处理后,计算并写入新的`average.txt`文件。
阅读全文