PROGRAM TP5exc1 ;
VAR  S : string[70] ;
            choix, i, compteur : integer ;
            test : boolean ;
            C : char ;
BEGIN
repeat
    (* saisie de la chaîne *)
    write('chaîne d'au plus 70 caractères ? ') ; readln(S) ;
    (* menu *)
    repeat
        clrscr ;
        writeln('Au choix :') ;
        writeln(' -1-  afficher la chaîne verticalement') ;
        writeln(' -2-  afficher la chaîne horizontalement et à l'envers') ;
        writeln(' -3-  calculer le nombre d'occurences d'un caractère dans la chaîne') ;
        writeln(' -4-  tester si la chaîne est un palindrome') ;
        writeln(' -5-  changer de chaîne') ;
        writeln(' -0-  terminer') ;
        readln(choix) ;
        clrscr ;
        case choix of
            1 :    for i:=1 to length(S) do writeln(S[i]) ;
            2 :    begin for i:=length(S) downto 1 do write(S[i]) ; writeln ; end ;
            3 :    begin
                    write('quel caractère doit-on rechercher dans la chaîne ? ') ; readln(C) ;
                    compteur:=0 ;
                    for i:=1 to length(S) do if C=S[i] then compteur:=compteur+1 ;
                    writeln('dans la chaîne S=',S,', le caractère C=', C, ' est présent ', compteur, ' fois.') ;
                    end ;
            4 :    begin
                    test:=true ;
                    for i:=1 to length(S) do
                        if (S[i]<>S[length(S)-i+1]) then test:=false ;
                    if test
                        then writeln('La chaîne S=', S, ' est un palindrome')
                        else writlen('La chaine S=', S, ' n'est pas un palindrome') ;
                    end ;
        until (choix=0) or (choix=5) ;
    until (choix=0) ;
END.