DIM - INPUT#
Dictionnaire des mots-clés BASIC, C64
Du Commodore 64
DIM
Type :
Instruction
Syntaxe : DIM nom_variable [, nom_variable..]
Modes :
Les modes Direct et Programme sont tous deux valides.
Jeton : $86 (134)
Entrée abrégée : D SHIFT-I
Utilisation :
DIM (DIMension) alloue de la mémoire au-dessus du programme BASIC pour les variables, dans l'ordre de leur liste dans l'instruction DIM.
Cette commande est exécutée automatiquement lorsqu'une variable reçoit une valeur (par exemple, une ligne contenant l'expression X=1).
Il est donc inutile d'utiliser DIM, sauf pour les tableaux de plus de 10 dimensions.
Toutes les
variables allouées par DIM sont initialisées à 0 (pour les valeurs numériques)
ou à null (pour les chaînes de caractères).
Remarques :
1. Les
tableaux peuvent utiliser des expressions numériques dans leurs instructions
DIM ; leur taille peut donc être déterminée par une valeur d'entrée et n'est pas
nécessairement fixe.
Les tableaux commencent à l'élément zéro.
Ainsi, DIM
X(4) crée un tableau numérique avec cinq emplacements de stockage, de X(0) à
X(4). Une dimension peut contenir jusqu'à 32 767 éléments.
Les tableaux
multidimensionnels ne peuvent contenir que 255 indices au maximum.
En pratique,
une erreur de mémoire insuffisante (?OUT OF MEMORY ERROR) se produira bien avant
d'atteindre ces limites.
2. Les tableaux sont stockés en mémoire
au-dessus des variables classiques.
Vvoici
quelques
conséquences :
• L'ajout de nouvelles variables après la création
d'un tableau entraîne un délai.
• Les tableaux peuvent être supprimés
avec :
POKE 49, PEEK(47) : POKE 50, PEEK(48)
Ainsi, si des
résultats intermédiaires sont calculés avec un grand tableau, celui-ci peut être
supprimé une fois le traitement terminé.
3. Les tableaux d'entiers sont
performants, tandis que la performance des tableaux de chaînes de caractères
dépend de la longueur des chaînes. PRINT FRE(0) donne une indication rapide de
la RAM disponible à tout moment.
4. Les grands tableaux de chaînes de
caractères sont sensibles aux délais de récupération de mémoire. C'est le nombre
total de chaînes distinctes, et non leur longueur, qui est le facteur
déterminant pour la récupération de mémoire.
Exemples :
1. 100 INPUT "NUMBER OF ITEMS";N: DIM IT$(N)
Cela pourrait être utilisé dans un programme de tri, où un nombre quelconque d'éléments peut être trié.
2. DIM X,Y,J,L,P$ :REM SET ORDER OF VARIABLES
L'ordonnancement des variables, en plaçant en premier les plus fréquemment utilisées, contribuera à augmenter la vitesse des programmes BASIC.
3. 100 DIM A(20): FOR J=1 TO 20: INPUT A(J): A(0)=A(0)+A(J): NEXT
La ligne ci-dessus utilise l'élément zéro pour calculer un total cumulé.
4. DIM X%(10,10,10)
Cela crée un tableau de 1331 entiers, peut-être pour stocker les résultats de trois questionnaires à 11 points.
END