program czypali;
uses crt;
var slowo:string;
i,j:byte;
dl,dl_s:byte;
pocz,kon:char;
rez:string;
begin
clrscr;
writeln('Podaj slowo');
readln(slowo);
dl:=length(slowo);
dl_s:=length(slowo);
kon:=slowo[dl_s];
for i:=1 to dl do
pocz:=slowo[1];
if pocz=kon then
begin
for j:=1 to i do
pocz:=slowo[j];
rez:=rez+pocz;
end
else kon:=slowo[i+1];
writeln(rez);
readln;
end.
Program ma znajdować palindrom i go wypisać. Ale mój wypisuje tylko początkową literę. Mógł by ktoś powiedzieć gdzie jest błąd i jak go zmodyfikować?
rozpoznawany ma być tylko jeden wyraz nie np. z całego zdania.
EDIT:
zrobiłem taki program który na ludzki rozum powinien chodzić a się zawiesza:
proprogram palindrom;
uses crt;
var i,j:byte;
dl:byte;
p,k:byte;
s:string;
pocz,kon:char;
check:boolean;
begin
clrscr;
writeln('Podaj slowo');
readln(s);
dl:=length(s);
p:=1;
k:=dl;
check:=false;
while p
if s[p]<>s[k] then
begin
inc(p);
dec(k);
check:=false;
end;
if s[p]=s[k] then
check:=true;
if check=true then
begin
for i:=p to k do
write(s[i]);
end;
readln;
end.