u4.34.02 Opérateur DEFI_LIST_ENTI#

Syntaxe#

Détail de la syntaxe
listis = DEFI_LIST_ENTI(
    ◇ OPERATION = / "DEFI" (par défaut),
                  / "NUME_ORDRE",
    # Si: equal_to("OPERATION", 'DEFI')
        ◆ / VALE = int,
          / DEBUT = int,
        ◇ / INTERVALLE = _F(
               ◆ JUSQU_A = int,
               ◆ / NOMBRE = int,
                 / PAS = int,
            ),
    # Si: equal_to("OPERATION", 'NUME_ORDRE')
        ◆ RESULTAT = resultat,
        ◆ PARAMETRE = text,
        ◆ INTERVALLE = _F(
             ◆ VALE = float,
          ),
    ◇ INFO = / 1 (par défaut),
             / 2,
    ◇ TITRE = text,
)


◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles

Opérandes#

Définition d’une liste d’entiers#

Opérande VALE#

◊ VALE= lis

Liste des entiers qui formeront la structure de données listis résultat, on peut fournir n’importe quelle liste Python.

Opérande DEBUT#

♦    DEBUT =

deb: premier entier de la liste à construire.

Mot clé INTERVALLE#

◊ INTERVALLE

Mot clé facteur dont chaque occurrence permet de définir un intervalle à pas constant.

Opérande JUSQU_A#

♦ JUSQU_A = if

if est l’extrémité entière de l’intervalle à découper avec un pas constant.

Opérande PAS#

♦ / PAS = ipas

Pas de découpage de l’intervalle.

Opérande NOMBRE#

/ NOMBRE = in

Nombre de pas que l’on veut dans l’intervalle.

Extraction de numéros d’ordre#

Cette opération permet de récupérer dans une structure de données resultat (evol_noli issue de STAT/DYNA_NON_LINE par exemple) les numéros d’ordre correspondant à certains critères.

La liste des numéros d’ordre ainsi obtenue peut alors être utilisée dans toutes les commandes ayant le mot clé LIST_ORDRE.

Pour l’instant, le seul critère programmé est l’extraction d’un paramètre dans un intervalle donné.

Opérande PARAMETRE#

Nom du paramètre de la structure de données resultat dont on veut extraire la valeur.

Mot-clé facteurINTERVALLE#

On définit autant d’occurrences du mot-clé facteur INTERVALLEque l’on souhaite d’intervalles de recherche. La recherche est faite sur l’union de ces intervalles.

VALE= (val1, val2)

Définition desbornes de chaque intervalle auquel dont appartenir le paramètre à extraire (bornes comprises).

Opérande INFO#

◊ INFO = i

Indique le niveau d’impression des résultats de l’opérateur :

1 : aucune impression,

2 : impression de la liste d’entiers créée.

Opérande TITRE#

◊ TITRE = titre

Titre attaché au concept produit par cet opérateur [U4.03.01].

Remarques#

  • on vérifie que la liste est croissante,

  • attention: la structure de données de type listis ne peut pas être utilisée derrière un mot clé attendant une l_I (suite d’entiers écrits entre parenthèses).

Exemples#

Cas OPERATION = “DEFI”#

Pour construire la liste d’entiers à pas constant :

../../../../_images/1000027800001DF9000002E553896CE817064EF5.svg
listi = DEFI_LIST_ENTI        (    DEBUT =     1,
INTERVALLE =    (_F    (    JUSQU_A =        16,
PAS =            3    ),),
)

Pour construire la liste d’entiers avec deux valeurs différentes du pas :

../../../../_images/100002BA00001C6C000002FF3DD7A30568436B4B.svg
listi = DEFI_LIST_ENTI        (    DEBUT =    1,
INTERVALLE = (_F    (    JUSQU_A =        5,
PAS =            1,    ),
_F    (    JUSQU_A =        15,
PAS =            5,    ),)
)

ou

listi = DEFI_LIST_ENTI        (    DEBUT =    1,
INTERVALLE = (_F    (    JUSQU_A =        5,
NOMBRE =        4,    ),
_F    (    JUSQU_A =        15,
NOMBRE =        2,    ),),
)

ou, à partir de n’importe objet liste Python:

listi = DEFI_LIST_ENTI    (    VALE = range(10)    ,)

Cas OPERATION = “NUME_ORDRE”#

lnuor = DEFI_LIST_ENTI(OPERATION=”NUME_ORDRE”,

RESULTAT=DEPLTRAN,

PARAMETRE=”INST”,

INTERVALLE=(

_F(VALE=(1.36, 1.37)),

_F(VALE=(1.45, 1.46)),

),)

lnuor contiendra la liste des numéros d’ordres dont la valeur de l’instant (paramètre INST) est dans les intervalles donnés.