Problem

1/10

Tableaux (listes). Introduction

Theory Click to read/hide

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.

Problem

Modifiez le programme de manière à ce que la valeur de la variable N soit saisie à partir du clavier dans la cinquième ligne et que dans la sixième ligne un tableau de taille N soit créé (les valeurs des éléments du tableau peuvent être quelconques)