1 program sujet1;
uses wincrt;
type
tab= array[1..20] of integer;
var T:tab;
p,n:integer;
procedure saisie ( var n :integer);
begin repeat
write(' taper n:'); readln(n);
until (n in [5..20]);
end;
procedure saisie_p ( var p :integer);
begin repeat
write(' taper p:'); readln(p);
Lycée Pilote de Sousse
2 until (p>999)and(p<10000);
end;
procedure remplir ( var t:tab; n :integer);
var i:integer; ch:string;
begin
for i:=1 to n do repeat
write('T[',i,']='); readln(t[i]);
str(t[i],ch) ;
until (length(ch)=4);
end;
function recherchetot (t:tab; n:integer; p:integer):boolean;
var
i:integer; rep:boolean;
begin
i:=0; rep:=false;
repeat i:=i+1;
if t[i]=p then rep:=true;
until (rep) or(i=n);
recherchetot:=rep;
end;
function recherchepart (t:tab; n:integer; p:integer):boolean;
var
i:integer; rep:boolean;
begin
i:=0; rep:=false;
p:=p div 10;
repeat i:=i+1;
if (t[i] div 10 =p) then rep:=true;
until (rep) or(i=n);
recherchepart:=rep;
end;
BEGIN SAISIE(n);
remplir(t,n);
repeat
saisie_p(p);
Lycée Pilote de Sousse
3
if recherchetot(t,n,p) then writeln(p,' apprtient totalement à T ')
else if recherchepart(t,n,p) then writeln(p,' apprtient partiellement à T ') else writeln(p, ' n''appartient pas à T');
until keypressed;
END.
program exist;
uses wincrt;
type
tab=array [1..20]of longint;
var t:tab;
n:integer;
p:longint;
procedure saisie(var n: integer ; var t: tab;var p:longint );
var
i:integer ;ch1,ch:string;
begin repeat
write (' n = ') ; readln(n);
until n in [5..20];
for i:= 1 to n do begin
repeat
write ('taper un entier ');
readln (t[i]);
str (t[i],ch);
until (length (ch)=4);
end;
repeat write ('p=');
readln (p);
str(p,ch1);
until (length (ch1))=4;
end;
function verif(t:tab;n:integer;p:longint):integer ; var
i,j:integer ; ch,ch1:string;
occ:integer;
Lycée Pilote de Sousse
4 begin
for i:= 1 to n do begin
str(p,ch1);
str (t[i],ch);
occ:=0;
j:=0;
repeat j:=j+1;
if ch[j]= ch1[j] then occ:= occ+1;
until (occ= 4) or (ch[j]<>ch1[j]);
end;
verif:=occ;
end;
begin
saisie(n,t,p);
verif(t,n,p);
if verif(t,n,p)=4 then write ('p appartient totalement a t')
else if verif(t,n,p)=3 then write (p,' appartient partiellement a t ') else write (p,'n''appartient pas a t ');
end.
Lycée Pilote de Sousse