zadach298.PAS

{* Задача 298 *}

Unit ZADACH298;
Interface
Implementation
Begin
 writeln('Дан файл, содержащий текст на русском языке и некоторые два слова. Определить, сколько раз они входят в текст и сколько раз они входят непосредственно друг за другом.');
End.

Program zadach298;

Uses zadach298.pas; {* Эту строку можно удалить *}
Const {* Предопределенные *}
  pr = [' ''.'', ''?''!'':''('')',#13];
Var {* Необходимые переменные *}
  s   : char;
  txt : text;
  sl  : String;
  sl0 : String;
  sl1 : String;
  sl2 : String;
  n   : integer;
  m   : integer;
  k   : integer;
Begin
  assign(txt, 'c:txt.txt'); {* Связывание txt с файлом 'c:txt.txt' *}
  reset(txt); {* Подготовка переменной txt для чтения из файла *}
  write('Введите первое слово (с учетом регистра): ');
  readln(sl1);
  write('Введите второе слово (с учетом регистра): ');
  readln(sl2);
  While Not(EOF(txt)) Do
  Begin
    read(txt, s);
    If Not(s In pr) Then
      sl := sl + s
    Else Begin
      If sl = sl1 Then
        n := n + 1;
    If sl = sl2 Then
      m := m + 1;
    If (sl0 = sl1) And (sl = sl2) Then
      k := k + 1;
    sl0 := sl;
    sl := '';
  End;
  
End;
  close (txt); {* Закрыть файл txt *}
  writeln(' ');
  writeln('Первое слово "', sl1, '", ');
  writeln('встречается в тексте ', n, ' раз');
  writeln(' ');
  writeln('Второе слово "', sl2, '", ');
  writeln('встречается в тексте ', m, ' раз');
  writeln(' ');
  writeln('Непосредственно друг за другом слова');
  writeln('встречаются в тексте ', k, ' раз');
  readln
  End....