/*************************************************************************************************************************************/
/* */
/* T A B L E D E M U L T I P L I C A T I O N D E S N O M B R E S C O M P L E X E S : */
/* */
/* */
/* Author of '$xtKg/complexes$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20221202121012). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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
@define PRAGMA_CL_____MODULE_NON_OPTIMISABLE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/*************************************************************************************************************************************/
#define TEST(z1,z2) \
IFET(IFEQ(Reelle(z1),Reelle(z2)) \
,IFET(IFEQ(Imaginaire(z1),Imaginaire(z2)) \
,TOUJOURS_VRAI \
) \
)
#define ANTI_TEST(z1,z2) \
IFET(IFEQ(Reelle(z1),NEGA(Reelle(z2))) \
,IFET(IFEQ(Imaginaire(z1),NEGA(Imaginaire(z2))) \
,TOUJOURS_VRAI \
) \
)
#define TEST_BASE(z,z1) \
Bblock \
Test(TEST(z,base`z1)) \
Bblock \
CAL2(Prin0("+z1")); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
Test(ANTI_TEST(z,base`z1)) \
Bblock \
CAL2(Prin0("-z1")); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
Eblock
#define PRODUIT(z1,z2) \
Bblock \
DEFV(complexe,z); \
/* Produit : z = z1.z2. */ \
Cinitialisation(z,FZERO,FZERO); \
/* Par pure hygiene... */ \
aCproduit(z,base`z1,base`z2); \
/* Calcul du produit... */ \
CAL2(Prin0("z1.z2 = ")); \
TEST_BASE(z,1); \
TEST_BASE(z,i); \
CAL2(Prin0("\n")); \
/* Edition d'une entree de la table de multiplication... */ \
Eblock
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* T A B L E D E M U L T I P L I C A T I O N D E S N O M B R E S C O M P L E X E S : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(complexe,base_1);
DEFV(complexe,base_i);
/* Definition de la base (1,i). */
/*..............................................................................................................................*/
GET_ARGUMENTS_(nombre_d_arguments
,BLOC(VIDE;)
);
Cinitialisation(base_1,FU___,FZERO);
Cinitialisation(base_i,FZERO,FU___);
/* Initialisation de la base (1,i). */
PRODUIT(1,1);
PRODUIT(1,i);
CAL2(Prin0("\n"));
PRODUIT(i,1);
PRODUIT(i,i);
CAL2(Prin0("\n"));
RETU_Commande;
Eblock
ECommande