zadach180.PAS

{* Задача 180 *}

Unit ZADACH180;
Interface
Implementation
Begin
 writeln('Слова в строке отделены пробелами. Подсчитать количество слов, в которых буква "а" встречается ровно 3 раза.');
End.

Program aword;

Uses zadach180.pas; {* Эту строку можно удалить *}
Var {* Объявление переменных *}
  S     : String,    i, n;
  S1    : String,    i, n;
  count : byte;
Begin
  count := 0;
  writeln('введите слова');
  readln(S);
  S := S + ' '{будем делить на слова по пробелам... для последнего слова он тоже нужен}
  While Pos(' ', S)0 Do {пока в троке есть пробел повторять...}
  Begin
    n := 0; {обнуляем счетчик букв "а"}
    S1 := Copy(S, 1, Pos(' ', S) - 1); {копируем слово с первой позиции до пробела}
    For i := 1 To Length(S1) Do {* Увеличиваем i от 1 до Length(S1) с шагом 1 *}
      If LowerCase(S[i]) = 'a' Then
        Inc(n); {увеличиваем счетчик для букв "а" и "А" этого слова}
    If n = 3 Then
      inc(count); {если букв три увеличиваем счетчик слов}
    Delete(S, 1, Pos(' ', S)); {удаляем его из исходной строки}
  End;
  writeln(count, ' слов в которых встречается буква а ровно 3 раза');
  readln; {* Ждем нажатия Enter *}
End.