B-Basic.net

Innovation Informatique France

Les liaisons

B-Basic intégre un grand nombre de classes de fonctions, nous ne verrons ici que les fonctions de bases, utiles à la réalisation de petits tests.

    GROUPE        Appel direct
    TERMINE       Fin de bloc
    LIAISON       Déclaration et exécution liaison
    CLASSE        Déclarer des liaisons nommées
    PROCEDURE     Exécuter les fonctions classe
    EVENEMENT     Exécution conditionnelle


1 - La classe GROUPE

Un logiciel B-Basic est un ensemble de groupes de blocs d'instructions. La classe GROUPE permet d'exécuter les blocs par un appel de type ....

    GROUPE(A,20,1)                   Exécute le bloc 1 du groupe 20
    GROUPE(A,20,1,v2,123.8,V1,..)    Exécution et transmission de valeurs
    GROUPE(B,1)                      Exécute le bloc 1 du groupe actuel
    GROUPE(C,cond,V1,V2,20,1,...)    Exécute le bloc 1 du groupe 20 sur condition
    GROUPE(D,cond,V1,V2,1)           Exécute le bloc 1 du groupe actuel sur condition

Les conditions des fonctions C et D

    0    Si V1 = V2
    1    Si V1 <> V2
    2    Si V1 < V2
    3    Si V1 <= V2
    4    Si V1 > V2
    5    Si V1 >= V2

Lors de l'appel, la variable locale V0 est utilisée comme variable identifiant le bloc a exécuter. Il est possible de transmetre des valeurs dans les variables locales du groupe de V1 à V9.

On déclare un bloc d'instruction sous le format suivant...

    BLOC(2)
        ..
        ..
        ..
    TERMINE(B)

    BLOC(2,17,5,6,...)
        ..
        ..
        ..
    TERMINE(B)

Cette méthode permet de créer des événements issus d'un résultat numérique. Un code B-basic n'est donc pas statique et peut avoir une réactivité permettant toutes sortes de simplifications au niveau du code.

 

2 - La classe TERMINE

La classe TERMINE est une classe logique permettant de clore un bloc d'instruction.

Cette classe dispose de 6 fonctions.

    TERMINE(A,groupe,ret0,ret1,ret3 ... ret9)    Exécution et transmission
    TERMINE(B)                                   Fin de bloc
    TERMINE(C,V1)                                Fin sur état de variable
    TERMINE(D,0,V1,V2)                           Fin sur condition
    TERMINE(E,V1,texte)                          Fin sur état plus message
    TERMINE(F,0,V1,V2,Texte)                     Fin sur condition plus message

Instruction TERMINE(B)

Ferme un bloc d'instruction et reprend l'exécution a la ligne de bloc d'appel.

Instruction TERMINE(A, groupe, .... )

Cette fonction peut transmettre des variables ou valeurs numériques dans les variables locales du groupe d'appel, mais également l'exécution de bloc avant retour sur le groupe d'appel.

Instruction TERMINE(C,V1)

Ferme le bloc si la variable ou valeur transmise est égale a 0.

Instruction TERMINE(D,0,V1,V2)

Ferme le bloc si une condition est remplie.

    Condition    0    Si égal
                 1    Si différent
                 2    Si inférieur
                 3    Si inférieur ou égal
                 4    Si supérieur
                 5    Si supérieur ou égal

Instruction TERMINE(E,V1,texte)

Ferme le bloc si la variable ou valeur transmise est égale a 0  et affiche un message.

Instruction TERMINE(F,0,V1,V2,Texte)

Ferme le bloc si une condition est remplie, et affiche un message.

    Condition    0    Si égal
                 1    Si différent
                 2    Si inférieur
                 3    Si inférieur ou égal
                 4    Si supérieur
                 5    Si supérieur ou égal

On peut écrire ..

    TERMINE(A,0)                  Fin de bloc et retour
    TERMINE(B)                    Fin de bloc
    TERMINE(A,20,1)               Fin de bloc et exécute le bloc 1 du groupe 20
    TERMINE(C,v1)                 Retour si V1 est égal a 0
    TERMINE(D,0,V1,V2)            Retour si v1 (condition 0) v2
    TERMINE(E,V1,Message)         Retour si V1 est égal a 0 et affiche Message
    TERMINE(F,0,V1,V2,Message)    Retour si V1 (condition 0) V2 et affiche Message

Ou encore

    TERMINE(A,20,1,v3,v4, ...)        Fin de bloc et exécution avec paramètres
    TERMINE(A,0,v1,v2,v3,v4,...)    Fin de bloc avec paramètres

Le premier chiffre concerne le groupe, les chiffres suivants initialisent les variables locales du groupe.

 

3 - La classe LIAISON

Cette classe est un dérivé de la classe GROUPE ... Cette classe permet de définir en cour d'exécution des appels programmés associant les variables locales des blocs. Une liaison peut être déclarée active ou inactive.

Exemple

    1    LIAISON(B,0,20,1)
    2    LIAISON(C,0,1,1)
    3    V1$(X,test)
    4    LIAISON(D,0)

Explication du code

    Ligne 1        Mémoire de liaison No 0 connecté au bloc 1 du groupe 20
    Ligne 2        Association de la variable de texte V1$
    Ligne 3        On enregistre Test dans V1$
    Ligne 4        Exécution de la liaison et transferts des associations

 


4 - La classe CLASSE

La classe CLASSE permet de mettre en œuvre une émulation de classes adoptants le format B-basic. Les fonctions que vous aurrez déclarés peuvent ensuite êtres exécutées par la fonction PROCEDURE.

Exemple

    MA_CLASSE(A ....

Créer une classe

    1    CLASSE(B,MON_TEST,V1)
    2    CLASSE(C,MON_TEST,A,20,1,V1)
    3    CLASSE(D,MON_TEST,A,1,V1)
    4    CLASSE(D,MON_TEST,A,0,V1)

En n'importe qu'elle partie du logiciel

    5    PROCEDURE(MON_TEST,A,"Tester la classe",123.3)

Explication du code

    Ligne 1        Déclaration de la classe MON_TEST
    Ligne 2        Déclaration de la fonction A de la classe liées a un bloc
    Ligne 3        Le premier paramètre sera un texte
    Ligne 4        Le second paramètre sera une valeur
    Ligne 5        Utilisation de la classe MON_TEST par la fonction PROCEDURE

 


5 - La classe PROCEDURE

La classe PROCEDURE permet d'exploiter l'émulation de classes mis en œuvre par la classe CLASSE ...

    PROCEDURE(CLASSE,A-Z,var,var,var ...)

On peut donc observer le schéma classique ... Nom de classe, lettre, puis informations. On peut associer a chaque fonction des variables numériques ou de textes dans n'importe qu'el ordre.

    PROCEDURE(CLASSE,A,"texte",123,var n,var t$ ...)

Lors de l'exécution de la fonction les variables sont distribuées dans les variables locales du groupe de V1 a V9 pour les variables numériques et de V1$ a V9$ pour les variables de texte.

Particularité : Comme pour la classe RESSOURCE les chaines de caractères doivent êtres placées entre guillemet. Il préférable de déclarer vos appels au début du programme afin de ne pas générer d'erreurs par un appel inexistant bien que l'on puisse déroger à cette règle

 

6 - La classe EVENEMENT

Cette classe s'avérera pratique en impliquant une notion conditionnelle. Un appel de bloc peut être déclenché par un groupe de conditions. Cette classe utilise les variables locales du groupe de V0 a V9 pour les variables numériques et de V0$ a v9$ pour les variables textes.

Bloc initialisation en n'importe quelle partie du groupe.

    EVENEMENT(B,0,20,1)           Mémoire 0 lié au groupe 20 bloc 1
    EVENEMENT(C,0,0,1,3,20)       Insérer un événement numérique
    EVENEMENT(D,0,1,1,0,texte)    Insérer un événement texte

Les conditions ET et OU sont font dans l'ordre littéral.

La fonction principale s'utilise en suite dans le code comme suis.

    BLOC(1)
        ....
        ....
        EVENEMENT(G,No evenement,résultat)
        ....
        ....
    TERMINE(A,0)

Les événements peuvent êtres modifiés en permanence en cours de programme. Dans le cas ou l'événement est vrai ... la liaison au bloc est effectuée. En retour la variable résultat recevra 0 pour Non et 1 pour Oui. Chaque groupe dispose de 32 mémoires exclusives.

 

Imprimer cette page