/****************************************************************/
Type Liste(TypeElement : Type) Implemente Public : ICollection(Nul Ou TypeElement) Defaut Final TailleSegment 16 ConserverObjets
/* Objet : Definition du type Liste. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des proprietes de ICollection. */
/*-------------------------------------------------------------*/
Prive :
NbElements : Entier 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'IIterateur. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) ParcoursAuDebut(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Optimiser(Invariant) ParcoursALaFin(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Optimiser(Invariant) ParcoursAuMilieu(Position : Nul Ou Entier, NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Suivant(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Precedent(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Optimiser(Invariant) PremierElement() Retourner Nul Ou TypeElement;
Fonction Optimiser(Invariant) DernierElement() Retourner Nul Ou TypeElement;
Fonction Optimiser NumeroElement(NumeroIterateur : Entier=0) Retourner Nul Ou Entier;
Fonction Optimiser Element(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction AllouerIterateur() Retourner Entier;
Procedure LibererIterateur(NumeroIterateur : Entier);
/*-------------------------------------------------------------*/
/* Heritage des methodes de ICollection. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant, NulAbsorbant) Gauche(Taille : Nul Ou Entier) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Droite(Taille : Nul Ou Entier) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Milieu(Position : Nul Ou Entier, Taille : Nul Ou Entier) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Inserer(L : Nul Ou Liste(Nul Ou TypeElement), Position : Nul Ou Entier) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant) Compter(Modele : Nul Ou TypeElement, Position : Nul Ou Entier=Nul) Retourner Nul Ou Entier;
Fonction Optimiser(Invariant) Rechercher(Modele : Nul Ou TypeElement, Position : Nul Ou Entier=Nul) Retourner Nul Ou Entier;
Procedure HabilitationContextuelle Supprimer(NumeroIterateur : Entier=0);
Procedure HabilitationContextuelle Remplacer(Remplacant : Nul Ou TypeElement, NumeroIterateur : Entier=0);
Fonction Optimiser(Invariant) RemplacerTous(Modele : Nul Ou TypeElement, Remplacant : Nul Ou TypeElement, Position : Nul Ou Entier=Nul) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant) SupprimerTous(Modele : Nul Ou TypeElement, Position : Nul Ou Entier=Nul) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction HabilitationContextuelle AjouterAuDebut(O : Nul Ou TypeElement) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction HabilitationContextuelle AjouterALaFin(O : Nul Ou TypeElement) Retourner Nul Ou Liste(Nul Ou TypeElement);
Operateur HabilitationContextuelle +(O : Nul Ou TypeElement) Retourner Nul Ou Liste(Nul Ou TypeElement);
Operateur Optimiser(Invariant) [](Position : Nul Ou Entier) Retourner Nul Ou TypeElement;
Operateur [](Position : Nul Ou Entier, Valeur : Nul Ou TypeElement, MethodeAComposer : Nul Ou Fonction(P1 : Nul Ou TypeElement, P2 : Nul Ou TypeElement) Retourner Nul Ou TypeElement);
Operateur [](Position : Nul Ou Entier, Prefixe : Booleen, MethodeAComposer : Nul Ou Fonction(P1 : Nul Ou TypeElement, P2 : Booleen) Retourner Nul Ou TypeElement) Retourner Nul Ou TypeElement;
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur(T : Nul Ou Type, O : Nul Ou TypeElement);
Operateur HabilitationContextuelle +(O : Nul Ou TypeElement) Retourner Nul Ou Liste(Nul Ou TypeElement);
Operateur Optimiser(Invariant) -() Retourner Nul Ou Liste(TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Union(L : Nul Ou Liste(Nul Ou TypeElement)) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Intersection(L : Nul Ou Liste(Nul Ou TypeElement)) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Soustraction(L : Nul Ou Liste(Nul Ou TypeElement)) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Exclusion(L : Nul Ou Liste(Nul Ou TypeElement)) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Trier(Critere : Nul Ou Fonction(O1: Nul Ou TypeElement, O2 : Nul Ou TypeElement) Retourner ComparaisonObjet, Ascendant : Booleen=Vrai) Retourner Nul Ou Liste(Nul Ou TypeElement);
Procedure Appliquer(Traitement : Nul Ou Procedure(O : Nul Ou TypeElement));
Procedure Appliquer(Traitement : Nul Ou Procedure(O1 : Nul Ou TypeElement, O2 : Nul Ou Objet), L : Nul Ou Liste(Nul Ou TypeElement));
Fonction Optimiser(NulAbsorbant) Appliquer(Traitement : Nul Ou Fonction(O : Nul Ou TypeElement) Retourner Nul Ou TypeElement) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(NulAbsorbant) Appliquer(Traitement : Nul Ou Fonction(O1 : Nul Ou TypeElement, O2 : Nul Ou Objet) Retourner Nul Ou TypeElement, L : Nul Ou Liste(Nul Ou Objet)) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Filtrer(Critere : Nul Ou Fonction(O : Nul Ou TypeElement) Retourner Nul Ou Booleen) Retourner Nul Ou Liste(Nul Ou TypeElement);
Fonction Optimiser(Invariant) Grouper(Critere : Nul Ou Fonction(O1 : Nul Ou TypeElement, O2 : Nul Ou TypeElement) Retourner ComparaisonObjet) Retourner Nul Ou Liste(Nul Ou TypeElement);
Operateur =(C: Nul Ou ICollection(Nul Ou TypeElement));
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Liste modélise une liste d'objets.
Chaque objet du type Liste possède des moteurs d'itérations permettant de parcourir ses éléments. Les itérateurs sont numérotés de 0 à n, 0 étant l'itérateur implicite qui n'a pas besoin d'être alloué par l'appel à AllouerIterateur. Chaque itérateur alloué, une fois utilisé, doit être libéré par l'appel LibererIterateur.
Le type Liste possède un constructeur explicite permettant de construire une liste comportant un objet. Le type de l'objet doit être en accord avec le type de l'élément de la liste.
Le type Liste est paramétré par le type TypeElement correspondant au type d'élément de la liste.
Principal
/*******/
Variable
/******/
L : ListeDe Caractere;
C : Caractere;
Debut
/* Construction d'une liste a trois éléments. */
L=ListeDe("A");
L+="B";
L+="C";
/* Parcours de cette liste. */
Pour C=L.ParcoursAuDebut() JusquA L.DernierElement() Faire
Ecran.Ecrire(C);
Fin Pour
Fin Principal
- | - | - | - | - | - | - | - | - |