program appartenance ; uses wincrt ; type vecteur =array [1..20] of integer ; var t :vecteur ; n ,p,i :integer ; procedure sais (var n:integer) ; begin repeat writeln ('donner le nombre n ' ) ; readln (n) ; until n in [5..20] ; end; procedure remplir (var t:vecteur; n:integer ) ; begin for i:= 1 to n do t[i] :=1000+ random (9000) ; end ; procedure afficher ( t:vecteur; n:integer ) ; begin for i:= 1 to n do writeln (t[i]) ; end ; procedure saisir (var p : integer) ; begin repeat writeln ('donner p') ; readln (p) ; until (p>=1000)and(p<=9999) ; end ; procedure apparance ( t: vecteur ; n,p:integer ) ; var h:integer; begin i:=1; h:=3; repeat if p = t[i] then h:=1 else if p div 10 = t[i] div 10 then h:=2 ; i:=1+i; until (h=1) or (i>n); case h of 1: writeln(' Appartenance totale '); 2: writeln(' Appartenance partielle '); 3: writeln(' Appartenance nulle'); end; end; begin randomize; sais (n) ; remplir (t,n); afficher (t,n) ; saisir(p) ; apparance (t,n,p) ; end.