Загрузка данных


program count_words_a;
uses crt;
var
  s: string;
  i, count: integer;
begin
  write('Введите текст: ');
  readln(s);
  count := 0;
  
  // Проверяем каждый символ
  for i := 1 to length(s) do
  begin
    // Если текущий символ 'а' и (это конец строки или следующий символ - пробел)
    if (s[i] = 'а') and ((i = length(s)) or (s[i+1] = ' ')) then
      count := count + 1;
  end;
  
  writeln('Количество слов, оканчивающихся на "а": ', count);
end.

program count_t_last_sentence;
uses crt;
var
  s: string;
  i, last_dot_pos, count: integer;
begin
  write('Введите текст: ');
  readln(s);
  
  last_dot_pos := 0;
  // Ищем позицию последней точки
  for i := 1 to length(s) do
    if s[i] = '.' then
      last_dot_pos := i;
      
  count := 0;
  // Если точка найдена, ищем 'т' после неё
  if last_dot_pos > 0 then
  begin
    for i := last_dot_pos + 1 to length(s) do
      if (s[i] = 'т') or (s[i] = 'Т') then
        count := count + 1;
  end
  else
  begin
    // Если точек нет, считаем во всем тексте
    for i := 1 to length(s) do
      if (s[i] = 'т') or (s[i] = 'Т') then
        count := count + 1;
  end;
  
  writeln('Количество букв "т" в последнем предложении: ', count);
end.

program count_word_cat;
uses crt;
var
  s, word: string;
  i, count: integer;
begin
  write('Введите текст: ');
  readln(s);
  word := 'кот';
  count := 0;
  
  i := 1;
  while i <= length(s) - length(word) + 1 do
  begin
    // Проверяем, совпадает ли подстрока с "кот"
    if copy(s, i, length(word)) = word then
    begin
      // Проверяем, что перед словом пробел или начало строки
      // И после слова пробел или конец строки
      if ((i = 1) or (s[i-1] = ' ')) and 
         ((i + length(word) - 1 = length(s)) or (s[i + length(word)] = ' ')) then
      begin
        count := count + 1;
        i := i + length(word); // Пропускаем найденное слово
        continue;
      end;
    end;
    i := i + 1;
  end;
  
  writeln('Слово "кот" встречается раз: ', count);
end.