Var
s:string;
i,n:byte;
p:boolean;
begin
Write('Введите строку: ');
Readln(s);
n:=Length(s);
for i:=n downto 1 do
if s[i]=' ' then Delete(s,i,1);
n:=Length(s);
p:=true;
for i:=1 to n div 2 do
if s[i]<>s[n-i+1] then
begin
p:=false;
break
end;
if p then Writeln('Палиндром')
else Writeln('Не палиндром')
end.
Ну, во-первых, за тем, чтобы придерживаться сути инкапсуляции: Людям свойственны ошибки. Например, будь у нас прямой доступ к полю, мы бы могли ошибочно изменить значение. При использовании методов, мы, разумеется, 5 раз подумаем, прежде чем взаимодействовать с ним.
Во-вторых, для простоты. Нам не нужно подробно изучать все внутреннее устройство, достаточно начать взаимодействовать с методом, который сделает всю внутреннюю работу за вас.