Народ напишите как на PaskalABC сделать программу определяющую палиндром это или нет.
Палиндром это если прочесть слово задом на перед оно не изменится-казак и тд. Желательно сразу код!
Палиндром это если прочесть слово задом на перед оно не изменится-казак и тд. Желательно сразу код!
var st:string;
function Palindrom(s:string):boolean;
var i,j:integer;
begin j:=length(s);
for i:=1 to length(s) mod 2 do
begin if s[i]=s[j] then Palindrom:=true else Palindrom:=false;
dec(j) end; end;
BEGIN
writeln('Введите слово. ');
readln(st);
if palindrom(st) then writeln('Это слово является палиндромом. ')
else writeln('Это слово не является палиндромом. ');
END.
Весь инет облазил, но не нашёл PaskalABC…
PascalABC есть, PaskalABC не существует.
Sage, не правильно!
Во-первых, ваш цикл будет выполняться или один раз для параметра нечетной длины, или ни одного из-за того, что вместо целочисленного деления используется остаток от деления.
Во-вторых, даже если заменить mod на div функция не станет верной. Убедится в этом можно подкинув на вход строку 'bbcdcba', для которой получим, что она есть палиндром (!).
Правильно так
function Palindrom(S: String):boolean;
var i, j : Integer;
begin
Palindrom := True; {предположим, что параметр палиндром}
j := Length(s);
for i:=1 to j div 2 do
if s[i] <> s[j - i+1] then begin
Palindrom := False; {очередная пара символов не совпала - не паплиндром}
Break; {прекращаем дальнейшую проверку}
end;
end;