Les branchements se r‚vŠlent trŠs utiles pour pouvoir se "brancher" sur diff‚rentes parties du fichier source MCT suivant les r‚actions de l'utilisateur, dans une pr‚sentation ou une application interactive, ou la structure du programme ou le contenu des variables. Pour une meilleure compr‚hension de ce paragraphe, assurez-vous d'avoir consult‚ les paragraphes "Instruction principale", "Variables" et "Boucles" de ce chapitre. Les branchements sous MC-SHOW utilisent quatre instructions trŠs simples : :LABEL :GOTO :GOSUB :RETURN L'INSTRUCTION :LABEL Elle sert … d‚signer un endroit pr‚cis du programme. C'est une ‚tiquette, un index, un label, bref un truc du genre. C'est aux labels que vont se connecter les instructions de branchements :GOTO et :GOSUB puisque le langage de MC-SHOW ne contient pas de num‚ros de lignes... La longueur maximale d'un label est, comme tout paramŠtre de MC-SHOW, de 80 caractŠres maximum. L'INSTRUCTION :GOTO Elle permet donc de se connecter … un endroit quelconque du programme identifi‚par un label. Exemple : :CLSTEXT :GOTOXY 1,1 :PRINT Affichage 1 :GOTO aff2 :LABEL aff3 :GOTOXY 1,3 :PRINT Affichage 3 :GOTO FIN :LABEL aff2 :GOTOXY 1,2 :PRINT Affichage 2 :GOTO aff3 :LABEL fin :GOTOXY 1,5 :PRINT C'est fini, appuyez sur une touche... :TOUCHKEY :END Ce programme, d'une rare complexit‚ rare qu'on voit pas souvent, affiche … l'‚cran : Affichage 1 Affichage 2 Affichage 3 C'est fini, appuyez sur une touche... AprŠs l'affichage de "Affichage 1", le branchement se fait sur le label "aff2", puis sur "aff3" puis sur "fin". Le chapitre "Trucs et astuces" contient quelques exemples utilisant des :LABEL et des :GOTO. Si vous voulez y acc‚der maintenant, cliquer ici. Ces instructions sont trŠs utiles pour des saisies, des qcm ou des branchements suivant des ‚tats de variables. Exemple : ... :EVAL i1=i2 :GOTO l1 :GOTO l2 ... Si i1=i2, on se branche sur l1 sinon sur l2. Si vous voulez contr“ler des saisies, ces deux instructions peuvent aussi rendre service, comme le montre cet exemple : :AFFECT i2,1 :AFFECT i3,2 :LABEL l1 :CLSTEXT :GOTOXY 1,1 :PRINT Tapez 1 ou 2 : :GOTOXY 16,1 :READECHO i1 ' Lecture d'une valeur num‚rique entiŠre avec affichage … l'‚cran :EVAL i1=i2 :GOTO suite :EVAL i1=i3 :GOTO suite :BEEP ' Fait entendre un beep des plus m‚lodieux :GOTO l1 :LABEL suite :GOTOXY 1,3 Tant que l'utilisateur n'appuie pas sur 1 ou 2, le programme boucle... LES INSTRUCTIONS :GOSUB et:RETURN Ces instructions sont aussi des instructions de branchement mais sont plus puissantes que :GOTO. Une instruction :GOTO perd la ligne d'o— l'on fait le branchement, les instructions :GOSUB et :RETURN permettent de revenir … la ligne de branchement une fois une tƒche accomplie. Ceci est trŠs pratique lorsque l'on veut accomplir plusieurs fois la mˆme fonction, cela ‚vite de l'‚crire chaque fois que l'on en a besoin. Cela permet en outre de fabriquer des macros appelables par un simple :GOSUB. Exemple : :CLSTEXT :GOTOXY 1,1 :PRINT Affichage 1... :GOSUB strike_key :GOTOXY 1,1 :PRINT Affichage 2... :GOSUB strike_key :GOTOXY 1,1 :PRINT Affichage 3... :GOTO fin :LABEL strike_key :GOTOXY 1,25 :PRINT Appuyez sur une touche... :TOUCHKEY :CLSTEXT :RETURN :LABEL fin :GOTOXY 1,25 :PRINT La r‚cr‚ est termin‚e, appuyez sur une touche... :TOUCHKEY :END Si vous d‚sirez mettre vos sous-programmes en fin de fichier, rien ne vous interdit d'‚crire : :CLSTEXT :GOTOXY 1,1 :PRINT Affichage 1... :GOSUB strike_key :GOTOXY 1,1 :PRINT Affichage 2... :GOSUB strike_key :GOTOXY 1,1 :PRINT Affichage 3... :GOTOXY 1,25 :PRINT La r‚cr‚ est termin‚e, appuyez sur une touche... :TOUCHKEY :END :LABEL strike_key :GOTOXY 1,25 :PRINT Appuyez sur une touche... :TOUCHKEY :CLSTEXT :RETURN De plus, tout comme les boucles, MC-SHOW autorise dix :GOSUB :RETURN imbriqu‚es. Autrement dit, un sous programme peut appeler un autre sous- progamme... Attention toutefois ! Ce n'est pas parce que vous disposez d'outils, se pr‚sentant sous la forme d'instructions, de variables et de structures, qu'il faut les utiliser … tort et … travers. En effet, pensez … bien respecter le cadre d'utilisation de ces outils et … garder une certaine logique dans vos programmes. Je citerai en exemple ce que l'on appelle, dans le jargon des pros, la "r‚f‚rence crois‚e". En des termes plus conviviaux le fait que le sous programme 1 apelle le sous programme 2 qui lui appelle le sous programme 1 ! Ce qui conduit … imbriquer appel sur appel et ce qui plante le systŠme. Sauf que MC-SHOW arrˆte l'application et vous avertit que le nombre d'imbrications de :GOSUB :RETURN est trop important...