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é.

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

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.