/***************************************************************/
Type Vecteur Defaut Final TailleSegment 4 ConserverObjets
/* Objet : Encapsulation du type Vecteur. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet.  */
/*-------------------------------------------------------------*/
Prive :
	
	EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres.                                         */
/*-------------------------------------------------------------*/
Prive :
	
   NbDimensions : 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;
/*-------------------------------------------------------------*/
/* Methodes propres.                                           */
/*-------------------------------------------------------------*/
	
   Constructeur Optimiser(Invariant, NulAbsorbant) (T : Nul Ou Type, N : Nul Ou Entier, E : Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) ==(V : Nul Ou Vecteur(Nul Ou TypeElement)) Retourner Nul Ou Booleen;
	
   Operateur Optimiser(Invariant, NulAbsorbant) !=(V : Nul Ou Vecteur(Nul Ou TypeElement)) Retourner Nul Ou Booleen;
	
   Operateur =(E : Nul Ou TypeElement);
	
   Operateur =(C : Nul Ou ICollection(Nul Ou TypeElement));
	
   Operateur Optimiser(Invariant, NulAbsorbant) +(V : Nul Ou Vecteur(Nul Ou TypeElement)) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) +(E : Nul Ou TypeElement) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant) -() Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) -(V : Nul Ou Vecteur(Nul Ou TypeElement)) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) -(E : Nul Ou TypeElement) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) *(V : Nul Ou Vecteur(Nul Ou TypeElement)) Retourner Nul Ou Matrice(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) *(E : Nul Ou TypeElement) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) /(E : Nul Ou TypeElement) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) ^(E : Nul Ou Entier) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant, NulAbsorbant) .(V : Nul Ou Vecteur(Nul Ou TypeElement)) Retourner Nul Ou TypeElement;
	
   Operateur ++(P : Booleen) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur --(P : Booleen) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Operateur Optimiser(Invariant) [](I : Nul Ou Entier) Retourner Nul Ou TypeElement;
	
   Operateur [](I : Nul Ou Entier, Valeur : Nul Ou TypeElement, MethodeAComposer : Nul Ou Fonction(P1 : Nul Ou TypeElement, P2 : Nul Ou TypeElement) Retourner Nul Ou TypeElement);
	
   Operateur [](I : Nul Ou Entier, Prefixe : Booleen, MethodeAComposer : Nul Ou Fonction(P1 : Nul Ou TypeElement, P2 : Booleen) Retourner Nul Ou TypeElement) Retourner Nul Ou TypeElement;
	
   Fonction Optimiser(Invariant, NulAbsorbant) Copier(I : Nul Ou Entier, L : Nul Ou Entier) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Procedure Optimiser(NulAbsorbant) Coller(I : Nul Ou Entier, V : Nul Ou Vecteur(Nul Ou TypeElement));
	
   Fonction Optimiser(NulAbsorbant) Inserer(I : Nul Ou Entier, E : Nul Ou TypeElement=Nul) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Fonction Optimiser(NulAbsorbant) Supprimer(I : Nul Ou Entier) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Procedure Permuter(I1 : Nul Ou Entier, I2 : Nul Ou Entier);
	
   Procedure Appliquer(Traitement : Nul Ou Procedure (O : Nul Ou TypeElement));
	
   Procedure Appliquer(Traitement : Nul Ou Procedure (O1 : Nul Ou TypeElement, O2 : Nul Ou TypeElement), V : Nul Ou Vecteur(Nul Ou TypeElement));
	
   Fonction Optimiser(NulAbsorbant) Appliquer(Traitement : Nul Ou Fonction (O : Nul Ou TypeElement) Retourner Nul Ou TypeElement) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Fonction Optimiser(NulAbsorbant) Appliquer(Traitement : Nul Ou Fonction (O1 : Nul Ou TypeElement, O2 : Nul Ou TypeElement) Retourner Nul Ou TypeElement, V : Nul Ou Vecteur(Nul Ou TypeElement)) Retourner Nul Ou Vecteur(Nul Ou TypeElement);
	
   Fonction Optimiser(NulAbsorbant, Invariant) VersVecteur(T : Nul Ou Type) Retourner Nul Ou Vecteur;
Prive :
	
   Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Vecteur modélise un vecteur de NbDimensions éléments dont leur type est donné par son paramètre. Ce dernier ne peut être que :
Le type Vecteur possède un constructeur permettant de créer un vecteur de type T de N élements initialisés avec l'élément E.
Principal
Variable 
	V : Nul Ou Vecteur(Complexe);
/* 'V' est une variable de type vecteur. */
	V2 : Nul Ou Vecteur(Complexe);
	C : Nul Ou Complexe;
Debut
V=Vecteur(Complexe, 3, 3);
V2=Vecteur(Complexe, 3, 3);
M=M+M2;
/* Addition de deux vecteurs. */
M=M+Complexe(10);
/* Addition d'un vecteur et d'un complexe. */
M=M-M2;
/* Soustraction de deux vecteurs. */
M=M-Complexe(10);
/* Soustraction d'un vecteur et d'un complexe. */
C=M*M2;
/* Multiplication de deux vecteurs. */
M=M*Complexe(2);
/* Multiplication d'un vecteur et d'un complexe. */
M=M/Complexe(10);
/* Division d'un vecteur et d'un complexe. */
M=M^2;
/* Puissance d'un vecteur. */
Si M==M2 Alors
/* Egalité entre deux vecteurs. */
	...
Fin Si
Si M!=M2 Alors
/* Inégalité entre deux vecteurs. */
	...
Fin Si
Fin Principal
| - | - | - | - | - | - | - | - | - |