Aller au contenu

Delphi/Tableau

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Tableau
Icône de la faculté
Chapitre no 7
Leçon : Delphi
Chap. préc. :Opérateurs
Chap. suiv. :Structures conditionnelles et répétitives
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Delphi : Tableau
Delphi/Tableau
 », n'a pu être restituée correctement ci-dessus.

Un tableau représente une collection indicée d'éléments de même type (appelé le type de base). Comme chaque élément a un indice unique, les tableaux (à la différences des ensembles) peuvent, sans ambiguïtés, contenir plusieurs fois la même valeur. Il est possible d'allouer des tableaux de manière statique ou dynamique.

Tableaux statiques

[modifier | modifier le wikicode]

Un tableau statique est un tableau dont le nombre d'éléments est prédéfini. Ce nombre, qui est aussi appelé "taille" du tableau ne peut changer au cours de l'exécution du programme. Un tableau se déclare comme une variable ou une constante et peut donc être variable ou constant. L'accès à un élément du tableau se fait en suffixant le nom du tableau par indice écrit entre crochet.

Début de l'exemple
Fin de l'exemple


Conclusion un tableau dont on précise l'indice se comporte exactement comme une variable ou une constante.

Tableaux multidimensionnels

[modifier | modifier le wikicode]

Il n'y a pas de limite dans le nombre de dimensions d'un tableau. De plus une des spécificités de Delphi est que dans le cas des tableaux statiques l'indice peut commencer et se terminer par n’importe quel nombre ou lettre.

Début de l'exemple
Fin de l'exemple


Ceci peut être très pratique dans certains cas comme la modélisation d'un plateau d'échec par exemple.

Début de l'exemple
Fin de l'exemple


Il est cependant déconseillé d’utiliser des tableaux de plus de 3 dimensions car ils sont complexes à manipuler pour le programmeur. Essayez, vous verrez.

Tableaux dynamiques

[modifier | modifier le wikicode]

Les tableaux dynamiques n'ont pas de taille ni de longueur fixe. La mémoire d'un tableau dynamique est réallouée quand vous assignez une valeur au tableau ou le transmettez à la procédure SetLength. Les types de tableau dynamique sont désignés par des constructions de la forme :

array of typeBase

Par exemple :

var MonTableauFlexible: array of Real;

déclare un tableau dynamique de réels à une dimension. La déclaration n'alloue pas de mémoire à MonTableauFlexible. Pour créer le tableau en mémoire, appelez SetLength. Par exemple, étant donné la déclaration suivante :

SetLength(MonTableauFlexible, 20);

alloue un tableau de 20 réels indicés de 0 à 19. Les tableaux dynamiques sont toujours indicés par des entiers en commençant toujours par 0.


Début de l'exemple
Fin de l'exemple

Il n'y a aucune limite dans le nombre de modification de la taille du tableau. Les données contenues dans le tableau sont sauvegardées lors de la modification, sauf si elles dépassent de la nouvelle taille.

NB : En Delphi le type string est considéré comme un tableau dynamique de char, par conséquent toutes les opérations applicables au tableaux dynamiques le sont aux string.

Fonctions utiles

[modifier | modifier le wikicode]

La fonction Length renvoie la taille d'un tableau.

Début de l'exemple
Fin de l'exemple


Les fonctions High et Low renvoie respectivement les indices maximum et minimum d'un tableau.

Début de l'exemple
Fin de l'exemple