Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BBC BASIC

GOSUB

DESCRIPTION.


L'instruction GOSUB provoquera un saut inconditionnel avec retour vers une ancre.


Le mot clé GOSUB est aussi utilisé dans les instructions combinées  ON ... GOSUB pour un saut inconditionnel selon une valeur.




SYNTAXE.


GOSUB ancrea




REMARQUES.


ancre doit être un emplacement du script identifiable par un numéro de ligne ou par une étiquette, label, existante et valide.


Si ancre est un numéro de ligne, indiquée par valeur retournée, la valeur calculée doit se trouver entre parenthèses. 


Après le saut, et dès qu'il rencontrera une instruction RETURN, le programme reprendra sa progression à l'instruction suivant l'instruction GOSUB.


Si un test conditionnel introduit par IF, l'instruction THEN peut être omise avant l'instruction GOSUB, mais l'instruction ELSE doit bien être présente en cas d'alternative prévue.


En programmation moderne structurée, donc le langage BBC BAIS for SDL 2.0 fait partie, l'instruction GOSUB pour orienter l'exécution du programme vers une sous routine, doit être remplacée par l'exécution d'une procédure personnalisée définie dans un bloc DEF PROC / ENDPROC.


L'instruction GOSUB, très utile et fortement employée dans les débuts de la programmation pour tous, ne devrait plus jamais être présente dans un script moderne réalisé à l'aide d'un langage de programmation structurelle. L'instruction GOSUB est maintenue dans le langage BBC BASIC for SDL 2.0 pour la rétrocompatibilité des anciens script, que, dans la mesure du possible, on s'efforcera de moderniser le plus possible.


Bien que le BBC BASIC for SDL 2.0 autorise toujours la numérotation des lignes d'un script, ou leur étiquetage à l'aide d'un label, pour identifier des ancres comme cibles pour les instructions GOTO , GOSUB et RESTORE, l'utilisation des instructions  GOTO et GOSUB ne devrait plus être utilisée dans les programmes modernes qui fournissent des instructions pour une programmation dite structurée. Se maintien est surtout dû à un soucis de rétrocompatibilité avec d'anciens scripts.


Rappel : une étiquette, ou label, doit être placée entre parenthèses : ( lab_Nom ) et figurer en premier sur une ligne de programme. Les étiquettes et les variables partageant le même espace de noms ; il faudra être très vigilant à ne pas utiliser un label pouvant être confondu avec l'identifiant d'une variable. Les labels sont de portée globale à l'ensemble du programme et ne peuvent être utilisés dans les modules importés par les instructions INSTALL et CALL. De même que pour la numérotation des lignes, Il est conseillé de les utiliser uniquement à des fins de débogage ou pour la rétrocompatibilité d'anciens programmes.


Voir l'instruction GOTO pour un saut inconditionnel avec retour.

Voir l'instruction PROC pour définir une procédure personnalisée.




EXEMPLE.


INPUT "Quel est votre age " ; kage 

IF kage < 18 GOSUB (lab_mineur) ELSE GOSUB (lab_majeur)

PRINT "Au revoir."

END 


(lab_mineur)

PRINT "Vous etes mineur."

RETURN 


(lab_majeur)

PRINT "Vous etes majeur."

RETURN

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour

TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER

avec un exemple de résolution à télécharger pour vous inspirer.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse