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