1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
   | unit unit_tableau;
 
interface
uses seqint;
const indmin = 1;
         indmax = 10;
type  elem = integer;
         Ttab = array [indmin .. indmax] of  elem;
 
procedure ChargeTab (var t:Ttab; var long:integer);
{  effet:		initialise le tableau t Ã* partir de la première composante gauche avec un  contenu aléatoire
                           (provenant d'une séquence quelconque)
		et calcule dans long le  nombre de composantes initialisées }
 
 procedure  ClavTab(var t:Ttab; var long:integer);
{  effet: 	 initialise le tableau t depuis le clavier.
                  (999 joue le rôle de sentinelle si on ne souhaite pas remplir complètement le tableau).
	et calcule dans long le nombre  de  composantes initialisées.
 }
 
 procedure ChargeDefTab (var t: Ttab; var long:integer );
{    effet: initialise le tableau t Ã* partir de la première composante gauche avec le contenu d'une séquence
               de caractéristique genre (croissante, doublesvt)
	et calcule dans long le nombre de composantes initialisées.
     Exception : si taille s > indmax --> le chargement se limite Ã* indmax composantes.}
 
procedure AfficheTab (const  t: Ttab; const  long:integer );
{ effet : affiche les composantes significatives du tableau (les longs premières composantes du tableau) }
 
implementation
 
procedure ChargeTab (var t:Ttab; var long:integer);
var s:tseqint;
    it: tseqiter;
begin
s:=tseqInt.create(quelconque);
it:=tseqIter.init(s);
long:=indmin-1;
while (long< indmax ) and not it.aubout
 do begin inc(long);
          t[long] :=it.valeurCourante;
    end;
 
end ;
 
procedure  ClavTab(var t:Ttab; var long:integer);
var x:integer;
begin
long:=indmin -1;
readln(x);
while (long<indmax) and (x<> 999)
 do begin
 inc(long);
 t[long]:= x;
 readln(x);
end;
end;
 
 procedure ChargeDefTab (var t: Ttab; var long:integer );
 var s:tseqint;
     it: tseqiter;
 begin
 s:=tseqInt.create(quelconque);
 it:=tseqIter.init(s);
 long:=indmin-1;
 while (long< indmax ) and not it.aubout
  do begin  inc(long);
            t[long] :=it.valeurCourante;
 
     end;
 
end ;
 
 
 
 
procedure AfficheTab (const  t: Ttab; const  long:integer );
var i:integer;
begin
for i:=1 to long do write(t[i]:4);
writeln;
 
 
end ;
 
 
 
end. | 
Partager