![]() |
|||
Préambule : le Codage
6. Les Tableaux
7. Techniques Rusées |
« Si on ment à un
compilateur, il prendra sa revanche. »
Bonne nouvelle !
Je vous avais annoncé qu’il y a avait en tout et pour tout quatre structures
logiques dans la programmation. Eh bien, ça y est, on les a toutes passées
en revue. Imaginons que dans un programme, nous ayons besoin simultanément de 12 valeurs (par exemple, des notes pour calculer une moyenne). Evidemment, la seule solution dont nous disposons à l’heure actuelle consiste à déclarer douze variables, appelées par exemple Notea, Noteb, Notec, 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 douze instructions « Lire » distinctes, cela donnera obligatoirement une atrocité du genre : Moy = (N1 + N2 + N3 + N4 + N5 + N6 + N7 + N8 + N9 + N10 + N11 + N12 ) / 12
Ouf ! C’est tout
de même bigrement laborieux. Et pour un peu que nous soyons dans un
programme de gestion avec quelques centaines ou quelques milliers de valeurs
à traiter, alors là c’est le suicide direct.
Un
ensemble de valeurs portant le même nom de variable et repérées par un
nombre, s’appelle un tableau, ou encore une variable indicée.
2. Notation et utilisation algorithmique
Dans notre
exemple, nous créerons donc un tableau appelé Note. Chaque note individuelle
(chaque élément du tableau Note) sera donc désignée Note(0), Note(1), etc.
Eh oui, attention, les indices des tableaux commencent généralement à 0, et
non à 1. Tableau Note(11) en Entier
On peut créer des
tableaux contenant des variables de tous types : tableaux de numériques,
bien sûr, mais aussi tableaux de caractères, tableaux de booléens, tableaux
de tout ce qui existe dans un langage donné comme type de variables. Par
contre, hormis dans quelques rares langages, on ne peut pas faire un mixage
de types différents de valeurs au sein d’un même tableau.
Tableau
Note(11) en Entier
NB : On a fait
deux boucles successives pour plus de lisibilité, mais on aurait tout aussi
bien pu n’en écrire qu’une seule dans laquelle on aurait tout fait d’un seul
coup. · être égale au moins à 0 (dans quelques rares langages, le premier élément d’un tableau porte l’indice 1). Mais comme je l'ai déjà écrit plus haut, nous avons choisi ici de commencer la numérotation des indices à zéro, comme c’est le cas en langage C et en Visual Basic. Donc attention, Truc(6) est le septième élément du tableau Truc ! · être un nombre entier. Quel que soit le langage, l’élément Truc(3,1416) n’existe jamais. · être inférieure ou égale au nombre d’éléments du tableau (moins 1, si l’on commence la numérotation à zéro). Si le tableau Bidule a été déclaré comme ayant 25 éléments, la présence dans une ligne, sous une forme ou sous une autre, de Bidule(32) déclenchera automatiquement une erreur. NB : je le re-re-répète, si l’on est dans un langage où les indices commencent à zéro, il faut en tenir compte à la déclaration : Tableau Note(12) en Entier créera en fait un tableau de 13 éléments, le plus petit indice étant 0 et le plus grand 12.
Il arrive
fréquemment que l’on ne connaisse pas à l’avance le nombre d’éléments que
devra comporter un tableau. Bien sûr, une solution consisterait à déclarer
un tableau gigantesque (10 000 éléments, pourquoi pas, au diable les
varices) pour être sûr que « ça rentre ». Mais d’une part, on n’en sera
jamais parfaitement sûr, d’autre part, en raison de l’immensité de la place
mémoire réservée – et la plupart du temps non utilisée, c’est un gâchis
préjudiciable à la rapidité, voire à la viabilité, de notre algorithme.
Tableau
Notes() en Entier Cette technique n’a rien de sorcier, mais elle fait partie de l’arsenal de base de la programmation en gestion.
|