Напечатать те слова, перед которыми в последовательности находятся только меньшие слова - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 прописных латинских букв; между соседними словами - запятая, за последним словом - точка. Напечатать: те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними - только большие;

впервые столкнулся со строками, в теории все более менее ясно, а как воплотить не знаю "по алфавиту" скорее всего длина или коды ASCII
Вот что я смог написать, но очень сомневаюсь.

Решение задачи: «Напечатать те слова, перед которыми в последовательности находятся только меньшие слова»

textual
Листинг программы
begin
  var S := ReadLnString('Введите последовательность слов' + NewLine +
  '(между соседними словами запятая, за последним словом точка)' + NewLine +
  'Последовательность:');
  
  var W := S.Replace(',', ' ').Replace('.', ' ').ToWords;
  var C := W.Count;
  
  for var i := 1 to C-2 do
    if (W[i-1] < W[i]) and (W[i] < W[i+1]) then
      WriteLn(W[i]);
end.

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

В этом коде задача состоит в том, чтобы напечатать те слова, перед которыми в последовательности находятся только меньшие слова. Вот список шагов, которые выполняются в коде:

  1. Ввод последовательности слов с помощью функции ReadLnString.
  2. Преобразование введенной строки в список слов с помощью метода Replace и метода ToWords.
  3. Определение количества слов в списке с помощью свойства Count.
  4. Проверка каждого слова в списке с помощью цикла for.
  5. Если текущее слово меньше следующего и следующего за ним слова, то печатается текущее слово с помощью функции WriteLn. Следующие фрагменты кода соответствуют этим шагам:
    • `var S := ReadLnString('Введите последовательность слов' + NewLine +
    • '(между соседними словами запятая, за последним словом точка)' + NewLine +
    • 'Последовательность:');` - Ввод последовательности слов.
    • var W := S.Replace(',', ' ').Replace('.', ' ').ToWords; - Преобразование последовательности в список слов.
    • var C := W.Count; - Определение количества слов в списке.
    • for var i := 1 to C-2 do - Цикл, который проверяет каждое слово в списке.
    • if (W[i-1] < W[i]) and (W[i] < W[i+1]) then - Проверка, что текущее слово меньше следующего и следующего за ним слова.
    • WriteLn(W[i]); - Печать текущего слова.

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


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

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

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