1 : $$$$ ORDO NOTICE JB251061 21/02/09 21:15:05 10884 2 : DATE 21/02/09 3 : 4 : Operateur ORDONNER Voir aussi : UNIQ, ORIE 5 : ------------------ 6 : 7 : 8 : Objet : 9 : _______ 10 : 11 : L'operateur ORDONNER range le contenu d'un objet ordonnable. 12 : 13 : 14 : 15 : Syntaxes : 16 : __________ 17 : 18 : 19 : Tri d'un seul objet LISTENTI, LISTREEL ou LISTMOTS 20 : ************************************************** 21 : 22 : LIS2 = ORDO LIS1 |('CROI')| ('ABSO') ('NOCA') ('UNIQ' (FLOT1)) ; 23 : |('DECR')| 24 : 25 : 26 : 27 : Tri d'un ou plusieurs objets LISTENTI, LISTREEL et/ou LISTMOTS 28 : ************************************************************** 29 : 30 : a) Tri CROIssant ou DECRoissant 31 : ---------------------------- 32 : 33 : RES1 (.. RESN) = ORDO LIS1 (.. LISN) |('CROI')| ('ABSO') ('NOCA') ; 34 : |('DECR')| 35 : 36 : TAB2 = ORDO TAB1 OBJ1 |('CROI')| ('ABSO') ('NOCA') ; 37 : |('DECR')| 38 : 39 : 40 : b) Tri minimisant un COUT 41 : ---------------------- 42 : 43 : RES0 RES1 (.. RESN) = ORDO LIS1 (.. LISN) 'COUT' LISCOU |('HONG')| ; 44 : | 'COMP' | 45 : 46 : 47 : Tri d'un objet EVOLUTION 48 : ************************ 49 : 50 : EVOL2 = ORDO EVOL1 |('CROI')| ('ABSO') ; 51 : |('DECR')| 52 : 53 : 54 : Tri d'un objet MAILLAGE 55 : *********************** 56 : 57 : MAIL2 = ORDO MAIL1 ; 58 : 59 : 60 : 61 : Commentaires : 62 : ______________ 63 : 64 : 65 : 1) Les actions sont differentes selon le type de l'objet a traiter : 66 : 67 : - LISTENTI ou LISTREEL : on ordonne les nombres 68 : - LISTMOTS : on range les mots par ordre alphabetique 69 : - EVOLUTION : on ordonne les abscisses de chaque courbe 70 : - MAILLAGE : 71 : o POI1 : on ordonne les points par distance croissante au 72 : premier d'entre eux 73 : o SEG2, SEG3 : on ordonne les elements de maniere a decrire 74 : une ligne continue d'une extremite a l'autre 75 : (dans le cas d'une ligne fermee, celle-ci 76 : est ordonnee a partir du premier point du 77 : premier element, et le sens de parcours 78 : est celui du premier element) 79 : o autres : on ordonne par voisinnage des elements 80 : 81 : 82 : 2) Dans le cas d'un objet LIS1 (type LISTENTI, LISTREEL ou LISTMOTS) 83 : il est possible de fournir d'autres listes LIS2, LIS3, ...LISN 84 : (de types quelconques parmi LISTENTI, LISTREEL et LISTMOTS) qui 85 : subiront les memes permutations que LIS1. Toutes les listes 86 : doivent avoir la meme longueur. 87 : 88 : 89 : 3) Il est possible de regrouper les listes (type LISTENTI, LISTREEL 90 : ou LISTMOTS) dans un objet TAB1 de type TABLE. Le tri s'effectue 91 : alors sur celle d'indice OBJ1, et les autres listes subissent 92 : ensuite les memes permutations. 93 : 94 : 95 : 4) Description des mots-cles disponibles : 96 : 97 : >>> 'CROI' & 'DECR' 98 : s'applique a : LISTENTI, LISTREEL, LISTMOTS et EVOLUTION 99 : \__________________________/ 100 : ou TABLE 101 : 102 : Il est possible de trier le contenu par ordre croissant 103 : (mot-cle 'CROI') ou decroissant (mot-cle 'DECR'). 104 : 105 : 106 : >>> 'ABSO' 107 : s'applique a : LISTENTI, LISTREEL et EVOLUTION 108 : \________________/ 109 : ou TABLE 110 : 111 : Le mot-cle 'ABSO' signifie que l'on ne tient compte que de 112 : la valeur absolue des nombres pour faire la mise en ordre. 113 : 114 : 115 : >>> 'NOCA' 116 : s'applique a : LISTMOTS (ou TABLE) 117 : 118 : Le mot-cle 'NOCA' indique que le tri est insensible a 119 : la casse des caracteres. En son absence, les majuscules 120 : precedent les minuscules dans l'ordre de tri. 121 : 122 : 123 : >>> 'UNIQ' 124 : s'applique a : LISTENTI, LISTREEL, LISTMOTS 125 : \__________________________/ 126 : ou TABLE d'une seule liste 127 : 128 : (INVALIDE quand plusieurs listes sont triees simultenement) 129 : 130 : Le mot-cle 'UNIQ' permet de supprimer les eventuels doublons 131 : une fois le tri effectue. Si le mot 'NOCA' est present, deux 132 : mots seront consideres identiques meme si leur casse est 133 : differente, et seul l'un des deux sera conserve. Si un 134 : nombre FLOT1 (type FLOTTANT) est donne, deux reels seront 135 : consideres egaux si que leur difference (en valeur absolue) 136 : est inferieure a ce nombre. 137 : 138 : 139 : >>> 'COUT' 140 : s'applique a : LISTENTI, LISTREEL, LISTMOTS 141 : \__________________________/ 142 : ou TABLE 143 : 144 : Le mot-cle 'COUT' doit obligatoirement etre suivi d'un objet 145 : LISCOU de valeurs C_i_j traduisant le cout de l'association 146 : (i;j). Cet objet de type LISTENTI ou LISTREEL est donc de 147 : dimension n**2 avec n la dimension des autres listes de 148 : valeurs LIS1 (.. LISN). 149 : 150 : ORDO calculera alors la permutation j=perm(i) minimisant 151 : le cout total, soit la somme pour i=1..n des C_i_perm(i) 152 : (retournee dans RES0). Les listes RES1 (.. RESN) sont les 153 : images des LIS1 (.. LISN) soumises a cette permutation-ci. 154 : 155 : L'option 'COMP' (pour COMPLET) calcule les (n!) permutations 156 : possibles, ce qui peut etre tres long. L'option 'HONG' 157 : utilise la methode "Hongroise", beaucoup plus rapide. 158 : 159 : 160 :
© Cast3M 2003 - Tous droits réservés.
Mentions légales