Taki oto kod:
function czyPalindrom(slowo : string; i, j : byte) : boolean;
BEGIN
if i < j then
if slowo[i] = slowo[j] then
czyPalindrom(slowo, i+1, j-1)
else
czyPalindrom := FALSE
else
czyPalindrom := TRUE;
END;
{wywołanie w głównym bloku:}
writeln('Wynik palindromu: ', czyPalindrom('kajak', 1, 5));
Wyniki:
dla kajak : TRUE
dla KajaK : TRUE
dla aca: TRUE
Niestety program się wysypuje:
dla kajakk : TRUE [a to nie jest palindrom przecież.., wywołanie czyPalindrom('kajak', 1, 6) ]
dla acaa: TRUE [a to nie jest palindrom przecież.., wywołanie czyPalindrom('acaa', 1, 4) ]
Gdzie leży błąd ? :/