Работа 3.8 Упр.8 ГДЗ Семакин 10 класс (Информатика)
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран все слова, содержащие три буквы. Если таких слов нет, то вывести сообщение об этом.
Чтобы найти слова из трёх букв, удобно просматривать строку посимвольно и определять границы каждого слова по пробелам и точке.
Сначала добавим в начало строки пробел, чтобы первое слово тоже обрабатывалось по общему правилу. Затем будем искать начало слова и его конец:
- если текущий символ — пробел, а следующий не пробел и не точка, значит начинается слово;
- если текущий символ не пробел и не точка, а следующий — пробел или точка, значит слово заканчивается.
Длина слова равна $$k — n + 1$$, где $$n$$ — номер первого символа слова, $$k$$ — номер последнего символа. Если длина равна $$3$$, увеличиваем счётчик таких слов.
Если после просмотра строки счётчик равен нулю, выводим сообщение, что слов из трёх букв нет.
var
s: string;
n, nsl, ksl, kol, i: byte;
begin
writeln(‘Введите строку: ‘);
readln(s);
s := ‘ ‘ + s;
n := length(s);
kol := 0;
for i := 1 to n do
begin
if (s[i] = ‘ ‘) and (s[i + 1] <> ‘ ‘) and (s[i + 1] <> ‘.’) then
nsl := i + 1;
if (s[i] <> ‘ ‘) and (s[i] <> ‘.’) and ((s[i + 1] = ‘ ‘) or (s[i + 1] = ‘.’)) then
begin
ksl := i;
if (ksl — nsl + 1 = 3) then kol := kol + 1;
end;
end;
if kol > 0 then
writeln(‘Слов из 3-х букв ‘, kol)
else
writeln(‘Слов из 3-х букв нет’);
end.
Ответ
Программа выводит количество слов, содержащих три буквы, или сообщение об их отсутствии.

