Программа выдает ошибку: file not open
У меня задача:
В текстовом файле book.txt посчитать количество слов,в которых согласных букв больше чем глассных. Все найденные слова записать отдельными строками в файл words.txt program qwerty; uses crt; var i,m,n,j:integer; f,f1:text; st,word:string; kolg,kols,kol:byte; const glas=[перечисление глассных]; soglas=[перечисление согласных]; begin clrscr; kol:=0; kolg:=0; kols:=0; assign(f,'book.txt'); reset(f); assign(f1,'words.txt'); rewrite(fi); while not Eof(f) do begin while (st[i]=' ') and (i<=length(st)) do inc(i); m:=i; while (st[i]<>' ') and (i<=length(st)) do inc(i); n:=i; word:=copy(st,m,n-m); for j:=1 to length(word) do begin if (word[j] in glas) then begin kolg:=kolg+1; if (word[i] in soglas) then kols:=kols+1; if kols>kolg then begin kol:=kol+1; end; write(f1,word); close(f); close(f1); readln; end; end; end; end; end. Прога сначала выдает количество = 1,а потом выдает file not open :tehnari_ru_093: Уже замучалась с задачей:tehnari_ru_148: Помогите пожалуйста в чем здесь проблема:tehnari_ru_837: |
Цитата:
Цитата:
|
Нет,в программе у меня все правильно,это я тут видимо ошиблась...:tehnari_ru_093:
|
Цитата:
Рассмотрим первую часть - выделение слов. Вы открыли два файла на чтение и запись, а потом начинаете анализировать символы строки St, при этом абсолютно никак не связав саму строку с содержимым файла f! Или опять "в программе всё правильно"? Если так, то выложите, пожалуйста, РАБОЧИЙ листинг программы. P.S. Кстати, слово "гласная" (как и "согласная") пишется с одним "с". |
Ну не ругайтесь на меня=) А как исправить мою ошибку?=)
|
Так, пока - отбой, заметил еще ошибки.
|
file not open for input
|
Цитата:
Код:
program qwerty; |
runtime error 104
|
Еще ошибку заметил:
в строке if (word[i] in soglas) then kols:=kols+1; нужно i заменить на j. В листинге поправлено. |
Часовой пояс GMT +4, время: 05:44. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.