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