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);
Si la liste est nulle ou si Critere est Nul, alors le résultat est Nul.
Critere est une fonction à deux arguments dont les types doivent être identiques au type des éléments de la liste à trier.
Type Personne Defaut
/******************/
Nom : Caractere;
DateDeNaissance : Date;
Constructeur();
Fin Type
/****************************************************************/
Fonction ParDateDeNaissance(P1 : Nul Ou Personne, P2 : Nul Ou Personne) Retourner ComparaisonObjet
/* Objet : Teste la date de naissance. */
/****************************************************************/
Debut
Si P1==Nul Ou P2==Nul Alors
Retourner ComparaisonNul;
Fin Si
Si P1.DateDeNaissance<P2.DateDeNaissance Alors
Retourner ComparaisonAvant;
Fin Si
Si P1.DateDeNaissance>P2.DateDeNaissance Alors
Retourner ComparaisonApres;
Fin Si
Retourner ComparaisonEgal;
Fin Fonction
Principal
/*******/
Variable
/******/
L : ListeDe Nul Ou Personne;
Debut
...
L.Grouper(ParDateDeNaissance);
/* Groupement des éléments de la liste par date de naissance. Il n'y a qu'un seul élément pour une date donnée. */
...
Fin Principal
ComparaisonObjet pour spécifier la comparaison de deux objets selon un critère.
- | - | - | - | - | - | - | - | - |