-->
-->
Soit T un tableau contenant N chaines formées par des
lettres alphabétiques et V un tableau contenant M entiers > 0 avec N et M
sont compris entre 3 et 20.
On se propose d’afficher les chaines symétriques
dans T et les non symétriques dans V.
program symetrique;
uses wincrt ;
var t:array [1..30]of string;
v:array [1..30]of
integer;
n,m,i:integer;
ch:string;
function verif(ch:string):boolean;
var i:integer;
b:boolean;
begin
i:=0 ;
repeat
i:=i+1;
b:=upcase(ch[i]) in ['A'..'Z'] ;
until not (b) or (i=length (ch));
verif:=b;
end;
function sym(ch:string):boolean ;
var b: boolean;
i:integer;
begin
i:=0;
repeat
i:=i+1;
b:= upcase (ch[i])=upcase(ch[length (ch)-i+1]);
until not (b) or
(i=length (ch)div 2) ;
sym:=b ;
end;
begin
repeat
writeln ('donnere la valeur n ');readln (n);
until (n>=3)and (n<=20);
for i:=1 to n do
repeat
writeln ('donner t[',i,']');readln (t[i]);
until verif(t[i]);
repeat
writeln ('donnere la valeur m ');readln (m);
until (m>=3)and (m<=20);
for i:=1 to m do
repeat
writeln ('donner v[',i,']');readln (v[i]);
until (v[i]>0);
write ('les chaines symetrique dans t sont:');
for i:=1 to n do
if sym (t[i]) then writeln (t[i] );
write ('les nombres non symetriques sont') ;
for i:=1 to m do
begin
str(v[i],ch);
if not (sym(ch)) then writeln (v[i] );
end;
end.