Obligement - L'Amiga au maximum

Mardi 24 avril 2018 - 14:09  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


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 :

A=3
B=34.5

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 :

x=3
y=5
r=4x+2y+6

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 :

x=3
y=5
r=4*x+2*y+6

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.


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]