Определить, сколько раз в тексте встречается заданное слово. Написать программу, Паскаль

0 голосов
130 просмотров

Определить, сколько раз в тексте встречается заданное слово. Написать программу, Паскаль


Информатика (39 баллов) | 130 просмотров
0

Паскаль 7.0?

0

Паскаль АВС.net

Дано ответов: 2
0 голосов
Правильный ответ

Var
   k,i,L:integer;
   S,C:string;
Begin
Write('Введите текст: ');ReadLn(S);
Write('Введите искомое слово: ');ReadLn(C);
L:=Length(C);
S:=Copy(C,1,L-1)+' '+S+' ';
S:=LowerCase(S);
C:=LowerCase(C);
k:=0;
For i:= 1 to Length(S) do
    if S[i]in['а'..'я','А'..'Я','ё','Ё','0'..'9'] then
       if S[i+1]in[' ','-','(',')',',',';',':','.','!','?'] then
          if Copy(S,i-L+1,L) = C then k:=k+1;
WriteLn(k);
End.

(34.0k баллов)
0

Слова чем разделены по условию?

0

Но мне так веселее:D

0 голосов

Var
  s, sl, sc: string;   
  i, k: integer;

begin
  write('Введите текст ');
  readln(s);
  write('Введите слово ');
  readln(sl);
  s:=' '+s+' ';
  sl:=' '+sl+' ';
  for i := 1 to length(s) - length(sl) + 1 do   
  begin
    sc := copy(s, i, length(sl));   
    if sc = sl then inc(k);   
  end;
  if k = 0 then writeln('Не встречается')  
  else writeln('Встречается ', k, ' раз');
end.

(314k баллов)
0

Вот это - лишнее:
s:=' '+s+' ';
sl:=' '+sl+' ';
Из-за этого работать правильно не будет

0

А уже нельзя отформатировать?

0

я нашел ошибку))