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

Un livre de Wikilivres.

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