Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2012, 00:01   #1
Tolya92
Пользователь
 
Регистрация: 10.11.2012
Сообщений: 36
По умолчанию не пойму где ошибка(Паскаль)

Дан файл, содержащий текст на русском языке. Выяснить входит ли данное слово в указанный текст, и если да, то сколько раз.
Код:
program n3;
var s,sl,r,p:string; 
 t:text;k,i:integer;
begin
k:=0;
 write ('slovo ');
 readln(sl);
 write ('в file ');
 readln(r);
 assign(t,r);
 reset(t);
 while not eof(t) do
 begin
 readln(t,p);
 s:='';
 FOR I:=1 TO LENGTH(P) DO
 BEGIN
 IF (P[I]<>' ') AND (P[I]<>'.')
 then S:=S+P[I]
 else
 IF S=SL THEN
 begin
 k:=k+1;
 s:='';
 end
 else
 s:='';
 end;
 end;
 if k>0 then writeln (k) else writeln ('такого слова в тексте нет ')
end.
Tolya92 вне форума Ответить с цитированием
Старый 17.12.2012, 07:31   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Файл не закрываешь, допиши в конце:

Код:
Close(t);
Остальное вроде правильно. Если не поможет совет - конкретизируй проблему (в чем ошибка)?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 17.12.2012, 15:16   #3
Tolya92
Пользователь
 
Регистрация: 10.11.2012
Сообщений: 36
По умолчанию

reset(t); ошибка вот тут
Код:
program n3;
var s,sl,r,p:string; 
 t:text;k,i:integer;
begin
k:=0;
 write ('slovo ');
 readln(sl);
 write ('v file ');
 readln(r);
 assign(t,r);
 reset(t);
 while not eof(t) do
 begin
 readln(t,p);
 s:='';
 FOR I:=1 TO LENGTH(P) DO
 BEGIN
 IF (P[I]<>' ') AND (P[I]<>'.')
 then S:=S+P[I]
 else
 IF S=SL THEN
 begin
 k:=k+1;
 s:='';
 end
 else
 s:='';
 end;
 end;
 if k>0 then writeln (k) else writeln ('такого слова в тексте нет ')
 Close(t);
end.
Tolya92 вне форума Ответить с цитированием
Старый 17.12.2012, 16:33   #4
Aranea tela telam
Пользователь
 
Аватар для Aranea tela telam
 
Регистрация: 11.01.2012
Сообщений: 51
По умолчанию

1 Забыл ;
Код:
if k>0 then writeln (k) else writeln ('такого слова в тексте нет ')
2 Текстовый Файл должен быть вместе в папке с программой ну и указывать Имя файла с его расширением Например 1.txt. Проверил все пашет только вот если в строке написать одно и то же слово 1 или 20 раз то он пишет что 1 всего встречается) делай код
Я учусь на своих ошибках, но порой их слишком много
Aranea tela telam вне форума Ответить с цитированием
Старый 17.12.2012, 20:31   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
reset(t); ошибка вот тут
Внешне все в порядке. Извини, телепатические способности на работе забыл - какая ошибка?

Код:
 readln(r);
 assign(t,r);
 reset(t);
Если тут, то вариант: программа не видит введенный файл. Попробуй закинуть его на диск С: в корень и ввести r=C:\имя_файла
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 17.12.2012, 21:08   #6
Tolya92
Пользователь
 
Регистрация: 10.11.2012
Сообщений: 36
По умолчанию

вот ошибка(
Новый рисунок T(1).JPG.jpg
Tolya92 вне форума Ответить с цитированием
Старый 17.12.2012, 23:59   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Tolya, сообщение об ошибке говорит о том, что то имя файла, которое Вы ввели, файла с таким именем НЕ НАЙДЕНО!

Прошу учесть, что в связи с использованием MS DOS версии паскаля, имя должно быть коротким, формата 8.3 (не более восьми символов в имени файла или любого каталога и не более 3-х символов в расширении, пробелы не допускаются).

Как Вам уже советовали. создайте файл на диске C: в КОРНЮ (это там, где C:\ )
например, запустите Блокнот, напишите текст английскими буквами, выберите "сохранить как" и укажите имя такое: C:\MYTEST.TXT. Потом ТОЧНО такое же имя введите в программе, когда она спросит "v faile "...
Успехов.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.12.2012, 07:15   #8
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
не более восьми символов в имени файла или любого каталога и не более 3-х символов в расширении, пробелы не допускаются)
Я б еще добавил: длина всего пути, включая имя файла -не более 255 символов. Но это так, для просвещения
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 18.12.2012, 16:08   #9
Tolya92
Пользователь
 
Регистрация: 10.11.2012
Сообщений: 36
По умолчанию

А ОБЯЗАТЕЛЬНО В БЛОКНОТЕ РУССКИЙ ТЕКСТ ДОЛЖЕН БЫТЬ?
Tolya92 вне форума Ответить с цитированием
Старый 18.12.2012, 16:57   #10
Aranea tela telam
Пользователь
 
Аватар для Aranea tela telam
 
Регистрация: 11.01.2012
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Tolya92 Посмотреть сообщение
А ОБЯЗАТЕЛЬНО В БЛОКНОТЕ РУССКИЙ ТЕКСТ ДОЛЖЕН БЫТЬ?
На сколько я знаю нет
Я учусь на своих ошибках, но порой их слишком много
Aranea tela telam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму где ошибка c++ 7rubin Помощь студентам 1 22.03.2012 22:42
Не пойму где ошибка gas777 Общие вопросы C/C++ 1 15.05.2011 21:10
написал программу, где то ошибка, не пойму где... Kelevra91 Общие вопросы C/C++ 5 17.01.2011 16:38
Не пойму где ошибка Айдар Работа с сетью в Delphi 1 17.04.2010 18:20
не пойму где ошибка C-Jay Общие вопросы C/C++ 1 03.01.2010 01:45