Определить, является ли строка палиндромом.
Палиндром – это число, слово или фраза, одинаково читающиеся в обоих направления.
s – строка;
f – флаг.
var s: string; i,f: byte; begin write('String: '); readln(s); f := 0; for i := 1 to length(s) div 2 do if s[i] s[length(s)-i+1] then begin writeln('No palindrome'); f := 1; break end; if f = 0 then write('Palindrome'); readln end.
Комментарии
полиндром
Как написать рекурсивную функцию?
А как сделать, что бы
А как сделать, что бы проверка была не чувствительна к регистру?
Если в Pascal нет функции
Если в Pascal нет функции приведения всех букв к одному регистру, то тогда можно через разность между кодом маленькой и большой буквы.
Внутри первого if можно создать второй, где переменным присваиваются сравниваемые буквы, затем вычисляется разность. Если разность равна разности по кодировке между малой и большой буквой, то это одна и таже буква.
if s[i] s[length(s)-i+1]
if s[i] s[length(s)-i+1] then begin
Почему lenght(s)-i+1, строка что из 3 символов состоит?
потому что математика...
потому что математика... Допустим у нас строка из 5-ти символов, первыми на надо сравнить 1-й и 5-й элементы, в таком случае і=1, рассчитываем какой элементы будем с ним сравнивать: 5-і+1=5-1+1=5, получаем то что нам нужно.
палиндром для чисел
полиндромы
всё работает прекрасно!