/****************************************************************/
Type Tableau(TypeElement : Type) Implemente Public : ICollection(Nul Ou TypeElement) Defaut Final TailleSegment 32 ConserverObjets
/* Objet : Définition du type Tableau. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des proprietes de ICollection. */
/*-------------------------------------------------------------*/
Prive :
NbElements : Entier Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive :
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
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 NumeroElement(NumeroIterateur : Entier=0) Retourner Nul Ou Entier;
Fonction 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 Tableau(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Droite(Taille : Nul Ou Entier) Retourner Nul Ou Tableau(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Milieu(Position : Nul Ou Entier, Taille : Nul Ou Entier) Retourner Nul Ou Tableau(Nul Ou TypeElement);
Fonction Optimiser(Invariant, NulAbsorbant) Inserer(L : Nul Ou Tableau(Nul Ou TypeElement), Position : Nul Ou Entier) Retourner Nul Ou Tableau(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 Tableau(Nul Ou TypeElement);
Fonction Optimiser(Invariant) SupprimerTous(Modele : Nul Ou TypeElement, Position : Nul Ou Entier=Nul) Retourner Nul Ou Tableau(Nul Ou TypeElement);
Fonction HabilitationContextuelle AjouterAuDebut(O : Nul Ou TypeElement) Retourner Nul Ou Tableau(Nul Ou TypeElement);
Fonction HabilitationContextuelle AjouterALaFin(O : Nul Ou TypeElement) Retourner Nul Ou Tableau(Nul Ou TypeElement);
Operateur HabilitationContextuelle +(O : Nul Ou TypeElement) Retourner Nul Ou Tableau(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, NbElem : Entier, O : Nul Ou TypeElement);
Constructeur(T : Nul Ou Type, BMin : Entier, BMax : Entier, O : Nul Ou TypeElement);
Fonction HabilitationContextuelle Retailler(NbElem : Entier, O : Nul Ou TypeElement) Retourner Nul Ou Tableau(Nul Ou TypeElement);
Fonction HabilitationContextuelle Retailler(BMin : Entier, BMax : Entier, O : Nul Ou TypeElement) Retourner Nul Ou Tableau(Nul Ou TypeElement);
Operateur =(C: Nul Ou ICollection(Nul Ou TypeElement));
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Tableau modélise un tableau d'objets.
Le type Tableau possède deux constructeurs explicites :
Le type Tableau est paramétré par le type TypeElement correspondant au type d'élément du tableau.
Chaque objet du type Tableau 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.
Principal
/*******/
Variable
/******/
T : Tableau[3] De Caractere;
I : Entier;
Debut
/* Alimentation du tableau. */
T[0]="A";
T[1]="B";
T[2]="C";
/* Parcours du tableau. */
Pour I=0 JusquA 2 Faire
Ecran.Ecrire(T[I]);
Fin Pour
Fin Principal
- | - | - | - | - | - | - | - | - |