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.