with Ada.Text_IO, ada.integer_text_io;
use Ada.Text_IO, ada.integer_text_io;
with file;
use file;
procedure TD3 is
procedure put(f : in MaFile) is
ftmp : MaFile := f;
begin
while not fileVide(ftmp) loop
put(tete(ftmp), 4);
defiler(ftmp);
end loop;
New_line;
end;
subtype MaPile is MaFile;
initPile : constant MaPile := initFile;
procedure empiler(p : in out MaPile; e : in integer) is
ptmp : MaFile;
begin
while not fileVide(p) loop
enfiler(ptmp, tete(p));
defiler(p);
end loop;
enfiler(p, e);
while not fileVide(ptmp) loop
enfiler(p, tete(ptmp));
defiler(ptmp);
end loop;
end;
procedure depiler(p : in out MaPile) is
begin
defiler(p);
end;
function sommet(p : MaPile) return Integer is
begin
return tete(p);
end;
function pileVide(p : MaPile) return Boolean is
begin
return fileVide(p);
end;
f : MaFile;
p : MaPile;
begin
f := initFile;
enfiler(f, 1);
enfiler(f, 2);
enfiler(f, 3);
enfiler(f, 4);
enfiler(f, 5);
enfiler(f, 6);
enfiler(f, 7);
enfiler(f, 8);
enfiler(f, 9);
enfiler(f, 10);
put(f);
defiler(f);
put(f);
enfiler(f, 11);
put(f);
p := initPile;
empiler(p, 1);
empiler(p, 2);
put(sommet(p));
depiler(p);
put(sommet(p));
end TD3;