Afficher les valeurs d'un type.

Afficher les valeurs d'un type. - Ada - Programmation

Marsh Posté le 10-12-2006 à 15:31:12    

Alors voila je suis en train de realiser un ptit programme mais impossible de trouver une solution a mon probleme.
 
J'ai ca par exemple:
 

Code :
  1. TYPE Categories IS (Sexe, Cheveux, Yeux);
  2. TYPE T_Sexe IS (Homme,Femme);
  3. TYPE T_Cheveux IS (Brun, Blond, Roux);
  4. TYPE T_Yeux IS (Bleu, Vert, Marron);


 
Et je voudrais afficher pour chaque valeurs de categories, les valeurs du types correspondant. Par exemple pour sexe, je vais afficher les valeurs de T_SEXE.  
 
Exemple:

Code :
  1. FOR C IN Categories'RANGE LOOP
  2.     FOR Cc IN T_CHEVEUX'RANGE LOOP
  3.         Put(" - "&T_CHEVEUX'Image(Cc));
  4.     END LOOP;
  5. END LOOP;


 
Mais bien evidement ca ne marche que pour Cheveux.
Je pourrai mettre 3 boucles for à la suite mais je trouve ça très moche...
Comment faire pour que le programme sache que "cheveux" => T_CHEVEUX ?
 
Merci

Reply

Marsh Posté le 10-12-2006 à 15:31:12   

Reply

Marsh Posté le 10-12-2006 à 15:47:36    

Bonjour,
ben si ça marche avec 3 boucle for, c'est deja bien parce qu'il est pas simple à priori, le probleme  :heink:  
 
Merci d'avoir posé la question.
 
Peut-on savoir pour quelle application est-ce ?

Reply

Marsh Posté le 10-12-2006 à 16:47:24    

Code :
  1. for I in T_Categories'Range loop
  2.      case I is
  3.         when Sexe =>
  4.            for j in T_Sexe'Range loop
  5.               Put_Line(T_Sexe'Image(J));
  6.            end loop;
  7.         when Cheveux =>
  8.            for j in T_cheveux'Range loop
  9.               Put_Line(T_cheveux'Image(J));
  10.            end loop;
  11.         when Yeux =>
  12.            for j in T_yeux'Range loop
  13.               Put_Line(T_yeux'Image(J));
  14.            end loop;
  15.      end case;
  16.   end loop;


 
Pas mieu  :)

Reply

Marsh Posté le 10-12-2006 à 16:49:31    

J'y pensais aussi a faire un case m'enfin ca reste toujours lourd une semi solution :( :(.
 
C'est un QUI EST-CE à programmer et a rendre pour le bahut :x
 
Bon jcrois que jvais faire avec un case tanpis :( jvois pas d'autre solution.
Merci que meme

Reply

Marsh Posté le 10-12-2006 à 16:57:14    

A ok, merci InTh3WinDDD.

Reply

Marsh Posté le 10-12-2006 à 18:56:38    

Peut-etre qu'il est possible de faire plus élégament à l'aide de la programmation Objet, mais ça parait costo quand même, au moins 150 ligne à vu de nez et pas des plus simple.
Voila, après une courte analyse [:dawa_neowen]

Reply

Marsh Posté le 11-12-2006 à 11:07:50    

Merci mais je vais en rester au case crado :D

Reply

Marsh Posté le 07-01-2007 à 15:39:59    

c'est un problème du type énumératif:
déclare un package ->
 
PACKAGE categories_Enumeration_Io IS NEW Enumeration_Io(Categories); USE categories_Enumeration_Io;
 
Peux tu me dire si c'est une solution possible.
MErci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed