/*************************************************************************************************************************************/
/* */
/* T E S T D E L A F O N C T I O N ' MODU(...) ' : */
/* */
/* */
/* Author of '$xtKg/MODU$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20221204120955). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/*************************************************************************************************************************************/
#include INCLUDES_BASE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#define Xmin \
0
#define Xmax \
779
#define PRINT(valeur,origine,extremite) \
Bblock \
DEFV(Int,INIT(x,valeur)); \
DEFV(Int,INIT(y,FiMODU(x,origine,extremite))); \
\
CAL2(Prin4("%+d --> %+d dans [%+d,%+d]\n",x,y,origine,extremite)); \
/* On notera que : */ \
/* */ \
/* CAL2(Prin4("%+d --> %+d dans [%+d,%+d]\n",valeur,x,origine,extremite)); */ \
/* */ \
/* ne fonctionne pas correctement lorsque 'valeur' est une constante negative (-1 par */ \
/* exemple qui donne alors +4294967295 lors de l'edition precedente avec 'valeur' au lieu */ \
/* de 'x'...). */ \
/* */ \
/* La solution est donc de passer par un 'Int' intermediaire. Mais cela a conduit a */ \
/* remplacer 'MODU(...)' par 'FiMODU(...)' afin d'eviter les messages : */ \
/* */ \
/* warning: integer overflow in expression of type 'long int' */ \
/* results in '-2' [-Woverflow] */ \
/* ((long int)0x7fffffffffffffff)- ((long int)0x8000000000000001))) */ \
/* xxxx */ \
/* xxxx */ \
/* xxxx */ \
/* xxxx */ \
/* */ \
/* qui disparaissent si l'on remet ''valeur' a la place de 'x', ce qui montre que le */ \
/* '$Cc' calcul les expressions constantes... */ \
Eblock
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* T E S T D E L A F O N C T I O N ' MODU(...) ' : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
GET_ARGUMENTS_(nombre_d_arguments
,BLOC(VIDE;)
);
PRINT(PREX(Xmin),Xmin,Xmax);
PRINT(NEUT(Xmin),Xmin,Xmax);
PRINT(SUCX(Xmin),Xmin,Xmax);
printf("\n");
PRINT(PREX(Xmax),Xmin,Xmax);
PRINT(NEUT(Xmax),Xmin,Xmax);
PRINT(SUCX(Xmax),Xmin,Xmax);
printf("\n");
PRINT(0,0,1);
PRINT(-1,0,1);
PRINT(+1,0,1);
printf("\n");
PRINT(0,MOINS_L_INFINI,INFINI);
PRINT(-1,MOINS_L_INFINI,INFINI);
PRINT(+1,MOINS_L_INFINI,INFINI);
printf("\n");
PRINT(0,1,128);
PRINT(1,1,128);
PRINT(128,1,128);
PRINT(129,1,128);
PRINT(512,1,128);
RETU_Commande;
Eblock
ECommande