爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5234|回复: 12

fotran能实现统计一篇文章里买个单词出现的次数吗

[复制链接]

新浪微博达人勋

发表于 2014-11-27 14:34:54 | 显示全部楼层 |阅读模式
GrADS
系统平台: visual studio 2010
问题截图: -
问题概况: fotran能实现统计一篇文章里买个单词出现的次数吗
我看过提问的智慧: 看过
自己思考时长(天): 5

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-27 14:40:06 | 显示全部楼层
你说的文章是指word文档?
fortran应该不行,不过word不是自带了统计工具么。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-27 14:40:08 | 显示全部楼层
如果设计好了算法 是可以的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 09:01:39 | 显示全部楼层
lqouc 发表于 2014-11-27 14:40
你说的文章是指word文档?
fortran应该不行,不过word不是自带了统计工具么。

就是简单一点儿的英文文本,类似hello world 这样,就想知道怎样才能把单词分开,然后统计各单词出现数量···
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 09:03:36 | 显示全部楼层
topmad 发表于 2014-11-27 14:40
如果设计好了算法 是可以的

我现在的思路是先统计出来文章的字数···也不知道方向对不对···把一个一个单词分开,感觉好困难没啥具体的头绪···求指教
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-28 12:28:13 | 显示全部楼层
lanxueren121 发表于 2014-11-28 09:01
就是简单一点儿的英文文本,类似hello world 这样,就想知道怎样才能把单词分开,然后统计各单词出现数量 ...

如果每个单词有分隔符就一个个读取,累积频数
如果没有分隔符号就用很长的字符串读进去,然后滑动对目标字符串匹配就行了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 15:55:39 | 显示全部楼层
lqouc 发表于 2014-11-28 12:28
如果每个单词有分隔符就一个个读取,累积频数
如果没有分隔符号就用很长的字符串读进去,然后滑动对目标 ...

module constant
        implicit none
        integer n,nmax,cnum
        character(*):: filename
        character*1 sign
        integer count
        integer error
end module constant

module dealfile
use constant

contains
subroutine totalnum(filename,count,nmax,sign,cnum(:))
        integer count,nmax,i,n,tonum
        character*1 buffer(1:nmax)
        character*1 sign
        character,allocatable :: string(:)
        integer,allocatable :: cnum(:)
        open(10,file=filename)      
        allocate(string(n))
        allocate(cnum(n))

    do n=1,count
        READ(10,100) string(n)
100        format(<nmax>A1)
        write(*,*)string(n)
    buffer=string(n)

    cnum(1)=1
        do i=1,nmax-1
          if((buffer(i)==sign) .AND. (buffer(i+1)/=sign)) cnum(n)=cnum(n)+1
        end do
        tonum=tonum+cnum(n)
    end do
        close(10)
end subroutine totalnum

end module dealfile

program main
use constant
use dealfile
       character line
        print*,'文件名:'
        read*,filename
       count=0
       open(10,file=filename,status='old')
       do while (.true.)
       read(10,*,iostat=error) line
       if(error/=0)exit
       count=count+1
       end do
       close(10)

        print*,'行数:'
        write(*,*)count
        print*,'行的最大列数:'
        read*,nmax
        print*,'分隔符:'
        read(*,100),sign

100        format(A1)
        call totalnum(filename,count,nmax,sign,cnum(n))
        print*,tonum
end program
能帮我看看错在哪里吗····
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-28 16:07:40 | 显示全部楼层
lanxueren121 发表于 2014-11-28 15:55
module constant
        implicit none
        integer n,nmax,cnum

给出提示信息,最好自己定位错误语句或者断点
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 16:27:30 | 显示全部楼层
lqouc 发表于 2014-11-28 16:07
给出提示信息,最好自己定位错误语句或者断点

file:///C:/Users/Administrator/Desktop/F6(0AT%5DC6A(J%60(2_22%7BMS]9.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 16:28:52 | 显示全部楼层
lqouc 发表于 2014-11-28 16:07
给出提示信息,最好自己定位错误语句或者断点

我才刚学··实在不能了解那个错误到底该如何修改···
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表