Напечатать те слова последовательности, которые отличны от последнего слова и первая буква слова входит в него еще раз - PascalABC.NET
Формулировка задачи:
Всем привет, такая задача:
Дана последовательность слов, между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от последнего слова и первая буква слова входит в него еще раз.
Сколько видосов посмотрел по строкам ничего не помогает, знания по паскалю у нас базовые, так что никаких загружаемых библиотек и процедур по возможности, спасибо!Решение задачи: «Напечатать те слова последовательности, которые отличны от последнего слова и первая буква слова входит в него еще раз»
textual
Листинг программы
begin var s := ReadlnString('Строка: ').ToWords; delete(s[s.Length - 1], s[s.Length - 1].Length, 1); write(s.Where(w -> (w <> s.Last) and (copy(w, 2, w.Length).Contains(w[1]))). DefaultIfEmpty('Необходимые слова отсутствуют').JoinIntoString); end.
Объяснение кода листинга программы
В этом коде:
- Переменная
s
получает строку, введенную пользователем. - Из строки
s
удаляется последний элемент, чтобы получить подстроку без последнего слова. - Полученная подстрока
s
проверяется на условие: каждое словоw
удовлетворяет условию, если оно не является последним словом в подстрокеs
и первая буква этого слова содержится в этой подстроке (то естьcopy(w, 2, w.Length).Contains(w[1])
). - Если подстрока
s
содержит слова, удовлетворяющие условию, они записываются в консоль. - Если подстрока
s
не содержит слов, удовлетворяющих условию, выводится сообщениеНеобходимые слова отсутствуют
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д