All pastes #545865 Raw Edit

Adada

public text v1 · immutable
·published 2007-06-06 22:02 UTC
rendered paste body
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;