Simscript III/Dictionnaire des instructions/DEFINE ... ARRAYS

L’énoncé define ... arrays permet de définir le type et la dimension des tableaux globaux (dans le preamble) ou locaux (dans une routine).

Syntaxe :



Tous les tableaux sont automatiquement initialisés à zéro (ou champ nul pour les types text et alpha). Une variable locale peut être déclarée saved ou recursive. La première fois qu’un sous-programme est appelé, les variables locales saved ou recursive ont lavaleur zéro. Une variable locale recursive (qui est la valeur implicite) a la valeur zéro à chaque appel du sous-programme. Une variable locale saved conserve la valeur qu’elle avait lors du dernier appel au sous-programme. preamble

preamble

    begin class Classe
      
        the class has an attribut_Classe
        define attribut_Classe as an integer variable;

    end ‘‘ class Classe

    define GLshort                to mean Signed integer2

end ‘‘ preamble

main
    define va   as an Alpha            variable;  ‘‘ Un octet, un entier non-signé de 8 bits pour 
                                                  ‘‘ stocker  un caractère ASCII
    define vi2  as an Integer2         variable;  ‘‘ Un entier non-signé de 16 bits (0 à 65535)
    define vsi2 as a  Signed integer2  variable;  ‘‘ Un entier signé de 16 bits (-32768 à +32767)
    define vi   as an Integer          variable;  ‘‘ Un entier signé d'au moins 32 bits
    define vr   as a  Real             variable;  ‘‘ Un nombre point-flottant de 32 bits
    define vd   as a  Double           variable;  ‘‘ Un nombre point-flottant de 64 bits
    define vp   as a  pointer          variable;  ‘‘ Une adresse de 32 bits
    define vs   as a  subprogram       variable;  ‘‘ Une adresse d'un sous-programme de 32 bits
    define vt   as a  text             variable;  ‘‘ Une adresse d'une chaîne de caractères
    define vc   as a  Classe reference variable;  ‘‘ Une variable de référence à une classe :
                                                  ‘‘ adresse d'un objet
    let va	    = "a";                        ‘‘ Un octet, un entier non-signé de 8 bits pour 
                                                  ‘‘ stocker un caractère ASCII
    let vi2  	= 65535;                          ‘‘ Un entier non-signé de 16 bits (0 à 65535)
    let vsi2 	= -32768;                         ‘‘ Un entier signé de 16 bits (-32768 à +32767)
    let vi   	= inf.c;                          ‘‘ Un entier signé d'au moins 32 bits
    let vr   	= 1234567.0;                      ‘‘ Un nombre point-flottant de 32 bits
    let vd   	= rinf.c;                         ‘‘ Un nombre point-flottant de 64 bits
    let vp   	= 3456;                           ‘‘ Une adresse de 32 bits
    let vs   	= 'subprogram';                   ‘‘ Une adresse d'un sous-programme de 32 bits
    let vt   	= "Une chaîne de texte";          ‘‘ Une adresse d'une chaîne de caractères
    create vc;	                                  ‘‘ Création d'un objet : instance d'une classe

    write  va, vi2, vsi2, vi, vr, vd, vp, vs,  vt, vc 
           as  B 10, "va    = " , A 1, /,
               B 10, "vi2   = " , I *, /, 
               B 10, "vsi2  = " , I *, /,
               B 10, "vi     = " , I 10, /,
               B 10, "vr     = " , D ( 10, 2), /, 
               B 10, "vd    = " , E ( 10, 2), /,
               B 10, "vp    = " , C 8, /, 
               B 10, "vs    = " , C 8, /,
               B 10, "vd    = " , T *, /,
               B 10, "vc    = " , C 8, /;

    read as / using 5;

end ‘‘ main

routine subprogram
    define i = 5 as a  constant;

end ‘‘ subprogram