Работа 3.8 Упр.8 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 8. Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран все слова, содержащие три буквы. Если таких слов нет, то вывести сообщение об этом. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-8/8 98
Чтобы найти слова из трёх букв, удобно просматривать строку посимвольно и определять границы каждого слова по пробелам и точке.
Сначала добавим в начало строки пробел, чтобы первое слово тоже обрабатывалось по общему правилу. Затем будем искать начало слова и его конец:
- если текущий символ — пробел, а следующий не пробел и не точка, значит начинается слово;
- если текущий символ не пробел и не точка, а следующий — пробел или точка, значит слово заканчивается.
Длина слова равна $$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.
Ответ
Программа выводит количество слов, содержащих три буквы, или сообщение об их отсутствии.