Работа с литерными переменными - Pascal
Формулировка задачи:
Помогите пожалуйста с задачей (Pascal).
Работа с функциями: CHR, ORD, PRED, SUCC.
В заданный непустой текст входят только цифры и буквы. Длина текста не более 12 символов.
Определить, удовлетворяется ли следующее свойство:
Текст состоит из чередования букв и цифр, причем если текст начинается с буквы, то он должен и заканчиваться буквой, если с цифры – цифрой (например: 1р2о3р4и4п3, p5g6e4d).
Решение задачи: «Работа с литерными переменными»
textual
Листинг программы
const D=['0'..'9']; var s:string;i:integer; begin write('Строка: '); readln(s); i:=length(s); if odd(i) then while (i>1)and(not((s[i]in D)xor(not(s[i-1]in D))))do dec(i); write(i=1) end.
Объяснение кода листинга программы
- Объявление константы:
D=['0'..'9']
- ConstantD
задается как строка, содержащая диапазон от '0' до '9'. - Объявление переменных:
s:string
- Variables
задается как строка (тип данных string);i:integer
- Variablei
задается как целое число (тип данных integer). - Чтение ввода:
write('Строка: '); readln(s);
- Запрашивается пользовательский ввод строки и записывается в переменнуюs
. - Вычисление длины строки:
i:=length(s);
- Значение переменнойi
устанавливается равным длине введенной строки. - Условие проверки на четность:
if odd(i) then
- Если длина строки нечетная, то выполнить следующие действия. - Цикл обработки строки:
while (i>1)and(not((s[i]in D)xor(not(s[i-1]in D))))do dec(i);
- В цикле происходит проверка пар символов в строке, и если текущий символ и предыдущий символ не являются либо оба цифрами, либо оба не цифрами, то уменьшить значениеi
(позиция в строке). - Вывод результата:
write(i=1)
- Вывести 1, еслиi
равно 1, иначе вывести 0, в зависимости от результата предыдущих шагов. Функционально, это код проверяет является ли строкаs
палиндромом, если игнорировать все нецифровые символы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д