Imaginons que dans un programme, nous ayons besoin simultanément de 10 valeurs (par exemple, des notes pour calculer une moyenne). Evidemment, la seule solution dont nous disposons à l’heure actuelle consiste à déclarer dix variables, appelées par exemple Note1, Note2, Note3, etc.
Bien sûr, on peut opter pour une notation un peu simplifiée, par exemple N1, N2, N3, etc. Mais cela ne change pas fondamentalement notre problème, car arrivé au calcul, et après une succession de dix instructions « saisir » distinctes, cela donnera obligatoirement une atrocité du genre :
Imaginez maintenant le programme de l’école qui a besoin de connaitre les notes des étudiants pour faire la moyenne de classe… On se retrouve avec une ligne de calcul qui ne tiendrait pas sur une feuille !
Imaginons encore qu’un nouvel étudiant arrive en cours d’année. Il faudra alors réécrire tout le programme pour qu’il prenne en compte l’étudiant.
C’est pourquoi il existe les tableaux. Ces variables sont identiques aux variables que nous avons vu jusqu’à présent, sauf qu’elles réservent plusieurs cases d’un coup. Prenons la déclaration suivante :
La conséquence directe est que la variable Test2 pourra mémoriser 10 valeurs (Test2[1] jusqu'à Test2[10]) ! En effet, les dix cases ont étés toutes réservées avec le nom Test2. Maintenant que l’on a dix cases représentées par une seule étiquète (Test2), le problème est de pouvoir mettre des choses dans les cases. En effet, on ne peut plus mettre des choses du genre Test2<-3. Il y a une erreur de type car Test2 est de type tableau, tandis que 3 est de type entier. Comme nous l’avons vu dans le premier cours, on ne peut pas affecter une valeur à une variable d’un type autre que celui de la variable de destination.
Par ailleurs, il est logique que l'ordinateur ne puisse pas effectuer l'opération car on ne peut pas savoir dans quelle case mettre le 3… Il faut pour cela trouver le moyen de préciser quelle case on veut atteindre.