/*************************************************************************************************************************************/
/* */
/* G E N E R A T I O N D ' U N E N S E M B L E D E N O M B R E S Q U A N T I Q U E S ( n , m , l ) : */
/* */
/* */
/* Cette commande genere une sequence */
/* de valeurs possibles d'un ou plusieurs */
/* des nombres quantiques (n,m,l). */
/* */
/* */
/* Author of '$xrq/nombres_Q.01$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1993??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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_MINI
#include xrq/Hspherik.12.I"
#include xrq/hydrogene.24.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
#define GENERER_n \
VRAI \
/* Cet indicateur indique si l'on genere 'n' ('VRAI') ou pas ('FAUX'). */
#define GENERER_m \
FAUX \
/* Cet indicateur indique si l'on genere 'm' ('VRAI') ou pas ('FAUX'). */
#define GENERER_l \
FAUX \
/* Cet indicateur indique si l'on genere 'l' ('VRAI') ou pas ('FAUX'). */
#define ORDRE_n_DE_DEPART \
ORDRE_n_01
#define ORDRE_n_D_ARRIVEE \
ORDRE_n_01
/* Definition des bornes implicites du nombre 'n'. */
#define ORDRE_m_DE_DEPART \
ORDRE_m_00
#define ORDRE_m_D_ARRIVEE \
ORDRE_m_00
/* Definition des bornes implicites du nombre 'm'. */
#define ORDRE_l_DE_DEPART \
ORDRE_l_00
#define ORDRE_l_D_ARRIVEE \
ORDRE_l_00
/* Definition des bornes implicites du nombre 'l'. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#define FAUX_ORDRE \
PRED(MIN3(ORDRE_n_01 \
,ORDRE_m_00 \
,ORDRE_l_00 \
) \
) \
/* Faux ordre destine a indiquer un etat invalide... */
#define PRINT_ORDRE(ordre,generer_l_ordre) \
Bblock \
Test(IL_FAUT(generer_l_ordre)) \
Bblock \
CAL2(Prin1("%d\n",ordre)); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
/* Edition d'un ordre quelconque... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* G E N E R A T I O N D ' U N E N S E M B L E D E N O M B R E S Q U A N T I Q U E S ( n , m , l ) : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(Logical,INIT(generer_n,GENERER_n));
/* Cet indicateur indique si l'on genere 'n' ('VRAI') ou pas ('FAUX'). */
DEFV(Int,INIT(ordre_n,UNDEF));
DEFV(Int,INIT(ordre_n_de_depart,ORDRE_n_DE_DEPART));
DEFV(Int,INIT(ordre_n_d_arrivee,ORDRE_n_D_ARRIVEE));
/* Definition de l'ordre 'n'. */
DEFV(Logical,INIT(generer_m,GENERER_m));
/* Cet indicateur indique si l'on genere 'm' ('VRAI') ou pas ('FAUX'). */
DEFV(Int,INIT(ordre_m,UNDEF));
DEFV(Int,INIT(ordre_m_de_depart,ORDRE_m_DE_DEPART));
DEFV(Int,INIT(ordre_m_d_arrivee,ORDRE_m_D_ARRIVEE));
/* Definition de l'ordre 'm'. */
DEFV(Logical,INIT(generer_l,GENERER_l));
/* Cet indicateur indique si l'on genere 'l' ('VRAI') ou pas ('FAUX'). */
DEFV(Int,INIT(ordre_l,UNDEF));
DEFV(Int,INIT(ordre_l_de_depart,ORDRE_l_DE_DEPART));
DEFV(Int,INIT(ordre_l_d_arrivee,ORDRE_l_D_ARRIVEE));
/* Definition de l'ordre 'l'. */
/*..............................................................................................................................*/
GET_ARGUMENTS_(nombre_d_arguments
,BLOC(GET_ARGUMENT_L("n=",generer_n);
GET_ARGUMENT_I("nD=",ordre_n_de_depart);
GET_ARGUMENT_I("nA=",ordre_n_d_arrivee);
GET_ARGUMENT_L("m=",generer_m);
GET_ARGUMENT_I("mD=",ordre_m_de_depart);
GET_ARGUMENT_I("mA=",ordre_m_d_arrivee);
GET_ARGUMENT_L("l=",generer_l);
GET_ARGUMENT_I("lD=",ordre_l_de_depart);
GET_ARGUMENT_I("lA=",ordre_l_d_arrivee);
)
);
DoQu(ordre_n,ordre_n_de_depart,ordre_n_d_arrivee,I)
Bblock
DoQu(ordre_m,ordre_m_de_depart,ordre_m_d_arrivee,I)
Bblock
DoQu(ordre_l,ordre_l_de_depart,ordre_l_d_arrivee,I)
Bblock
Test(IFET(IFLT(ordre_l,ordre_n)
,IFLE(ordre_m,ordre_l)
)
)
Bblock
VALIDATION_DES_ORDRES_lmn;
/* Validation des demandes... */
PRINT_ORDRE(ordre_n,generer_n);
PRINT_ORDRE(ordre_m,generer_m);
PRINT_ORDRE(ordre_l,generer_l);
Eblock
ATes
Bblock
PRINT_ORDRE(FAUX_ORDRE,generer_n);
PRINT_ORDRE(FAUX_ORDRE,generer_m);
PRINT_ORDRE(FAUX_ORDRE,generer_l);
Eblock
ETes
Eblock
EDoQ
Eblock
EDoQ
Eblock
EDoQ
RETU_Commande;
Eblock
ECommande