program sujet1;
uses wincrt;
type
tab=array[1..20] of integer;
var
n,p:integer;
t:tab;
procedure saisie(var t:tab;var n,p:integer);
var i:integer;
begin repeat write('N= ');
readln(n);
until n in [3..20];
for i:= 1 to n do
t[i]:=random(9000)+1000;
for i :=1 to n do write(t[i],' ');
repeat
write('Donner p');
readln(p);
until (p>=1000) and(p<=9999);
end;
function verif1 (x:integer):boolean;
var
test:boolean;
i:integer;
begin i:=0;
repeat i:=i+1;
if x=t[i] then test:=true else
test:=false;
until (test) or (i=n);
verif1:=test;
end;
function verif2(x:integer):boolean;
var
test:boolean;
i:integer;
begin i:=0;
repeat i:=i+1;
if x div 10=t[i] div 10 then test:=true
else
test:=false;
until (test) or (i=n);
verif2:=test;
end;
procedure affiche(t:tab);
var i:integer;
begin
if verif1(p) then write('P appartient totalement à t')
else if verif2(p) then write('P appartient partiellement à t')
else write('Appartenance nulle');
end;
begin saisie(t,n,p);
affiche(t);
end.