\ifx\TD\exo\input TDexo \else \let\findoc=\relax \fi
\magnification\magstep1
\exo{Pointeurs}
Qu'affichent ces deux programmes~?{\verbatim
var a,b,c:integer;                       type p=^m;
    p,q,r:^integer;                           m=record
begin                                             i:integer;
  a:=1;b:=2;c:=3;                                 x,y:p
  new(p);                                       end;
  q:=p;                                  var a,b:p;
  q^:=a+b;                               begin
  new(r);                                  new(a);
  p^:=p^+1;                                new(b);
  r^:=q^;                                  a^.i:=1;
  c:=r^;                                   b^.i:=2;
  writeln(a:3,b:3,c:3,p^:3,q^:3,r^:3);     a^.x:=a;
  p:=r;                                    a^.y:=b;
  p^:=p^+r^;                               b^.y:=a;
  p^:=p^+r^;                               new(b^.x);
  p^:=p^+r^;                               b^.x^.i:=3;
  writeln(p^:3,q^:3,r^:3);                 b^.x^.x:=a;
  p:=@a;                                   b^.x^.y:=b;
  q:=@b;                                   writeln(a^.x^.x^.y^.x^.x^.y^.i)
  p^:=a+b+c;                             end.
  q^:=a+b+c;
  writeln(a:3,b:3,c:3);
  for a:=1 to 2 do
  begin
    q^:=p^+1;
    q:=r
  end;
  writeln(a:3,b:3,c:3,p^:3,q^:3,r^:3);
  p:=@b;
  for c:=1 to 3 do
  begin
    p^:=r^+q^-c;
    r:=p;p:=q;q:=r
  end;
  writeln(p^:3,q^:3,r^:3)
end.
}
\corrige
\exo{}
\quest
{\verbatim
  1  2  4  4  4  4
 32  4 32
  7 13  4
  2  2  4  2  3  3
  8 13 13
}
\quest
{\verbatim
2
}
\findoc
