Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : AmigaBasic - Les variables
(Article écrit par Michel Descoins et extrait d'Amiga News Tech - juin 1989)
|
|
Allez, on se dépêche : on charge l'AmigaBasic dans la mémoire de son ordinateur préféré et, prenant
son courage à deux mains et sa souris dans l'autre, on se prépare à explorer le fabuleux domaine
des variables...
Avant toute chose, je tiens à préciser qu'à partir de dorénavant, maintenant et jusqu'à plus tard,
je ne préciserai plus que pour écrire un programme il faut cliquer dans la fenêtre "List"
et recopier une à une les lignes, en les validant par la touche "Entrée". Pas plus que je ne répéterai
que pour exécuter le programme ainsi tapé, il faut choisir l'option "Start" dans le menu "Run",
ou appuyer simultanément sur les touches "Amiga" et "R".
Variable
Qu'est-ce donc qu'une variable ? Nous avons tous appris à l'école, en cours de mathématiques (sauf les
cancres qui dormaient au fond de la classe...), qu'une variable était un moyen simple de mémoriser
une valeur. Par exemple, l'affectation mathématique A=2 donne la valeur "2"
à la variable de nom "A". Par opposition aux constantes, la valeur d'une variable
peut-être modifiée à tout instant dans une formule. En BASIC, c'est exactement la même chose.
Nous pouvons créer des variables en leur donnant un nom et une valeur, ce nom servant à
accéder à cette valeur à tout instant. En revanche, alors que d'autres langages de
programmation tels le Pascal, le C ou l'assembleur, autorisent des constantes, le
BASIC ne connaît que les variables.
Cela étant dit, il nous faut maintenant distinguer deux types de variables : les numériques
et les alpha-numériques. Une variable numérique ne peut avoir pour valeur que des nombres
définis. Une affectation d'une valeur à une variable se fait exactement de la même manière
qu'en mathématiques. Par exemple :
La variable "A" prend alors la valeur "3", tandis que B égale "34.5" (remarquez que, tout
comme sur une calculatrice électronique, on utilise le point comme séparateur décimal).
Nous aborderons dans un autre article les variables alpha-numériques, bien que nous en
ayons déjà rencontré une le mois dernier
(souvenez-vous de a$...).
Il nous faut, encore une fois, effectuer un rapprochement entre le BASIC et les mathématiques.
Considérons donc les déclarations suivantes :
N'importe quel écolier de douze ans serait capable de vous dire que pour calculer la valeur de "r",
nous devrons utiliser celles de "x" et de "y". Essayons donc de traduire cela en BASIC :
La seule différence notoire est l'introduction du sigle "*", qui représente, pour l'AmigaBasic,
l'opérateur de multiplication. Exécuté tel quel, ce programme fonctionne parfaitement et la
variable "r" prend bien la valeur "28", comme l'on s'y attendait. Mais pour l'instant, l'Amiga
garde jalousement ce résultat, sans en nous en faire part. C'est simplement parce que nous ne le
lui avons pas demandé...
Les noms des variables
On peut donner à priori n'importe quel nom à une variable. Je dis bien à priori, car il
existe quand même certaines restrictions, auxquelles il faut bien se conformer. Premièrement, on
ne peut utiliser que des lettres (A à Z, majuscules et/ou minuscules) et des chiffres (0 à 9),
le point (.) et le signe souligné pour nommer une variable, et le premier caractère doit
obligatoirement être une lettre. Il est évident que les caractères que le BASIC
peut considérer comme des opérateurs (+, *, etc.), les caractères accentués et les espaces
sont interdits. Deuxièmement, la longueur d'un nom de variable est limitée à 32 caractères
maximum. Enfin, il est interdit d'utiliser des noms d'instructions BASIC.
Exemples de noms de variables valides :
- A
- prix
- vitesse
- livre
- cercle0
- Maison.Rouge
- Maison_Blanche
Exemples de noms de variables invalides :
- 1a : le premier caractère est un chiffre !
- Maison Rouge : contient un espace !
- Maison-Blanche : contient le signe moins (-) !
- print : est le nom d'une instruction BASIC !
- ABCDEFGHIJKLMMNOPQRSTUVWXYZ1234567 : fait 33 caractères de long !
Édition d'une variable
Pour que l'AmigaBasic nous communique le résultat des calculs qu'il a effectués, nous
devons lui dire de le faire. Nous allons pour cela, utiliser une instruction que nous avons
déjà rencontrée le mois dernier, à savoir PRINT. Ajoutez donc la ligne "PRINT r"
au programme ci-dessus et exécutez-le à nouveau. Nous avons cette fois-ci atteint notre
but et le chiffre 28 s'affiche bel et bien à l'écran.
Que faut-il en déduire ? Tout simplement qu'en plus de l'affichage de textes quelconques,
l'instruction PRINT permet d'éditer à l'écran la valeur d'une variable.
Une remarque au passage : les plus attentifs auront remarqué que nous n'avions pas inclus
de guillemets dans l'instruction "PRINT r". Ceci est dû au fait que nous désirons que
l'AmigaBasic affiche la valeur de la variable r et non le texte "r". Il est (bien évidemment ?)
possible de mélanger l'édition de texte et de variables, comme le montre ce petit exemple :
numero=13
PRINT "Vous lisez Commodore Revue numéro";numero
|
Notez que l'instruction "PRINT" est suivie d'un texte entre guillemets, lui-même suivi d'un
point-virgule et de la variable numéro. Le point-virgule n'est pas ici indispensable,
mais les puristes du BASIC préfèrent le mettre. Il agit comme séparateur entre les
deux arguments de l'instruction PRINT. Après avoir exécuté ces deux lignes, vous devez
obtenir à l'écran la phrase : "Vous lisez Commodore Revue numéro 13".
Calculs avec les variables
Essayez maintenant le programme suivant :
x=3
y=5
r=4*x+2*z+6
PRINT r
|
Cette fois-ci, c'est le nombre 18 qui s'affiche. L'explication en est simple : dans le calcul de "r",
une nouvelle variable baptisée "z" intervient ; or, il se trouve que nul part dans le programme,
nous n'avons affecté de valeur à "z". Mais ce n'est pas pour autant que l'AmigaBasic la refuse.
Simplement, il considère que sa valeur est nulle (égale à zéro), d'où ce résultat parfaitement juste
de 18 (vérifiez, vous verrez bien !). Ce qui nous permet d'énoncer une règle simple mais primordiale :
si l'on n'affecte pas de valeur particulière à une variable, celle-ci prend automatiquement la valeur 0.
Modifiez encore une fois le programme, afin d'obtenir :
x=3
r=4*x+2*y+6
y=5
PRINT r
|
Là encore, le résultat affiché est 18 et non 28. Nous avons pourtant bien affecté à "y" la
valeur 5, alors pourquoi ce résultat apparemment incorrect ? La réponse est simple : l'affectation
de "y" se fait après le calcul de "r" ; en d'autres termes, au moment où l'ordinateur calcule "r",
il ne connaît pas encore "y" et lui affecte donc la valeur 0. Ce n'est qu'ensuite que "y" prend
la valeur "5". N'oubliez jamais qu'un programme BASIC est lu et exécuté séquentiellement, c'est-à-dire
de haut en bas.
Peut-être serait-il maintenant temps que j'introduise ici les différents opérateurs que le
BASIC reconnaît. La liste qui va suivre n'est pas exhaustive ; nous en rencontrerons d'autres
au fur et à mesure de notre exploration de ce langage.
Opérateur |
Opération |
Exemple |
= |
Affectation |
A=B |
+ |
Addition |
A+B |
- |
Soustraction |
A-B |
* |
Multiplication |
A*B |
/ |
Division |
A/B |
î |
Puissance |
AîB |
( et ) |
Priorité |
(A+B)*C |
Modification de la valeur d'une variable
Voilà une notion très importante concernant les variables. Le mot même l'indique : il est possible
de modifier la valeur d'une variable, simplement en utilisant l'opérateur d'affectation "=".
A=12
PRINT A
A=-45
PRINT A
|
Si vous tapez puis exécutez ces quatre lignes, vous obtiendrez à l'écran les chiffres
12 puis -45. Ce qui s'est passé est très simple : nous avons affecté à la variable "A"
la valeur "12" et affiché cette valeur, puis nous l'avons modifié, simplement en effectuant
une nouvelle affectation à "A". Ce qui nous amène à dire que nous pouvons, au sein d'un
programme, affecter à une variable autant de valeurs que nous le désirons. Et ce qui nous
amène également à constater que c'est toujours la dernière valeur affectée à cette variable
qui est prise en compte.
Une notion plus difficile maintenant, car déroutante au début. Considérez le programme suivant :
A=12.36
A=A+4.102
PRINT A
|
Après exécution, ce programme affiche à l'écran le nombre 16.462. L'instruction "A=A+4.102"
peut à priori vous sembler difficile à digérer. Nous avons en effet déjà vu que nous pouvions
nous servir d'une variable donnée pour en calculer une autre, mais là... L'explication est
très simple : cette instruction signifie littéralement "prendre la valeur de "A", y ajouter
le nombre "4.102" et affecter le résultat de cette addition à la variable "A"".
Cette propriété qu'ont les variables de pouvoir calculer leur nouvelle valeur d'après l'ancienne,
va beaucoup nous servir dans la suite de nos expériences en programmation. Il est donc
indispensable que vous l'assimiliez...
Voici un exemple qui devrait vous convaincre. Ce court programme est destiné à calculer
le prix d'un article quelconque après une ristourne de 20%, connaissant son prix normal.
prix=125
PRINT "Le prix de cet article est";prix ;"francs."
ristourne=20
PRINT "Il y a une ristourne de";ristourne ;"%."
prix=prix-((prix*ristourne)/100)
PRINT "Vous devez donc payer";prix ;"francs."
|
Lecture de la valeur d'une variable
Notre petit programme ci-dessus était bien, mais il manquait de convivialité.
Il est en effet assez rare qu'un magasin ne propose que des articles à 125 FF,
avec des ristournes de 20% uniquement. En clair, il serait intéressant que nous puissions,
d'une manière ou d'une autre, demander à l'utilisateur du programme quels sont le
prix initial de l'article et le montant de la ristourne accordée.
Nous allons, pour cela, utiliser une instruction déjà rencontrée dans notre premier article :
INPUT. Là où nous l'avions laissée, elle nous permettait d'afficher un texte d'invite, et
d'attendre une entrée au clavier de l'utilisateur. Modifiez donc le programme de ristourne
pour obtenir ceci :
INPUT "Quel est le prix de cet article";prix
INPUT "Quel est le montant de la ristourne";ristourne
prix=prix-((prix*ristourne)/100)
PRINT "Le client doit donc payer";prix ;"francs."
|
Et vous pouvez maintenant donner le prix et le montant de la ristourne que vous voulez,
l'ordinateur calculera pour vous le nouveau prix que le client devra payer (faites attention
à n'entrer que des nombres, sans spécifier "francs" ni "%").
Ce que nous venons de démontrer est primordial : l'instruction "INPUT"
permet d'affecter une valeur à une variable, non pas par programme, mais de
manière interactive. Dès lors, tous les rêves sont permis...
A bientôt
La notion de variable devrait maintenant être claire aux yeux de tous.
Mais comme nous le verrons le mois prochain, il y a encore beaucoup à dire sur le
sujet, notamment en ce qui concerne les différents types de variables numériques,
ainsi que sur les variables alpha-numériques.
|