home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 21
/
CD_ASCQ_21_040595.iso
/
dos
/
fr
/
mcshow10.exe
/
DOC
/
MC-SHOW
/
TXT
/
MCDOCL04.TXT
< prev
next >
Wrap
Text File
|
1994-09-11
|
6KB
|
202 lines
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...