/*************************************************************************************************************************************/ /* */ /* T E S T D E S T R I S : */ /* */ /* */ /* Author of '$xtKg/tri.01$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20010215163741). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N T E R F A C E ' listG ' : */ /* */ /* */ /* :Debut_listG: */ /* :Fin_listG: */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */ /* */ /*************************************************************************************************************************************/ @define PRAGMA_CPP_____MODULE_NON_DERIVABLE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_MINI /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #define NOMBRE_D_ELEMENTS \ SEIZE \ /* Nombre maximal d'elements dans le fichier. */ #define N_AU_CARRE \ VRAI \ /* Methode de tri par defaut. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #define ACCES_LISTE(liste,index) \ ITb1(liste,INDX(index,PREMIER_ELEMENT_D_UN_FICHIER)) \ /* Acces a un element des listes. */ #define TEST_DU_TRI(initialisation) \ Bblock \ DoIn(index,PREMIER_ELEMENT_D_UN_FICHIER,LSTX(PREMIER_ELEMENT_D_UN_FICHIER,NOMBRE_D_ELEMENTS),I) \ Bblock \ BLOC(initialisation;); \ EGAL(ACCES_LISTE(Liste_des_index,index),index); \ /* Initialisation de la liste a trier. */ \ Eblock \ EDoI \ \ TRI_D_UNE_LISTE_QUELCONQUE(Liste_a_trier \ ,Liste_des_index \ ,PREMIER_ELEMENT_D_UN_FICHIER \ ,LSTX(PREMIER_ELEMENT_D_UN_FICHIER,NOMBRE_D_ELEMENTS) \ ,FAUX \ ,N_au_carre \ ,ACCES_LISTE \ ); \ /* L'argument "tri_auto=FAUX" a ete introduit le 20170829185927... */ \ \ DoIn(index,PREMIER_ELEMENT_D_UN_FICHIER,LSTX(PREMIER_ELEMENT_D_UN_FICHIER,NOMBRE_D_ELEMENTS),I) \ Bblock \ CAL2(Prin3("%04d : liste(%04d)=%f\n" \ ,index \ ,INTE(ACCES_LISTE(Liste_des_index,index)) \ ,ACCES_LISTE(Liste_a_trier,ACCES_LISTE(Liste_des_index,index)) \ ) \ ); \ /* Et edition... */ \ Eblock \ EDoI \ Eblock \ /* Test du tri... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T E S T D E S T R I S : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(Float,DTb1(Liste_a_trier,NOMBRE_D_ELEMENTS)); DEFV(Float,DTb1(Liste_des_index,NOMBRE_D_ELEMENTS)); /* Fichier flottant. */ DEFV(Logical,INIT(N_au_carre,N_AU_CARRE)); /* Methode de tri par defaut. */ DEFV(Int,INIT(index,UNDEF)); /* Index... */ /*..............................................................................................................................*/ GET_ARGUMENTS_(nombre_d_arguments ,BLOC(GET_ARGUMENT_L("N2=",N_au_carre); ) ); TEST_DU_TRI(BLOC(EGAL(ACCES_LISTE(Liste_a_trier,index),COSX(index));)); CAL2(Prin0("\n\n")); TEST_DU_TRI(BLOC(EGAL(ACCES_LISTE(Liste_a_trier,index),fINTE(FRA5(index)));)); /* Cette liste "en marche d'escaliers" est destinee a verifier que "N2=VRAI" conserve */ /* l'ordre des elements successifs qui ont des valeurs identiques contrairement a "N2=FAUX". */ RETU_Commande; Eblock ECommande