Delphipage - la reference en Delphi
Accueil - Astuces - Composants - Programmes - Tutoriaux - Livres - Liens
 Sources
- Astuces
- Composants
- Programmes
- Tutoriaux
 Rechercher
- Delphipage
- Ngscan
 Ressources
- Lexique Delphi
- Livres
- News
- Patchs Delphi
 Liens
- Borland France
- CodeGear
- Les meilleurs sites


Tutoriaux - Tableaux

Présentation 

Un tableau permet de stocker une série de valeurs de même type (integer, string,...) . Toutes les valeurs du tableau ont un indice unique.

En Delphi, il existe plusieurs catégories de tableau : les tableaux statique et dynamiques.
Un tableau statique possède une taille fixe (par exemple, 5 rangées). Un tableau dynamique a la particularité de pouvoir allouée la taille d'un tableau qui peut varier par exemple selon une variable.


Création d'un tableau à une dimension

Déclaration du tableau

La première chose à faire et de déclarer le nom du tableau, la taille et le type.

var MonTableau: array [1..5] of Integer; //5 rangées de type "Interger" (nombre entier)

Dans notre cas, le nom du tableau est "MonTableau", la taille "[1..5]" ce qui correspond à 5 rangées et le type du tableau est "Integer".

Affecter des valeurs au tableau

Pour affecter des valeurs au tableau, il suffit de mettre entre crochet l'indice (entier) du tableau.


MonTableau[1]:=133; //Première rangée
MonTableau[2]:=45; //Deuxième rangée
MonTableau[3]:=12; //Troisième rangée
MonTableau[4]:=26; //Quatrième rangée
MonTableau[5]:=5; //Cinquième rangée

Voici une représentation du tableau créé avec ses différentes valeurs.

133
45
12
26
5

Il est possible de renseigner les valeurs d'un tableau lors de la déclaration.


var MonTableau: array [1..5] of Integer =(133,45,12,26,5);

Si vous créez un tableau sans affecter de valeurs à certaines cases (appelée plus généralement des "éléments"), ils seront néanmoins alloués en mémoire et contiendront des valeurs aléatoires.

Récupèrer une valeur du tableau

Pour récupérer une valeur du tableau, il suffit comme pour l'affectation de valeurs, d'utiliser l'indice de chaque éléments.

Var i:Integer;
...
i:=MonTableau[1]; //La variable "i" possède maintenant la valeur "133"


Création d'un tableau à deux dimensions

Déclaration du tableau

On déclare un tableau à deux dimensions en ajoutant un paramètre (le nombre de lignes).

var MonTableau: array [1..3] of array[1..2] of Integer; //3 colonnes et 2 lignes

Pour un tableau à deux dimensions, on ne parle plus de rangées mais de colonnes et de lignes.
Vous pouvez aussi déclarer le tableau de cette manière.

var MonTableau: array [1..3,1..2] of Integer; //3 colonnes et 2 lignes

Affecter des valeurs au tableau

Pour affecter des valeurs aux différents éléments du tableau, il suffit de spécifier dans l'indice le numéro de la colonne et de la ligne.

MonTableau[1,1]:=133; //1ere colonne, 1ere ligne
MonTableau[1,2]:=26; //1ere colonne, 2eme ligne
MonTableau[3,2]:=57; //3eme colonne, 2eme ligne

Voici une représentation du tableau créé (des valeurs ont été rajoutées).

133
45
12
26
5
57

Sous Delphi, un tableu de type entier occupe 4 octets en mémoire. La taille du tableau occupera donc en mémoire 16 octets (4*3*2).

Comme pour un tableau à une dimension, il est possible de renseigner les valeurs d'un tableau lors de la déclaration.

var MonTableau: array [1..3,1..2] of Integer =( (133,45,12),(26,5,57) );

Récupèrer une valeur du tableau

Pour récupèrer une valeur particulière du tableau, on utilise l'indice de l'élément comme pour un tableau à une dimension.

Var i:Integer;
...
i:=MonTableau[3,1]; //La variable "i" possède maintenant la valeur "12"

A noté, qu'il est possible de créer aussi un tableau à trois dimensions.



Création d'un tableau dynamique

Nous allons maintenant créer un tableau dynamique. Comme nous l'avons vu précèdemment, un tableau dynamique permet d'allouer une taille qui peut varier selon par exemple une variable.
Pour définir la taille d'un tableau dynamique, on utilise la méthode "SetLength".

var MonTableau: array of Integer;
...
SetLength(MonTableau,2);

Les tableaux dynamiques sont toujours indicés en commençant toujours par 0. Dans notre exemple, le tableau crée possède 3 rangées (de 0 à 2).

Il est bien entendu possible de créer un tableau dynamique à deux dimensions.


var MonTableau: array of Integer;
...
SetLength(MonTableau,2,1); //3 colonnes et 2 lignes

Pour rentrer des valeurs dans un tableau dynamique, il suffit d'affecter des valeurs comme ceci :

MonTableau[0,0]:=133; //1ere colonne, 1ere ligne
MonTableau[0,1]:=26; //1ere colonne, 2eme ligne
MonTableau[2,1]:=57; //3eme colonne, 2eme ligne

Tous droits réservés - Contacts
Haut de la page