Ces représentations restent totalement virtuelles, une vue de l’esprit. De nombreux tableaux n’ont absolument pas pour but de 
représenter des lignes et des colonnes. Un tableau à deux dimensions peut parfaitement représenter un jeu de morpion, une 
matrice, une classe et les notes des étudiants associées… 
Le piège avec les tableaux à plusieurs dimensions, c’est la taille qu’ils occupent en mémoire. Imaginez dix écoles, disposant de 
dix classes chacune de vingt élèves. Nous voulons placer les notes dans un tableau. Voici donc un tableau de trois dimensions : 
Note[1..10][1..10][1..20]
Combien de notes pourra obtenir le tableau ? 10x10x20 : 2000 notes ! Si l’élément fait un octet, vous approchez les 2 Ko. Mais 
si l’élément du tableau contient un réel sur 64 bits, c’est 16 Ko qui sont utilisés ! Pourtant les indices semblaient si peu élevés. 
c. Les types 
Un tableau n’est pas un type de données mais un ensemble de valeurs, elles mêmes typées, regroupées et indicées sous un 
nom de variable unique. Pouvez­vous créer un tableau contenant n’importe quel type de valeurs ? Attention à l’interprétation 
de cette question. Un tableau contient­il n valeurs du même type, ou au contraire n valeurs de types différents ? 
En algorithmique, le principe est simple : un tableau contient n éléments de même type. Autrement dit, vous allez déclarer un 
tableau de vingt notes en numérique, dix réels, cinq chaînes de caractères, etc. 
Cependant  en  dehors  du  pseudo­code  algorithmique  la  définition,  la  déclaration  et  l’utilisation  des  tableaux  dépendent 
fortement du langage. Les tableaux simples en Java ou en C par exemple ne contiennent qu’un seul type possible de valeurs. 
Tandis qu’en PHP, vous pouvez mélanger tout ce que voulez, l’indice 1 contenant un entier, l’indice 2 du texte, etc. 
Cela  peut  être  un  peu  déroutant  à  l’usage,  mais  ces  langages,  souvent  appelés  non  typés  (c’est  discutable)  sont  d’une 
souplesse incomparable. 
En attendant, respectez en algorithmique le fait qu’un tableau a en principe un nombre d’indices fini et qu’ils sont typés une fois 
pour toute. 
d. Déclaration 
En pseudo­code algorithmique, les tableaux se déclarent au même endroit que les variables, juste avant le début du traitement 
lui­même, sous cette forme : 
VAR 
MonTableau:tableau[1..nbelements] d’entiers 
MonTab2:tableau[1..dim1][1..dim2] de réels
Entre les crochets, placez le nombre d’éléments du tableau. 
Il est possible d’initialiser le contenu du tableau à sa création comme ceci : 
VAR 
mois :tableau[1..12]<-{"janvier",...,"décembre"} de chaînes
Ce même tableau pourrait être placé dans la section CONST, ce qui en ferait une constante. 
Comme cela sera revu un peu plus loin, les indices des tableaux peuvent démarrer à 0 ou 1, selon les langages, les usages, les 
professeurs, etc. Il n’y a malheureusement pas de règle précise en ce domaine. L’évidence,  vis­à­vis  de  l’organisation de la 
mémoire  de  l’ordinateur,  voudrait  que  la  numérotation  démarre  à  zéro  :  ça  simplifie  les  calculs  de  la  position  des  différents 
éléments du tableau dans la mémoire. Cependant comment alors comprendre ce tableau ? 
Valeurs:tableau[1..10] de réels
Selon les usages, si ce tableau représente dix valeurs alors : 
q Si la numérotation commence à 1, les indices vont de valeur[1] à valeur[10]. 
q Si la numérotation commence à 0, les indices vont de valeur[0] à valeur[9]. C’est le cas du langage C ou du Java. 
Certaines  notations  algorithmiques  sont  encore  plus  surprenantes  (pour  ne  pas  être  méchant)  :  la  valeur  indiquée  entre 
crochets peut correspondre au nombre maximal d’indices en partant de zéro. C’est ainsi que le tableau valeurs contiendrait 
onze éléments ! N’ayez pas d’inquiétudes, ce ne sera pas le cas ici. 
Dans la suite, les indices commenceront à un pour aller jusqu’à n, n étant le nombre d’éléments du tableau. Le tableau valeurs
[1..10] aura donc bien dix éléments, numérotés de 1 à 10. Comme il ne s’agit pas d’une règle absolue dans tous les langages 
vous  prendrez  bien  soin  à  vérifier  ce  qu’il  en  est  lorsque  vous  écrirez  vos  programmes.  Si  vous  êtes  étudiant,  suivez  la 
représentation fournie par vos professeurs, éventuellement précisez les règles que vous appliquez aux indices. Dans tous les 
cas, n’accusez pas l’auteur de cet ouvrage ! 
e. Utilisation 
- 2 -
© ENI Editions - All rigths reserved - Jonifar lina
96
Précédent

- 96/220

Suivant