Напечатать те слова, перед которыми в последовательности находятся только меньшие слова - PascalABC.NET
Формулировка задачи:
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 прописных латинских букв; между соседними словами - запятая, за последним словом - точка. Напечатать: те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними - только большие;
впервые столкнулся со строками, в теории все более менее ясно, а как воплотить не знаю "по алфавиту" скорее всего длина или коды ASCII
Вот что я смог написать, но очень сомневаюсь.
Листинг программы
- var s:string;
- count,n,i:integer;
- begin
- writeln('s');
- readln(s);
- s:=','+s;
- count:=0;
- n:=0;
- for i:=1 to length(s) do
- if (s[i]<>'.') and (s[i-1]=',') and (length(s[i])>length(s[i-1])) and (length(s[i])<length(s[i+1])) then count:=count+1;
- write(count);
- end.
Решение задачи: «Напечатать те слова, перед которыми в последовательности находятся только меньшие слова»
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]);
- Печать текущего слова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д