/***************************************************************/
Type Enumere Implemente Public : IEspaceMetre Defaut Final TailleSegment 32 ConserverObjets
/* Objet : Encapsulation des enumeres. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
Procedure Convertir(O : Nul Ou Objet);
Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
Procedure SupprimerPropriete(NomPropriete : Caractere);
Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'IEspaceMetre. */
/*-------------------------------------------------------------*/
Public :
Operateur Optimiser(Invariant, NulAbsorbant) <=(E : Nul Ou Enumere) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) >=(E : Nul Ou Enumere) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) <(E : Nul Ou Enumere) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) >(E : Nul Ou Enumere) Retourner Nul Ou Booleen;
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur();
Operateur Optimiser(Invariant, NulAbsorbant) ==(E : Nul Ou Enumere) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) !=(E : Nul Ou Enumere) Retourner Nul Ou Booleen;
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Enumere modélise un énuméré.
Le type Enumere possède un constructeur implicite qui l'initialise à la première valeur de l'ensemble des ses valeurs possibles.
Enumere
/*****/
Couleurs (Bleu, Blanc, Rouge);
/* Définition des couleurs. Il n'y a pas de valeur d'associée aux couleurs. */
Variable
/******/
C : Couleurs;
T : Tableau[Couleurs] De Entier;
/* C est une couleur. T est un tableau d'entiers indexes sur les couleurs. */
Principal
/*******/
Debut
C=Bleu;
T[C]=10;
T[Rouge]=20;
T[Blanc]=30;
Si C==Bleu Alors
/* Egalité entre deux valeurs d'un même énuméré. */
...
Fin Si
Si C!=Bleu Alors
/* Inégalité entre deux valeurs d'un même énuméré. */
...
Fin Si
Si C<=Bleu Alors
/* Infériorité large entre deux valeurs d'un même énuméré. */
...
Fin Si
Si C<Bleu Alors
/* Infériorité stricte entre deux valeurs d'un même énuméré. */
...
Fin Si
Fin Principal
- | - | - | - | - | - | - | - | - |