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;