Tuto : programmez en BASIC des années 80s

Branchements, tests et boucles

Les branchements vont vous permettre d’interrompre le déroulement ligne à ligne du programme en sautant à une ligne spécifiée.

Les sauts

L’instruction GOTO effectue un saut inconditionnel à la ligne spécifiée en paramètre. Par exemple :

A la ligne 20, l’instruction GOTO 10 va commander à l’interpréteur de poursuivre l’exécution à la ligne 10. Ainsi, la chaîne de caractère "BONJOUR" sera affichée à l’infini (la saisie de CTRL-C interrompe le programme).

Les tests

Il est très souvent nécessaire d’effectuer des sauts conditionnels ou d’exécuter une suite d’instructions à la condition qu’une expression logique soit vraie. L’instruction IF est faite pour cela :

IF <expr_logique> THEN <suite d'instructions>
La suite d'instruction figurant après le mot-clé THEN est exécutée si l'expression logique est vraie.

IF <expr_logique> THEN ligne
Il s'agit d'une variante ; si exp_logique est vraie, le programme saute à la ligne spécifiée après le THEN

Voir un exemple :

Les boucles FOR

La commande FOR...NEXT permet d’exécuter une boucle en itérant sur une variable réelle ou entière. Le plus simple est de partir d’un exemple.

La boucle FOR commence à la ligne 20 et se termine à la ligne 40, avec l’instruction NEXT. Le fonctionnement est le suivant :

  • Ligne 20, la variable I est initialisée à 1
  • Puis I est comparée à la valeur située après le mot-clé TO, soit 10 dans notre exemple.
  • Comme I est inférieur ou égal à 10, l’interpréteur poursuit l’exécution à la ligne 30 puis à la ligne 40
  • La ligne 40 contient l’instruction NEXT I qui termine la boucle. I est incrémenté de 1 puis l’interpréteur revient à la ligne 20.
  • Tant que I est inférieure ou égale à 10, la boucle continue à être exécutée.
  • Dès que I dépasse 10, le programme sort de la boucle et passe à la ligne située juste après le NEXT (la ligne 50).

La syntaxe générale est :

FOR var = val_init TO val_limite STEP pas
...

...
NEXT var


La variable var est initialisée à val_init puis incrémentée de pas à la ligne contenant l'instruction NEXT var, jusqu'à ce qu'elle soit supérieure ou égale à val_limite (les numéros de ligne ne sont pas représentés ici).

Il est possible de faire décroître la variable var, si val_limite < val_init et pas est négatif.

L’équivalent en C de la bouche FOR...NEXT est :

for( var = var_int ; var <= val_limite ; var += pas) {
...
...
}

Les sous-routines

Il n’y a pas de fonction ni de procédure en BASIC. Le langage comprend une notion de sous-routines (subroutine en anglais) permettent d’appeler une section du programme puis de reprendre l’exécution juste après l’instruction d’appel, à la fin de la sous-routine. L’appel se fait grâce à l’instruction GOSUB, en précisant le numéro de ligne où se trouve la sous-routine. La fin de la sous-routine est définie par l’instruction RETURN. Le plus simple est de voir un exemple :

La sous-routine débute à la ligne 100 et se termine à la ligne 130 avec l’instruction RETURN. Elle affiche un texte, attend une saisie par l’opérateur puis efface l’écran. Elle est appelée plusieurs fois, aux lignes 20, 40, 60 et 80, grâce à l’instruction GOSUB.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *