Chapitre 4 — Mémoriser les données dans des variables
Vous savez maintenant utiliser
BBC BASIC pour afficher à l'écran et comme calculatrice.
« Oh ! là là ! » pensez-vous, au moins ma calculatrice, elle,
a une mémoire pour y stocker un résultat pour le réutiliser plus tard. Eh bien, le
BASIC aussi.
En fait, il a beaucoup de zones de mémoire utilisables pour stocker des résultats,
et les informations peuvent être stockées dans différents formats.
Cette partie introduit le concept de variables : des emplacements de mémoire dans l'ordinateur,
qui peuvent être utilisés par un programme.
Nous avons besoin d'un petit programme pour faire cette démonstration. Si vous avez quelque chose
dans l'éditeur, débarrassez-vous en en pressant la touche
New
(icône d'une page vierge). La machine vous préviendra si vous n'avez pas sauvegardé votre
chef-d'œuvre précédent, aussi sauvegardez-le ou supprimez-le, comme vous voudrez.
Maintenant, tapez :
REM Aire d'un cercle
Rayon=5
Aire=3.14159*Rayon*Rayon
PRINT "La surface de votre cercle est ";Aire
END
Lancez le programme avec
Run,
juste pour contrôler qu'il fonctionne. Sauvegardez-le parce que nous en aurons beaucoup besoin
plus tard. Tous ceux qui sont allés à l'école un jour doivent comprendre les principes utilisés ici :
c'est un peu comme de l'algèbre. Si on change la deuxième ligne en mettant différentes valeurs de
Rayon et qu'on relance le programme, il vous donnera un résultat
différent à chaque fois. Que se passe-t-il ? Quand le programme tourne, il arrive à la deuxième
ligne et voit que nous essayons d'affecter la valeur 5 à « quelque chose » qui
s'appelle Rayon. Le
BASIC conserve une liste
d'emplacements de mémoire et il la recrée chaque fois qu'un programme est lancé. Comme c'est ici
la première ligne active, il n'a pas d'emplacement mémoire qui porte le nom de Rayon, aussi
il en fabrique gentiment un pour nous. Après avoir fait cela, il écrit la valeur 5 dans le nouvel
emplacement.
Sur la ligne suivante, il se passe quelque chose de similaire concernant la valeur de Aire.
L'affectation, cependant, est une expression, aussi a-t-il besoin de faire d'abord le calcul.
Quand le
BASIC en arrive à la partie
qui contient Rayon, il va dans sa liste de variables et il y trouve la valeur.
D'après la ligne précédente, cette valeur est 5, aussi lui substitue-t-il la valeur 5
dans l'expression. Quand cela est fini, le résultat est affecté à la variable Aire qui vient
d'être créée. La quatrième ligne fait récupérer la valeur au
BASIC qui l'affiche
après avoir écrit un habillage de texte pour rendre tout plus clair.
Si vous avez ouvert l'un des programmes qui est livré avec
BBC BASIC, vous y aurez vu de nombreuses lignes comme
celles qui précèdent, aussi ces « choses » qu'on appelle des variables
doivent être très importantes.
Nous allons nous y appesantir un moment. Les variables par défaut sont des nombres à virgule flottante,
c'est-à-dire avec des décimales, mais il y en a d'autres.
BBC BASIC accepte quatre types différents de variables.
Elles sont définies par le dernier caractère de leur nom :
| Type | Description | Exemples |
Limites | Caractère |
| Virgule flottante | Nombres décimaux |
3.142, 0.001,
1E10-2 |
–5.9E–39 jusqu'à
3.4E38 | # ou aucun |
| Entier | Nombres entiers | 32000, 4, –66 |
–2147483648 jusqu'à +2147483647 | % |
| Octet | Nombres entiers | 0, 128, 255 |
0 jusqu'à 255 | & |
| Chaîne | Texte | "BBC BASIC", "Bonjour" |
N'importe quel nombre de caractères de 0 à 65535 | $ |
Il est possible de changer la résolution de nombres à virgule flottante pour obtenir une
plus grande précision – voyez les
fichiers d'aide pour des détails complémentaires.
Le nom d'une variable peut commencer par n'importe quelle lettre de l'alphabet
(en capitales ou en minuscules),
par un souligné ( _ ) ou
un
accent grave ( ` ).
Le nom peut ensuite avoir n'importe quelle combinaison de lettres en capitales
ou en minuscules (sauf les caractères accentués), de chiffres et de soulignés.
La longueur du nom n'est pas limitée, mais habituellement les noms sont gardés assez courts pour économiser
la frappe. À la fin, il y a le caractère qui indique le type de variable, comme indiqué dans
le tableau ci-dessus. S'il n'y a aucun caractère, la machine suppose qu'il s'agit d'un nombre à
virgule flottante.
Les noms sont sensibles à la
casse
typographique, aussi AIRE, aire et AiRe sont différentes pour
BBC BASIC (il n'en est pas forcément ainsi pour d'autres formes
du langage, mais quand vous aurez utilisé celui-ci, vous n'aurez plus besoin d'aucun autre). Également,
« BB4W »
accepte sans rechigner des variables de types différents qui ont le même nom, ainsi
Aire%, Aire et Aire$ ne lui causeraient aucune confusion, mais pourraient vous
en causer à vous. C'est votre choix : soyez prudent !
Il existe une dernière limitation : les noms de variables
ne doivent pas commencer par le nom d'une commande ou d'un mot-clé du
BASIC
comme PRINT,
TAB ou
CLS.
Aussi, voici des noms valides :
_ma_variable
UnEntier%
Prenom$
NUM1
... et en voici qui ne le sont pas :
1_homme_allait_aux_champs : REM un chiffre au début
Il s'en allait faucher : REM contient des espaces
PRINT_TOTAL : REM un mot-clé au début
C'est déjà un art en soi de donner un nom à une variable. À une certaine époque,
on restreignait les noms à une ou deux lettres, ce qui tendait à transformer les programmes
en un fouillis incompréhensible. Il n'en est pas ainsi aujourd'hui.
BBC BASIC reconnaîtra des noms de variables de (pratiquement)
n'importe quelle longueur. Ces deux noms seraient considérés comme différents :
unnomveritablementtrestrestreslong1
unnomveritablementtrestrestreslong2
Pourtant, vous en auriez vite assez de taper ces noms chaque fois que vous en auriez besoin et
avec beaucoup de noms longs, il y aurait des conséquences sur les performances de votre programme
en termes de vitesse. Dix à quinze lettres sont un bon compromis. Moins si cela est possible,
mais conservez-y une certaine signification pour que les lecteurs puissent savoir ce que représentent
les données. Il y a deux conventions :
• l'une met des soulignés entre les divers mots pour les séparer et les rendre plus faciles
à lire, puisque les espaces ne sont pas autorisés .
• l'autre met une lettre capitale au début de chaque mot. Ainsi :
nombre_de_fois
NombreDeFois
J'ai tendance à utiliser la seconde méthode, mais c'est vous qui décidez.
Comme on l'a vu, les variables sont créées la première fois que le
BASIC les rencontre
dans une déclaration. Elles doivent se trouver
à gauche du signe « égale » ( = ).
Une variable non déclarée à la droite du signe « égale » amènera une erreur.
Essayez-le, en changeant la troisième ligne comme ceci :
Aire=3.14159*Rayon*rayon
et lancez le programme. Faites toujours attention à la casse typographique
(capitales et minuscules) !
Corrigez notre petit
bug
ci-dessus et faites tourner le programme du cercle. Au lieu de fermer la fenêtre, tapez-y (suivi de
Entrée ) :
PRINT Rayon
PRINT Aire
Les variables sont toujours en mémoire et ne sont éliminées que quand la fenêtre de sortie
est refermée ou que le programme est relancé. Tapez :
CLEAR
PRINT Rayon
Et nous obtenons maintenant une erreur.
CLEAR force le
BASIC à effacer
l'ardoise et à oublier toutes ses variables. On peut s'en servir dans des programmes pour
le réinitialiser avant de le faire tourner à nouveau.
Un truc : Pour lancer votre programme depuis la fenêtre de sortie
PRINT
|
|
Éloignons-nous juste un instant du sujet, puisque nous parlons d'utiliser la fenêtre
de sortie. Vous pouvez relancer votre programme sans fermer la fenêtre.
À la suite du curseur, tapez :
RUN
suivi de
Entrée . (Le mot-clé
RUN est l'équivalent
de la touche
Run).
Et hop ! le programme démarre. C'est un tout petit peu plus rapide que de fermer
la fenêtre et d'attendre qu'elle s'ouvre à nouveau.
|
Variables statiques
BBC BASIC fait une déclaration
préalable de 26 variables entières nommées A% jusqu'à Z%. Leurs propriétés sont les mêmes
que celles des autres variables entières, mais elles ont une utilisation spéciale.
Elles ne sont pas effacées quand on relance le programme, même si le programme fait appel à
la commande
CLEAR dont il vient d'être
question. Elles ne sont même pas effacées si le programme en appelle un autre. Quand on ferme
BBC BASIC, bien évidemment, toutes les valeurs sont perdues.
L'utilisation de cette fonctionnalité relève probablement de la catégorie supérieure,
mais ça vaut la peine d'être noté.
Exercices
Maintenant que nous avons une idée précise des variables et de leur utilisation,
essayez les exercices suivants :
04.1
Modifiez le programme d'aire pour donner la circonférence d'un cercle avec
3.14159*diametre (on ne met jamais d'accent sur les variables).
04.2
Affichez la surface d'un rectangle dont on connaît la longueur et la largeur.
04.3
Définissez une variable chaîne pour contenir votre prénom,
et affichez à l'écran :
Bonjour, xxxx
où « xxxx » est, bien sûr, votre prénom.
Fin du Chapitre 4
|