salut,


voila l'exercice:ecrire un programme en pascal qui inverse une liste unidirectionnelle.
j'ai ecrit le programme mais j'ai un petit problème dans la procedure cree_invers (elle ne fait rien apres la compilation),
donc svp je damande votre aide voila mon programme :


Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
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
program inverse_liste;
uses crt;
const n=5;
type ptr=^noeud;
     noeud=record
     val:integer;
     suiv:ptr;
     end;
var c,c1:ptr;
procedure cree_invers(var c1:ptr;c:ptr);
var t:ptr;x:integer;
begin
t:=nil;c1:=nil;
while c<>nil do
begin
x:=c^.val;
writeln(x);
new(c1);
c1^.suiv:=t;
t:=c1;
t^.val:=x;
end;
c:=c^.suiv;
end;
procedure cree_liste(var c:ptr);
var a,b:ptr;i:integer;
begin
new(a);
writeln('1 ere valeur:');
readln(a^.val);
b:=a;
writeln;
for i:=2 to n do
begin
new(c);
writeln(i,' ieme valeur ');
readln(c^.val);
b^.suiv:=c;
b:=c;
writeln;
end;
b^.suiv:=nil;
c:=a;
for i:=1 to n do
begin
writeln(c^.val);
c:=c^.suiv;
end;
end;
begin
clrscr;
writeln('                 voila ma liste:');
cree_liste(c);
writeln('                  et voila ma liste invers‚e:');
cree_invers(c1,c);
end.


d'avance