/*************************************************************************************************************************************/ /* */ /* C A L C U L " E T E N D U " D E ' AX+B ' : */ /* */ /* */ /* Author of '$xcg/AXPBx.01$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20180818095211). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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_____AUTORISER_LE_GooF #define GENERER_LES_GET_ARGUMENTS_DE_CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 UTILISER_LE_GooF \ VRAI \ /* Faut-il utiliser le 'GooF' ? Le 20181109105028, la valeur par defaut est passee de 'FAUX' */ \ /* a 'VRAI' (ce qui ne change pas le comportement par defaut (tant que les ponderations des */ \ /* differentes fonctions type 'FfxADD2(...)' ne sont pas modifiees... */ #define NOMBRE_A \ FU #define NOMBRE_X \ FU #define NOMBRE_B \ FZERO /* Les trois nombres flottants pour lesquels on va calculer 'ax+b'. */ #include xcg/ARIT.01.I" #include xci/valeurs.01.I" /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #include xci/valeurs.02.I" /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C A L C U L " E T E N D U " D E ' AX+B ' : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(Logical,INIT(utiliser_le_GooF,UTILISER_LE_GooF)); /* Faut-il utiliser le 'GooF' ? Le 20181109105028, la valeur par defaut est passee de 'FAUX' */ /* a 'VRAI' (ce qui ne change pas le comportement par defaut (tant que les ponderations des */ /* differentes fonctions type 'FfxADD2(...)' ne sont pas modifiees... */ DEFV(Float,INIT(nombre_A,NOMBRE_A)); DEFV(Float,INIT(nombre_X,NOMBRE_X)); DEFV(Float,INIT(nombre_B,NOMBRE_B)); /* Les trois nombres flottants pour lesquels on va calculer 'ax+b'. */ #include xci/valeurs.03.I" /*..............................................................................................................................*/ GET_ARGUMENTS_(nombre_d_arguments ,BLOC(GET_ARGUMENT_F("nombre_A=""a=""A=",nombre_A); GET_ARGUMENT_F("x=""nombre_X=""X=",nombre_X); GET_ARGUMENT_F("nombre_B=""b=""B=",nombre_B); GET_ARGUMENT_L("GooF=",utiliser_le_GooF); /* ATTENTION, je note le 20180818103114 que : */ /* */ /* GooF=VRAI */ /* */ /* n'a d'interet que si l'on utilise de plus : */ /* */ /* arithmetique_etendue=VRAI */ /* */ PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_1; PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_2; /* Ces deux procedures furent introduites le 20061226182255... */ ) ); begin_nouveau_block Bblock DEFV(Float,INIT(valeur_courante,FLOT__UNDEF)); USs_GooF______CONDITIONNEL(utiliser_le_GooF ,BLOC( Bblock EGAL(valeur_courante,AXPB(nombre_A,nombre_X,nombre_B)); /* Calcul des elements attendus de la suite (avec 'GooF' par defaut...) suivant : */ /* */ /* A.X + B */ /* */ /* par defaut... */ /* */ /* On notera le 20181008150627 une arithmetique originale "MAX-MIN" ou l'addition est */ /* remplacee par le maximum et la multiplication par le minimum. Il suffit de faire : */ /* */ /* arithmetique_etendue=VRAI */ /* GooF=VRAI */ /* pxADD2_ADD2=0 pxMAX2_ADD2=1 */ /* pxMUL2_MUL2=0 pxMIN2_MUL2=1 */ /* */ /* On notera le 20181109105028 que l'on ne procede pas ici comme, par exemple, dans */ /* 'v $xcg/ADD2x.01$K FfxADD2' car, en effet, il n'existe pas de fonction 'FfxAXPB(...)' */ /* comme il existe 'FfxADD2(...)'... */ Eblock ) ); EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(valeur_courante); /* Edition de la valeur... */ Eblock end_nouveau_block RETU_Commande; Eblock ECommande