Stockage des données
Disons que vous avez développé un jeu informatique appelé "User Hostile" dans lequel les joueurs s'affrontent contre une interface informatique complexe et peu conviviale. Vous devez maintenant écrire un programme qui suit les ventes mensuelles de ce jeu sur une période de cinq ans. Ou disons que vous devez faire l'inventaire des cartes à collectionner Hacker Hero.
Très bientôt, vous arriverez à la conclusion que vous avez besoin de plus que de simples types de données de base pour stocker et traiter les informations.
Tableaux (listes). Présentation
Afin de faciliter le travail avec une grande quantité de données, un groupe de cellules reçoit un nom commun. Un tel groupe de cellules est appelé un
tableau
Array – il s'agit d'un groupe de cellules mémoire de même type, situées côte à côte et ayant un nom commun. Chaque cellule du groupe a un numéro unique.
Lorsque vous travaillez avec des tableaux, vous devez
apprendre à résoudre trois tâches :
X allouer de la mémoire de la taille requise pour un tableau
X écrire des données dans la cellule souhaitée
X lire les données de la cellule
Tableaux en Pascal
Pascal utilise traditionnellement des tableaux statiques comme
var a : tableau [1..10] d'entiers ;
Les limites d'un tableau doivent être définies par des constantes et vous ne pouvez pas modifier la taille d'un tableau pendant le fonctionnement du programme. Mais vous pouvez faire un index non seulement d'un entier, mais aussi, disons, d'un caractère ou d'un type énuméré. Par exemple, pour compter l'occurrence de chaque lettre, vous pouvez utiliser un tableau
var LettersCount : tableau ['a'..'z'] d'entiers ;
et travaillez-le comme bon vous semble :
LettersCount['z'] := 1;
LettersCount['d'] := LettersCount['d'] + 1;
Les inconvénients de tels tableaux sont connus : si le nombre d'éléments à utiliser n'est pas connu à l'avance, la taille maximale de la mémoire est allouée au tableau. En conséquence, dans la plupart des cas, nous "stockons pour l'avenir", et parfois cette "réserve" s'avère insuffisant. C'est pourquoi de tels tableaux sont appelés statiques : leur taille est statique et doit être définie lors de la compilation du programme. Cependant, en Pascal, il existe des tableaux dynamiques, dont la taille peut non seulement être définie, mais également modifiée au cours du programme. Ce sont ces tableaux et les avantages de leur utilisation qui seront discutés plus loin.
Création d'un tableau
Lors de la création d'un tableau, de l'espace est alloué en mémoire (un certain nombre de cellules)
1) Les tableaux peuvent être créé en listant simplement les éléments :
var a : tableau d'entiers ;
SetLength(a, 3);
un[0] := 1;
un[1] := 2;
a[2] := 3;
2) Les tableaux peuvent être composés de données de n'importe quel type - nombres entiers ou réels, chaînes de caractères
var a : tableau de caractères ;
SetLength(a, 3);
un[0] := 'un';
un[1] := 'b';
un[2] := 'c';
3) Un tableau "sait" toujours ta taille. La fonction length
est utilisée pour déterminer la taille d'un tableau. Souvent, la taille du tableau est stockée dans une variable distincte afin que le programme puisse être facilement modifié pour fonctionner avec une taille de tableau différente. Exemple:
N := 10; // dans la variable N on stocke la taille du tableau
SetLength(a, N); // définit le tableau et la taille N
writeln(longueur(a)); // affiche la taille du tableau
La taille d'un tableau peut être définie à partir du clavier.