В настоящее время я пытаюсь написать программу на Fortran 77, которая вычисляет количество слов в текстовом файле. Текстовые файлы выглядят так:
Привет мир. Привет мир. Привет мир. Привет мир. Привет мир. Привет мир. Привет мир. Привет мир. Привет мир. Привет мир. Привет мир. Привет мир. Привет мир.
Моя программа сейчас выглядит так:
program COUNT
implicit none
character text*100000
integer i, a, nw
nw=1 !number of words
open(9, FILE='file.txt', STATUS='old')
read(9, '(A)') text
a=0
10 do i=1, LEN_TRIM(text)
if (text(i:i) .ne. " ") then
if (a .eq. 0) then
goto 10
else
a=0
nw=nw+1
goto 10
endif
else
if (a .eq. 0) then
a=a+1
goto 10
else
goto 10
endif
endif
enddo
print *, "Number of words: ", nw
end
Я сделал это на бумаге, и это должно работать, однако моя программа застревает в цикле выполнения. Я думаю, что это может иметь какое-то отношение к этому утверждению:
if (text(i:i) .ne. " ") then
Могу ли я написать логическое выражение таким образом? Если нет, есть ли у кого-нибудь намеки на то, как я могу переписать этот код? Извините, если моя программа немного запутана; Я относительно новичок в этом. Я пытаюсь улучшить свои навыки кодирования, чтобы заниматься вычислительной химией. Большое спасибо за помощь!
len_trim
. Исходный макет в свободной форме проще в использовании, и язык имеет много дополнительных возможностей. См. en.wikipedia.org/wiki/Fortran_95_language_features. - person M. S. B.   schedule 06.01.2014cycle
, потому что это из Fortran 90. - person Vladimir F   schedule 06.01.2014