Определить, входят ли заданные слова в текст, и если да, то сколько раз - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

дан файл, содержащий текст на русском языке. Вычислить, входят ли данные слов в текст, и если да, то сколько раз

Решение задачи: «Определить, входят ли заданные слова в текст, и если да, то сколько раз»

textual
Листинг программы
Var f:text; 
    slovo,s:string;
    kol:integer;
Begin
    write('Слово: ');readln(slovo);
    Assign(f,'in.txt');Reset(f);
    While not Eof(f) do
    Begin
      readln(f,s);
      s:=s+' ';
      While Pos(' ',s)>0 do
      Begin
        if slovo=Copy(s,1,Pos(' ',s)-1) then inc(kol);
        Delete(s,1,Pos(' ',s));
      End;
    End;
    if kol>0 then writeln(kol,' раз(а)')
     else writeln('Не входит');
    readln;
End.

Объяснение кода листинга программы

  1. Объявляются переменные: f - текстовый файл, slovo - слово для поиска, s - строка, содержащая слова, kol - счётчик вхождений.
  2. Выводится запрос на ввод слова для поиска.
  3. Устанавливается связь с текстовым файлом 'in.txt'.
  4. В цикле While не Eof(f) происходит чтение строки из файла в переменную s.
  5. Строка s накапливает все вхождения искомого слова, добавляя к ней пробелы.
  6. Вложенный цикл While Pos(' ',s)>0 обрабатывает каждое вхождение искомого слова в строке s.
  7. Если искомое слово найдено (slovo=Copy(s,1,Pos(' ',s)-1)), то счётчик kol увеличивается на единицу.
  8. После окончания внутреннего цикла удаляется найденное слово из строки s.
  9. По окончании внешнего цикла проверяется значение счётчика kol.
  10. Если kol>0, выводится количество вхождений искомого слова, иначе выводится 'Не входит'.
  11. Цикл завершается вызовом readln.

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы