24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1250  |  回复: 10

7152075

铁杆木虫 (著名写手)

解决问题的方法比遇到的问题多

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lisu555: 金币+20, ★★★★★最佳答案, 好,谢谢,我试一试,太感谢了!好人啊!! 2016-12-26 00:24:17
引用回帖:
9楼: Originally posted by lisu555 at 2016-12-25 19:58:13
什么语言都可以,只要在win下 或linux下能运行就行。...

program Obtain_data
    implicit none
    integer i,j,k,ii,ierr
    integer,allocatable::num( : ) !//序号
    real*8,allocatable::voltage( : ) !//电压
    character( len=64 ) str,file_name

    open( 11,file='wenjian.txt' )
    open( 12,file='result.txt' )
    !******读取文件总共有多少行********
    i=0
    read( 11,* )
    do
        read( 11,*,iostat=ierr ) str
        if( ierr/=0 ) exit
        i=i+1
    end do
    allocate( num( i ) )
    allocate( voltage ( i ) )
    rewind( 11 )
    !********将序号和电压存储在数组中********
    read( 11,* )
    do j=1,i
        read( 11," ( a64 )" ) str
        read( str,* ) num( j ),voltage( j )
    end do
    !********找连续序号并提取出第一个和最后一个电压值********
    ii=1 !//记录连续序号有多少个
    do k=1,i
        if( ( k+1 )/=i ) then !//序号不是最后一个
            if( num( k+1 )==num( k )+1 ) then
                ii=ii+1
            else
                write( 12,"( 2 ( f8.4,2x ) )" ) voltage( k+1-ii ),voltage( k )
                ii=1
            end if
        else !//序号是最后一个的情况
            if( num( k+1 )==num( k )+1 ) then
                write( 12,"( 2( f8.4,2x ) )" ) voltage( k+1-ii ),voltage( k+1 )
                exit
            else
                write( 12,"( 2 ( f8.4,2x ) )" ) voltage( k+1-ii ),voltage( k )
                exit
            end if
        end if
    end do

    deallocate( num )
    deallocate( voltage )
    close( 11 )
    close( 12 )
    write( *,* ) 'OK'
    read( *,* )
    end program Obtain_data
这个程序是用Fortran书写的。输入文件叫wenjian.txt,输出文件叫result.txt,不知道你给的格式是什么样的,所以按照你给你自己做的,如有需要请自行修改其形式,包括输入文件样式等等。我自己做的输入文件上传了,不知道做的对不对。亲测在windows和Linux系统下编译都好使。
输入文件为
记录序号        电压/V
244        3.9803
245        3.9602
246        3.9438
2131        3.9648
2132        3.9447
2133        3.9388
4026        3.9590
4027        3.9388
4028        3.9335
5913        3.9565
5914        3.9363
5915        3.9298
7798        3.9537
7799        3.9335
7800        3.9261
9690        3.9534
9691        3.9329
9692        3.9199
11573        3.9534
11574        3.9332
11575        3.9137
13462        3.9524
13463        3.9323
13464        3.9121
13465        3.9081
15350        3.9506
15351        3.9298
15352        3.9097
15353        3.9013
17241        3.9484
17242        3.9283
17243        3.9081
然后你改成wenjian.txt。PS:小木虫今天传东西一直是error。
Chemistry
11楼2016-12-25 22:47:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lisu555 的主题更新
信息提示
请填处理意见