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

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

Форум «Всё о Паскале» _ Задачи _ Поиск слова в данном тексте...

Автор: Elisei 29.11.2005 4:39

Задание: Дан текст и слово, найти сколько раз данное слово встречается в тексте.

то что у меня получилось но непашет=\

Код
program CountX;

Const

n=100;

ch='б«®ў®';

Var

i : Integer;

count:Integer;

S : Array [1 .. n] of char;

Begin

writeln ('‚Введите текст');

for i:=1 to n do read(S[i]);

count:=0;

for i:=1 to n do if S[i]=ch then count:=count +1;

writeln ('слово "' , ch, '" встречаеться в тексте ' , count, ' раз');

end.

Автор: Atos 29.11.2005 10:26

Цитата
if S[i]=ch
Ты пытаешься сравнить один символ строки с целым словом. Это выполнялось бы, только если ch соcтояло бы из одного символа, иначе неверно в любом случае.
Можешь сделать так: if S[i]=ch[1], и если это выполнится, то проверить следующие за i-м символы строки на совпадение с соответствующими символами ch. Попробуй доработать, если не получится - спрашивай, поможем. Хорошо, что уже что-то делал самостоятельно, в отличие от многих заходящих сюда smile.gif

Автор: klem4 29.11.2005 13:00

способ 1 длинный :

Elisei, http://forum.pascal.net.ru/index.php?showtopic=6972 береш от туда любой способ, разбиваешь строку на массив слов, ну а дальше все элементарно !

способ 2 короткий :

uses crt;
var
s,sbs : string;

function GetCount(st, subst : string) : byte;
var
count : byte;
begin
count := 0;
while(pos(subst, st) <> 0) do begin
inc(count);
delete(st, pos(subst,st), length(subst));
end;

GetCount := count;
end;

begin

clrscr;

s := 'test testo toster';
sbs := 'st';

writeln('В строке ',s,' слово ',sbs, ' встречается ', GetCount(s,sbs),' раз');
readln
end.


но второй способ всетаки не на вхождение слова в строку а на вхождение группы символов.

Автор: what are the side effects of tak 22.09.2021 10:26

Malegra 100 Sildenafil Citrate