LES VARIABLES
Noms et types
Les noms de variables peuvent être longs, voire très longs (je ne connais pas la limite) :
VARIABLEAVECUNNOMSUPERLONG = 5 READY PRINT VARIABLEAVECUNNOMSUPERLONG 5
Seuls deux types de variables sont gérés :
- Type numérique : les variables peuvent prendre des valeurs entières ou décimales ;
- Type chaînes de caractères.
Il n’y a pas de type « entier » comme en BASIC Applesoft (où les noms de variables entières finissent par %).
X = 10.32 : REM Type Numérique avec valeur décimale Y = 4 : REM Type Numérique avec valeur entière A$ = "TEXT" : REM type chaine
Chaines de caractères
La gestion des chaînes de caractères diffère fortement du BASIC Microsoft. En Atari BASIC, il est nécessaire de déclarer la taille d’une variable de type chaîne, grâce à la commande DIM
:
DIM A$(5) : REM définition d'un variable de type "chaine" de 5 caractères A$ = "ATARI" : REM affectation d'une chaine de 5 caractères
Si vous tentez d’affecter une chaîne de caractère plus longue que la taille déclarée par DIM
, les caractères en excès seront ignorés :
DIM A$(5) A$ = "ATARI800XL" : PRINT A$ ATARI
Pour manipuler les chaînes de caractères, les commandes MID$
, LEFT$
et RIGHT$
n’existent pas et sont inutiles.
En effet, en BASIC Atari, A$(I,J)
désigne la portion de la chaine comprise entre le Ième
et le Jème
caractère (inclus), et non pas un élément d’un tableau de chaînes de caractères à 2 dimensions comme c’est le cas en BASIC Microsoft.
Il n’est pas possible d’utiliser des tableaux de chaînes de caractères en BASIC Atari, ce qui est une limitation (mais qui peut être contournée).
DIM A$(10) A$ = "ATARI800XL" PRINT A$ ATARI800XL PRINT A$(6,6) : REM Affiche le caractère en 6ème position : 8 8 PRINT A$(1,1) : REM Affiche le premier caractère : A A PRINT A$(6) : REM affiche du 6ème caractère jusqu'à la fin 800XL PRINT A$(4,7) : REM du 4ème au 7ème caractère RI80
Lorsque vous utilisez la syntaxe A$(I,J)
veillez à ce que I
et J
restent compris entre 1
et LEN(A$)
, sinon l’interpréteur BASIC générera une erreur 5.
Il est également possible d’utiliser cette syntaxe pour l’affectation :
DIM A$(15) : A$ = "ATARI800" : PRINT A$ ATARI800 A$(6,8)=" ST" : PRINT A$ ATARI ST
La commande LEN
donne la longueur de la chaîne (et pas l’espace mémoire réservé par DIM
) :
DIM A$(15) : A$ = "APPLE" PRINT LEN(A$) : REM affiche 5 et pas 15 5
Enfin, pour concaténer deux chaînes de caractères :
DIM A$(20) : A$ = "ATARI" : PRINT A$ ATARI REM Concaténation : A$(LEN(A$)+1)=" 800XL" PRINT A$ ATARI 800XL
Il faut prendre garde à ce que la variable A$
ait l’espace mémoire suffisant pour pouvoir mémoriser les caractères supplémentaires.