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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
PROGRAM TP2;
uses wincrt;
CONST K=20 ;
TYPE TP = array[1..K] of integer ;
LISTE = ^Maillon;
Maillon = record
info: integer;
suiv: liste;
end;
VAR T: TP;
N,V: integer;
L1,L2:liste;
PROCEDURE affiche(List:liste); {Affiche les éléments d'une liste donnée}
var S:liste;
begin
writeln('Les éléments de la liste sont:');
S:=List;
While S <> nil do
begin
write(S^.info,', ');
S:=S^.suiv;
end;
writeln;
end;
PROCEDURE initvec (var V:TP; N:integer);{initialise un tableau}
var i:integer;
begin
randomize; {Peut être aussi déclaré à l'interieur de la boucle}
writeln('Les éléments du vecteur sont:');
for i:=1 to N do
begin
V[i]:= random(101);
write(V[i],'|');
end;
writeln;
end;
PROCEDURE aff_lis(List:liste); {Affiche les éléments d'une liste donnée}
var S:liste;
begin
writeln('Les éléments de la liste sont:');
S:=List;
While S <> nil do
begin
write(S^.info,'|');
S:=S^.suiv;
end;
writeln;
end;
PROCEDURE ajout(Ve:TP; var La:liste); {ajout des elements d'un vecteur vers une liste}
var i: integer;
e:liste;
s:liste;
begin
for i:=N downto 1 do
begin
new(e);
e^.info:=ve[i];
e^.suiv:=La;
La:=E;
end;
aff_lis(La);
end;
PROCEDURE insert (var L:liste; x:integer); {inserer v dans une liste triée}
var P,E:liste;
begin
new(E);
E^.info:=x;
if L=nil then L:=E
else
begin
P:=L;
while P<>nil do if x>p^.info then p:=p^.suiv;
E^.suiv:=P^.suiv;
P^.suiv:=E;
end;
aff_lis(L);
end;
{programme principal}
BEGIN
repeat
writeln('Donnez une valeur à N inférieure à ',K);
readln(N);
until (N<=K);
writeln('N= ',N);
initvec(T,N);
ajout(T,L1);
writeln('V= ?');
readln(v);
insert(L2,v);
END. |
Partager