Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ опять строки

Автор: Анчоус 5.12.2006 18:26

Привет, умный народ. cool.gif
У меня проблемы с задачками в школе по Паскалю. Вот задача:

"Дана строка STR длиной неболее 100 символов,
и дана строка STR1 неболее 7 символов.
Определить сколько раз в строке STR встречается строка STR1"

я попробовала через функцию copy и процедуру insert, но у меня что-то не получается, короче, я делаю что-то не так, и до меня что-то не допирает.
Вообщем, кто может, помогите тупой девочке(т.е. мне).

Автор: klem4 5.12.2006 18:50

function GetCount(S, S1: String): Integer;
var
count, p: Integer;
begin
count := 0;
repeat
p := Pos(S1, S);
if p <> 0 then begin
Delete(s, p, 7);
inc(count);
end;
until p = 0;
GetCount := count;
end;

begin
...
writeln(GetCount(STR, STR1));
...
end.



Автор: Malice 5.12.2006 18:53

Цитата(klem4 @ 5.12.2006 14:50) *

     Delete(s, p, _7_);



Ну это на вряд ли..

Автор: volvo 5.12.2006 18:56

blink.gif Во-первых, откуда 7 ? Допустим, что там должно быть

Delete(s, p, length(s1));

тогда запусти это:
writeln(GetCount('test this is a ttestest ha-ha-ha...', 'test'));


Автор: klem4 5.12.2006 18:59

ой smile.gif

Delete(s, p, Length(STR1));


ну или в начале процедуры дополнительной переменной присвоить Length(STR1) чтобы все время не пересчитывать.

Автор: Malice 5.12.2006 19:54

Цитата(klem4 @ 5.12.2006 14:59) *

ой smile.gif

Volvo, кстати, хороший пример привел, проверь с ним smile.gif
ps Лучше уж Delete(s, 1, p+length(s1));

Автор: klem4 5.12.2006 20:02

Да пример хороший smile.gif)))


function GetCount(s: String; const s1: String): Integer;
var
P: Integer;
begin
P := Pos(s1, s);
if P = 0 then
GetCount := 0
else
GetCount := GetCount(Copy(s, P + Length(s1) - 1, 255), s1) + 1;
end;

Автор: Анчоус 5.12.2006 20:55

Спасибо, парни! cool.gif
Большое спасибо