Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача ЛЮБИТЕЛЬ РАССКАЗОВ
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
RAMA
Вот задачка, помогите пожалуйста, Александр любит читать газеты и журналы, а так же как он любитель рассказов, он радуется каждый раз, когда встречает подстроку "story" в тексте. У вас есть текст из сегодняшней газеты, подсчитайте, сколько раз будет радоваться Айдом, если будет читать этот текст
ФОРМАТ ВХОДНЫХ ДАННЫХ:
Первая строка входного файла содержит n-количество строк в тексте (1<= n <=5). В следующих n строказ задается текст. Длина каждой строки не большая 50 и гарантируются, что каждая строка не пустая.
ФОРМАТ ВЫХОДНЫХ ДАННЫХ:
Выведите ответ на задачу


вот сам текст: A story a story is a book written and illustrated by Gail E.
Lapp
Цитата(RAMA @ 14.01.2011 8:13) *
Вот задачка, помогите пожалуйста, Александр любит читать газеты и журналы, а так же как он любитель рассказов, он радуется каждый раз, когда встречает подстроку "story" в тексте. У вас есть текст из сегодняшней газеты, подсчитайте, сколько раз будет радоваться Айдом, если будет читать этот текст
ФОРМАТ ВХОДНЫХ ДАННЫХ:
Первая строка входного файла содержит n-количество строк в тексте (1<= n <=5). В следующих n строказ задается текст. Длина каждой строки не большая 50 и гарантируются, что каждая строка не пустая.
ФОРМАТ ВЫХОДНЫХ ДАННЫХ:
Выведите ответ на задачу
вот сам текст: A story a story is a book written and illustrated by Gail E.

Вот, как-то так примерно:
t:='story';
readln(f,n);
m:=0;
for i:=1 to n do begin
ReadLn(f,s);
while Pos(t,s)>0 do begin
Inc(m);
Delete(s,1,Pos(t,s)+Length(t)-1)
end
end;

Если нужна регистронезависимость, то нужно пройтись по s после ее прочтения и перевести ее в UpCase (то же самое сделать с t)
RAMA
Цитата(Lapp @ 14.01.2011 8:26) *

Вот, как-то так примерно:
t:='story';
readln(f,n);
m:=0;
for i:=1 to n do begin
ReadLn(f,s);
while Pos(t,s)>0 do begin
Inc(m);
Delete(s,1,Pos(t,s)+Length(t)-1)
end
end;

Если нужна регистронезависимость, то нужно пройтись по s после ее прочтения и перевести ее в UpCase (то же самое сделать с t)



а можете написать полностью программу, просто я новичек в этом, если не трудно конечно
Имя входного файла: c.in
Имя выходного файла: c.out
Имя файла решения задачи: C.{c,ccp,pas}
Ограничение по времени: 2 секунд
Органичение по памяти: 64 мегабайт
Lapp
Цитата(RAMA @ 14.01.2011 8:32) *
а можете написать полностью программу, просто я новичек в этом, если не трудно конечно

Абсолютно не трудно. Но ты пошевели хоть пальцем.
Вот и протренируйся как раз. Напиши хоть что-то. Если будут проблемы - мы поможем.
мисс_граффити
задачка-то (судя по формату условия, не по сложности) олимпиадная...
RAMA
var t:string;
m:integer;
f,n:integer;
s:string;
begin
t:='story';
readln(f,n);
m:=0;
for i:=1 to n do begin
ReadLn(f,s);
while Pos(t,s)>0 do begin
Inc(m);
Delete(s,1,Pos(t,s)+Length(t)-1)
end
end;
end.

вот дописал как то но ошибка вот здесь ReadLn(f,s); 106-ая? в чем проблема?

Добавлено через 3 мин.
Цитата(мисс_граффити @ 14.01.2011 9:31) *

задачка-то (судя по формату условия, не по сложности) олимпиадная...

да, олимпиадная задача, готовлюсь я, вот скоро у нас просто олимпиада
Lapp
Цитата(RAMA @ 14.01.2011 9:35) *
ошибка вот здесь ReadLn(f,s); 106-ая

Может, все же не тут, а тут:
readln(f,n);
?
RAMA
Цитата(Lapp @ 14.01.2011 10:35) *

Может, все же не тут, а тут:
readln(f,n);
?


ах да, извените, вы правы-))) я с буквами ошибся
Lapp
Ты не забыл про это?
Цитата(RAMA @ 14.01.2011 8:13) *
Первая строка входного файла содержит n-количество строк в тексте (1<= n <=5). В следующих n строказ задается текст.

RAMA
Цитата(Lapp @ 14.01.2011 10:47) *

Ты не забыл про это?


не забыл
вот я написал так
var t:string;
m:integer;
f,n:integer;
s:string;
begin
t:='story';
readln(f,n);
m:=0;
for i:=1 to n do begin
ReadLn(f,s);
while Pos(t,s)>0 do begin
Inc(m);
Delete(s,1,Pos(t,s)+Length(t)-1)
end
end;
end.


ошибка все и, а может здесь надо ще что ни будь дополнить?

М
используй, пожалуйста, теги

Lapp
1. Опиши f как файл text
f: text;

2. перед началом чтения сделай
Assign(f,'c.in');
Reset(f);

3. после окончания чтения (после цикла for) закрой файл
Close(f);

4. выводи результат (в файл или по крайнй мере на печать)
RAMA
Спасибо Огромное Lapp, задача решена
вот код
var t:string;
m,i:integer;
f,q:text;
n:integer;
s:string;
begin
assign(f, 'ETAP2/c.in');
reset(f);
assign(q, 'ETAP2/c.out');
rewrite(q);
t:='story';
readln(f,n);
m:=0;
for i:=1 to n do begin
ReadLn(f,s);
while Pos(t,s)>0 do begin
Inc(m);
Delete(s,1,Pos(t,s)+Length(t)-1)
end
end;
write(q, m);
close(f);
close(q);
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.