L’utilisation de variables

Mardi 31 janvier 2006, par Pierre Couillard // NQC : Not Quite C

Les variables présentent un attrait important de tout langage de programmation. Les variables sont des emplacements de mémoire dans lesquels nous pouvons stocker une valeur. Nous pouvons employer cette valeur à des endroits différents et nous pouvons les changer.

Déplacement en spirale

Supposez que nous voulions faire un programme qui indique à notre robot de se déplacer en spirale. Cela peut être réalisé en faisant varier la durée d’attente pour chaque mouvement suivant droit. En d’autres mots, nous voulons augmenter chaque fois la valeur de MOVE_TIME (voir l’article suivant). Mais comment faire pour réaliser cela ? MOVE_TIME est une constante et les constantes ne peuvent pas être changées. Nous avons besoin d’une variable pour cela. Les variables peuvent facilement être définies dans NQC. Vous pouvez en avoir 32 et vous pouvez donner à chacune d’entre elles un nom différent. Voici le programme en spirale :

Les lignes intéressantes sont indiquées avec les commentaires. D’abord, nous définissons une variable en tapant le mot-clé int suivi par un nom que nous choisissons. (Normalement, nous employons des lettres minuscules pour des noms de variables et des lettres majuscules pour des constantes, mais ce n’est pas nécessaire.) Le nom doit commencer par une lettre, mais peut contenir des chiffres et le signe souligné (’_’). On ne permet aucun autre symbole. Le mot étrange int est l’abréviation pour entier (en anglais integer). Seuls des nombres entiers peuvent y être stockés.

À la deuxième ligne intéressante, nous assignons la valeur 20 à la variable. À partir de ce moment, chaque fois que vous employez la variable, elle vaut 20. Par la suite,on trouve la boucle de répétition dans laquelle nous employons la variable pour indiquer le temps de latence et, à la fin de la boucle nous incrémentons la valeur de la variable de 5. Donc la première fois, le robot attend 20 cycles, la deuxième fois 25, la troisième fois 30, etc. En plus de l’addition de valeurs à une variable, nous pouvons aussi multiplier une variable avec un nombre en employant *=, pour soustraire -= et pour diviser /=. (Notez que pour la division le résultat est arrondi au plus proche entier.) Vous pouvez aussi ajouter une variable à une autre et noter des expressions plus compliquées. Voici quelques exemples :

Notez sur les deux premières lignes que nous pouvons définir des variables multiples à une ligne. Nous aurions pu combiner trois d’entre elles sur une ligne.

Nombres Aléatoires

Dans tous les programmes ci-dessus, nous avons défini exactement ce que l’on a supposé que le robot ferait. Mais les choses peuvent devenir beaucoup plus intéressantes quand le robot va faire des choses que nous ne savons pas. SUpposons que nous voulions provoquer quelques incohérences dans les mouvements de notre robot. Dans NQC, vous pouvez créer des nombres aléatoires. Le programme suivant emploie cela pour laisser au robot les commandes d’une façon aléatoire. Il roule constamment en avant pour un temps aléatoire et fait ensuite un virage aléatoire.

Le programme définit deux variables et leur assigne ensuite des nombres aléatoires. Random(60) donne un nombre aléatoire entre 0 et 60 (il peut aussi être 0 ou 60). Chaque fois les nombres seront différents. (Notez que nous pourrions éviter l’utilisation des variables en écrivant par exemple, Wait (Random(60)).) Vous voyez aussi ici l’utilisation d’une boucle. Plutôt que d’employer la déclaration de répétition (repeat), nous avons écrit while(vrai). La déclaration « tant que » répète les déclarations au-dessous tant que la condition entre les parenthèses est vraie (article précédent). Le mot réservé true est toujours vrai, donc les déclarations entre les parenthèses sont répétées pour toujours, autant que nous voulons.

Résumé

Dans cet article, vous avez appris l’utilisation de variables. Les variables sont très utiles, mais, à cause des restrictions des robots, elles sont un peu limitées. Vous pouvez en définir seulement 32 et elles peuvent stocker seulement des entiers . Mais, pour la plupart des tâches du robot c’est suffisant. Vous avez aussi appris comment créer des nombres aléatoires, tel que vous pouvez donner un comportement imprévisible au robot. Pour terminer ; nous avons vu l’utilisation de la déclaration while pour faire une boucle infinie.