Определить, совпадает ли текст с каким-либо отрезком ряда abc…xyz - Pascal
Формулировка задачи:
Помогите с решением, пожалуйста! Если не трудно, то с объяснением
В заданный непустой текст входят только цифры и буквы. Длина текста не более 12 символов.
Определить, удовлетворяется ли следующее свойство:
Текст совпадает с каким-то отрезком ряда abc…xyz (например: klmnop);
Решение задачи: «Определить, совпадает ли текст с каким-либо отрезком ряда abc…xyz»
textual
Листинг программы
var s:string; n,i,k:byte; begin repeat writeln('Введите текст из строчных латинских букв и цифр длиной не более 12 символов'); readln(s); n:=length(s); k:=0; for i:=1 to n do if not(s[i] in ['a'..'z','0'..'9']) then k:=1; if not(n in [1..12])or(k=1) then writeln('Ввод неверный, повторите') until(n in [1..12])and(k=0); if not (s[1] in ['a'..'z']) then write('Свойство не удовлетворяется') else if n=1 then write('Свойство удовлетворяется') else begin i:=2; k:=0; while (i<=n)and(k=0) do if s[i]<>succ(s[i-1]) then k:=1 else inc(i); if k=0 then write('Свойство удовлетворяется') else write('Свойство не удовлетворяется'); end; end.
Объяснение кода листинга программы
- Объявляется переменная
s
типа string для хранения вводимого текста. - Объявляются переменные
n
,i
иk
типа byte для хранения длины строки, индексов и проверки условий соответственно. - Пользователю предлагается ввести текст из строчных латинских букв и цифр длиной не более 12 символов.
- Вводимая строка
s
считывается с помощью функцииreadln
. - Получаем длину строки
n
и устанавливаем начальное значение переменнойk
равным 0. - В цикле
for
проверяется каждый символ в строкеs
: если символ не является строчной латинской буквой или цифрой, устанавливаем переменнуюk
равной 1. - Проверяем условия: длина строки должна быть от 1 до 12 символов и переменная
k
должна быть равна 0. Если условия не выполнены, выводим сообщениеВвод неверный, повторите
и просим ввести текст заново. - Если введенное выражение не начинается с латинской буквы, выводим
Свойство не удовлетворяется
. - Если длина строки равна 1, выводим
Свойство удовлетворяется
. - Если начальное условие не выполняется, переходим к следующему блоку кода.
- Устанавливаем значение переменной
i
равным 2 и переменнойk
равным 0. - В цикле
while
проверяется каждый символ строкиs
. Если текущий символ не равен следующему в алфавитном порядке, устанавливаем переменнуюk
равной 1, иначе увеличиваем значениеi
на 1. - Если переменная
k
осталась равной 0, выводимСвойство удовлетворяется
, иначеСвойство не удовлетворяется
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д