generic type Element is private; type Indice is range <>; with function toString(e : in Element) return String is <>; package paquetage_tableau is type G_Tableau is limited private; procedure init(tab : out G_Tableau ; e : in Element); procedure affiche(tab : in G_tableau); procedure setElement(tab : in out G_Tableau ; i : in Indice; e : in Element); function getElement(tab : in G_Tableau ; i : in Indice) return Element; private type G_Tableau is array(Indice) of Element; end paquetage_tableau; with ada.text_io; with ada.integer_text_io; use ada.text_io; use ada.integer_text_io; package body paquetage_tableau is procedure init(tab: out G_Tableau; e : in Element) is --j :int:=0; begin for j in indice loop tab(j):=e; end loop; end init; procedure affiche(tab: in G_Tableau) is begin for j in indice loop put(toString(tab(j))); new_line; end loop; end affiche; procedure setElement(tab: in out G_Tableau; i : in Indice; e: in Element) is begin tab(i):=e; end setElement; function getElement(tab: in G_Tableau; i : in Indice) return Element is begin return tab(i); end getElement; end paquetage_tableau; with ada.text_io; with ada.integer_text_io; use ada.text_io; use ada.integer_text_io; --edit use paquetage_tableau; procedure test is function toString(e : Boolean) return String is begin if(e) then return "TRUE"; else return "FALSE"; end if; end toString; function toString(i : Integer) return String is begin return Integer'IMAGE(i); end toString; type borne is range 0..9; package ptableau_integer is new paquetage_tableau(Integer,borne); --package ptableau_boolean is new paquetage_tableau(Boolean,borne); use ptableau_integer; --use ptableau_boolean; ti : G_Tableau; begin init(ti,0); setElement(ti,0,1); setElement(ti,1,6); setElement(ti,2,7); setElement(ti,3,5); setElement(ti,4,4); affiche(ti); put(toString(getElement(ti,1))); --new_line; --ptb.init(tb,FALSE); --ptb.setElement(tb,1,TRUE); --ptb.setElement(tb,4,TRUE); --ptb.setElement(tb,6,TRUE); --ptb.setElement(tb,8,TRUE); --ptb.affiche(tb); end test;