suivant: Sous-programme de test
monter: Description du fichier généré
précédent: Partie(s) générique(s)
  Table des matières
Cette partie est sans doute la plus tactique et mérite quelques
explications.
Comme nous avons pu le voir dans la description de l'interface
graphique, permettre la création de plusieurs objets offre une grande
souplesse lors du test du TDA.
Lorsqu'un sous programme possédant un ou plusieurs de ces paramètres
globaux (objets) sera appelé, l'utilisateur devra alors spécifier sur
lequel il veut travailler.
-- Declaration des objets du TDA T_Arbre_Recherche
Nb_Objets_T_Arbre_Recherche : constant := 1;
subtype T_Indice_T_Arbre_Recherche is Positive range 1 .. Nb_Objets_T_Arbre_Recherche;
type T_Tab_T_Arbre_Recherche is array ( T_Indice_T_Arbre_Recherche ) of T_Arbre_Recherche;
Tab_T_Arbre_Recherche : T_Tab_T_Arbre_Recherche;
-------------------------------------------------------------
-- Fonction génerique permettant de choisir un objet.
-------------------------------------------------------------
generic
Nom_Type : in String;
Nbr_Objets : in Positive;
function Choisir_Objet return Positive;
function Choisir_Objet return Positive is
subtype T_Indice is Positive range 1 .. Nbr_Objets;
Choix : T_Indice;
begin -- Choisir_Objet
if Nbr_Objets = 1 then
return 1;
end if;
loop
begin
Put ( "Choisissez le numero de l'objet du type " & Nom_Type & " (" & T_Indice'Image ( T_Indice'Last ) & " objets ) : " );
Get ( Choix );
Skip_Line;
return Choix;
exception
when Constraint_Error =>
Put_Line ( "Mauvaise entree, recommancez." );
when Data_Error =>
Skip_Line;
Put_Line ( "Mauvaise entree, recommancez." );
end;
end loop;
end Choisir_Objet;
Cette fonction générique permet de déclarer autant de fonction qu'il y a
de variables globales(objets). Ci-dessous la déclaration pour
l'unique objet du paquetage ``Arbre_recherche''
-- Fonction de selection d'objet du type T_Arbre_Recherche
function Choisir_Objet_T_Arbre_Recherche is new Choisir_Objet ( "T_Arbre_Recherche", Nb_Objets_T_Arbre_Recherche );
Ce mécanisme à pour avantage d'être suffisamment général pour permettre la gestion de
à objets.