Напечатать те слова последовательности, которые отличны от последнего слова и первая буква слова входит в него еще раз - 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.

Объяснение кода листинга программы

В этом коде:

  1. Переменная s получает строку, введенную пользователем.
  2. Из строки s удаляется последний элемент, чтобы получить подстроку без последнего слова.
  3. Полученная подстрока s проверяется на условие: каждое слово w удовлетворяет условию, если оно не является последним словом в подстроке s и первая буква этого слова содержится в этой подстроке (то есть copy(w, 2, w.Length).Contains(w[1])).
  4. Если подстрока s содержит слова, удовлетворяющие условию, они записываются в консоль.
  5. Если подстрока s не содержит слов, удовлетворяющих условию, выводится сообщение Необходимые слова отсутствуют.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы