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;