zadach302.PAS

{* Задача 302 *}

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

Program pas15291;

Uses zadach302.pas; {* Эту строку можно удалить *}
Const {* Постоянные значения *}
  gap = [' '', '':''('')'';
  '
];
  eo_sentence = ['?''!''.'];
Var {* Необходимые переменные *}
  s              : char;
  txt            : text;
  current_word   : String;
  iterative_word : String;
  word           : Array [1..15] Of Array [1..15] Of String;
  find           : boolean;
  i              : integer;
  j              : integer;
  k              : integer;
  l              : integer;
  n              : integer;
Begin
  assign(txt, 'c:txt.txt'); {* Привязка переменной txt к файлу 'c:txt.txt' *}
  reset(txt); {* Подготовка переменной txt для чтения из файла *}
  iterative_word := '';
  current_word := '';
  i := 1;
  j := 1;
  k := 1;
  n := 0;
  find := false;
  While Not(EOF(txt)) Do
  Begin
    read(txt, s);
    If Not(s In gap) And Not(s In eo_sentence) Then
      current_word := current_word + s
    Else Begin
      word[i, j] := current_word;
    j := j + 1;
    current_word := '';
  End;
  If (s In eo_sentence) Then
  Begin
    i := i + 1;
    j := 0;
  End;
  l := i - 1;
End;
For k := 1 To 15 Do {* Увеличиваем k от 1 до 15 с шагом 1 *}
Begin
  For j := 1 To 15 Do {* Переменная j увеличивается с 1 до 15 *}
    If (find = false) And (word[1, j] = word[2, k])                         And (word[1, j]''Then
    Begin
      iterative_word := word[1, j];
      find := true;
    End;
  
End;
If find = true Then
Begin
  For i := 1 To 15 Do {* Увеличиваем i от 1 до 15 с шагом 1 *}
  Begin
    For j := 1 To 15 Do {* Увеличиваем j от 1 до 15 с шагом 1 *}
      If word[i, j] = iterative_word Then
        n := n + 1;
  End;
  
End;
If (find = true) And (l = n) Then
Begin
  writeln('Во всех предложениях повторяется');
  writeln('слово "', iterative_word, '"');
End;
Else writeln('Повторяющихся в каждом предложении слов нет');
  close (txt); {* Закрытие файла *}
readln
End...