Напечатать те слова, перед которыми в последовательности находятся только меньшие слова - 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.
Объяснение кода листинга программы
В этом коде задача состоит в том, чтобы напечатать те слова, перед которыми в последовательности находятся только меньшие слова. Вот список шагов, которые выполняются в коде:
- Ввод последовательности слов с помощью функции ReadLnString.
- Преобразование введенной строки в список слов с помощью метода Replace и метода ToWords.
- Определение количества слов в списке с помощью свойства Count.
- Проверка каждого слова в списке с помощью цикла for.
- Если текущее слово меньше следующего и следующего за ним слова, то печатается текущее слово с помощью функции 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]);- Печать текущего слова.