Program long_palindrome; Var ch,ch1,max:string; i,j:integer; (*******************************************) Function palindrome(ch:string):boolean; Var i:integer; verif:boolean; Begin i:=0; Repeat i:=i+1; Verif := (ch[i] = ch[length(ch)-i+1]); Until (verif=false) or (i=length(ch) div 2); palindrome:=verif; End; (******************** P.P ***********************) Begin Writeln('Donner ch = '); Readln(ch); max:=ch[1]; Repeat For j:=length(ch) downto 3 do Begin ch1:=copy(ch,1,j); If palindrome(ch1) and (length(ch1)>length(max)) Then max:=ch1; End; delete(ch,1,1); Until length(ch)=2; Writeln ('La plus longue chaine palindrome est : ', max) End.