Aller au contenu principal

Tableaux

Ce que ce chapitre apporte

  • Comprendre la notion de tableau et son utilité.
  • Savoir déclarer, remplir et parcourir un tableau.
  • Maîtriser les notions d'indice, de taille et d'accès aux éléments.
  • Être capable de traiter des séries de données à l'aide de boucles.

Cinq notes, c'est cinq variables. Cent notes, c'est intenable. Le tableau range plusieurs valeurs sous un seul nom, chacune repérée par son indice, et c'est ce qui rend enfin utile la boucle du chapitre précédent : parcourir, additionner, chercher un maximum se font alors en trois lignes quel que soit le nombre de valeurs.

Jusqu'à présent, les algorithmes manipulaient des valeurs isolées : une variable pour l'âge, une autre pour le nom, une autre pour une note. Mais dans la plupart des problèmes réels, on doit gérer plusieurs données du même type : par exemple, les notes d'une classe, les températures d'une semaine ou les scores d'un jeu. Les **tableaux** permettent de regrouper ces valeurs dans une seule structure organisée et facilement exploitable.

Qu'est-ce qu'un tableau ?

Définition

Un tableau est une structure qui regroupe plusieurs valeurs du même type sous un seul nom. Chaque valeur du tableau est appelée un élément, et elle est repérée par un indice (ou position).

On peut imaginer un tableau comme une rangée de boîtes alignées sur une étagère :
chaque boîte contient une valeur (par exemple une note), et chaque boîte porte un numéro d'ordre, appelé indice.
Ce numéro permet de retrouver ou de modifier facilement le contenu de chaque case sans les confondre.

IndiceÉlément
112
215
318

Ainsi, si l'on appelle ce tableau notes, on peut accéder :

  • au premier élément avec notes[1],
  • au deuxième avec notes[2],
  • au troisième avec notes[3].

Chaque valeur est indépendante, mais toutes partagent le même nom, ce qui simplifie leur manipulation.

Exemple

Algorithme
pas 1 / 2
Début
notes [12, 15, 18]
Écrire "Première note :", notes[1]
Fin

programme principal

notes[12, 15, 18]

Cet algorithme affiche la première note contenue dans le tableau. L'intérêt du tableau est qu'il permet de rassembler plusieurs données dans une même variable, tout en gardant la possibilité d'y accéder individuellement.

Par exemple, au lieu de créer trois variables séparées :

Algorithme
pas 1 / 3
note1 12
note2 15
note3 18

programme principal

note112

on peut simplement écrire :

Algorithme
pas 1 / 1
notes [12, 15, 18]

programme principal

notes[12, 15, 18]

et manipuler les valeurs de manière beaucoup plus flexible.

On peut comparer cela à un casier à compartiments : chaque compartiment contient une donnée, et l'étiquette du casier (l'indice) permet de la retrouver rapidement.
C'est ce principe qui rend les tableaux essentiels dans la programmation : ils servent à stocker, parcourir et traiter efficacement une série de données.

Avant de continuer

  • À quoi sert un tableau par rapport à plusieurs variables séparées ?
  • Que représente l'indice dans un tableau ?
  • Peut-on mélanger des types différents (nombres, textes, booléens) dans un même tableau ?

Déclaration et utilisation

La création d'un tableau dépend du langage, mais le principe reste le même :
on déclare un nom et une taille (le nombre d'éléments que l'on veut stocker).

Algorithme
pas 1 / 1
notes tableau[5]

programme principal

notes[?, ?, ?, ?, ?]

Ici, le tableau notes peut contenir 5 valeurs (par exemple les notes de 5 élèves). Chaque case est indépendante et peut être remplie, lue ou modifiée à tout moment.

Algorithme
pas 1 / 5
notes[1] 10
notes[2] 12
notes[3] 15
notes[4] 9
notes[5] 13

programme principal

notes[10]

Une fois les valeurs enregistrées, on peut les utiliser librement dans les calculs ou les affichages :

Algorithme
Écrire "Note du 3e élève : ", notes[3]
Écrire "Moyenne de la classe : ", (notes[1] + notes[2] + notes[3] + notes[4] + notes[5]) / 5

Le tableau fonctionne donc comme une liste de tiroirs numérotés :

  • on ouvre un tiroir grâce à son indice,
  • on regarde ce qu'il contient,
  • ou on remplace la valeur par une autre.

Cela permet d'accéder rapidement à une donnée précise sans devoir chercher dans tout le programme.

Exemple complet

Algorithme
pas 1 / 7
Début
notes tableau[3]
notes[1] 14
notes[2] 9
notes[3] 16
Écrire "Deuxième note :", notes[2]
notes[2] 12
Écrire "Note modifiée :", notes[2]
Fin

programme principal

notes[?, ?, ?]

Dans cet exemple, on crée un tableau de trois notes. On affiche d'abord la deuxième, puis on la modifie avant de la réafficher. Le tableau permet donc d'enregistrer et de mettre à jour facilement plusieurs valeurs sans multiplier les variables.

Astuce

Les indices d'un tableau commencent souvent à 1 dans le pseudo-code, mais dans la plupart des langages de programmation (comme Python, C ou Java), ils commencent à 0. Cela signifie que le premier élément d'un tableau notes est notes[0] dans ces langages. Il est donc important de bien vérifier le point de départ des indices selon le langage utilisé, afin d'éviter des erreurs de décalage ou des accès hors limites.

Parcours d'un tableau avec une boucle

La boucle Pour est idéale pour parcourir un tableau, car le nombre d'éléments est connu à l'avance.
On utilise alors la variable du compteur comme indice pour accéder à chaque case du tableau une à une.

Exemple

Algorithme
pas 1 / 12
Début
notes [12, 15, 18, 10, 14]
Pour i de 1 à 5
Écrire "Note ", i, " : ", notes[i]
FinPour
Fin

programme principal

notes[12, 15, 18, 10, 14]

Ici, la boucle passe dans chaque case du tableau et affiche la valeur qu'elle contient. La variable i prend successivement les valeurs 1, 2, 3, 4 et 5, ce qui permet à l'algorithme de visiter chaque élément dans l'ordre. Chaque tour de boucle correspond à la lecture d'une nouvelle case.

On peut imaginer le parcours d'un tableau comme une personne qui feuillette un carnet de notes : à chaque page (chaque indice), elle lit une valeur, puis tourne la page suivante jusqu'à la fin du carnet. Ce mécanisme rend les tableaux particulièrement puissants pour automatiser des tâches répétitives.

Exemple d'utilisation pratique

Parcourir un tableau ne sert pas seulement à afficher des valeurs : on peut aussi effectuer des calculs à chaque passage. Voici un algorithme qui calcule la somme de toutes les notes :

Algorithme
pas 1 / 14
Début
notes [12, 15, 18, 10, 14]
somme 0
Pour i de 1 à 5
somme somme + notes[i]
FinPour
Écrire "Somme totale : ", somme
Fin

programme principal

notes[12, 15, 18, 10, 14]

Le compteur i permet d'accéder à chaque case dans l'ordre et d'ajouter la valeur correspondante à la variable somme. On peut ensuite calculer la moyenne, le maximum ou toute autre statistique à partir des mêmes données.

Cette méthode évite de répéter manuellement les instructions et garantit un code plus court, plus clair et plus fiable.

Astuce

Si la taille du tableau est connue, utiliser directement sa longueur dans la boucle :

Algorithme
Pour i de 1 à longueur(notes)
Écrire notes[i]
FinPour

Cela rend l'algorithme plus flexible : si le tableau contient plus ou moins d'éléments, la boucle s'adapte automatiquement sans qu'il soit nécessaire de modifier les bornes.

Erreur fréquente

Si l'on essaie d'accéder à un indice en dehors du tableau (par exemple notes[6] alors que le tableau ne contient que 5 éléments), l'algorithme provoque une erreur. Il faut donc toujours s'assurer que l'indice reste compris entre la première et la dernière case. On parle alors de dépassement de tableau, une erreur très courante lorsqu'on oublie que les indices commencent souvent à 0 dans les vrais langages de programmation.

En résumé, la boucle Pour est l'outil naturel pour explorer un tableau, élément par élément. Elle transforme un ensemble de données en une séquence d'actions ordonnées, ce qui ouvre la voie à des traitements plus complexes comme les recherches, les tris ou les filtrages.

Traitements courants sur les tableaux

Les tableaux deviennent vraiment puissants lorsqu'ils sont associés à des boucles.
Grâce à elles, il est possible d'effectuer automatiquement des calculs sur plusieurs valeurs : somme, moyenne, maximum, minimum, etc.
L'algorithme peut ainsi analyser, résumer ou comparer de grandes quantités de données sans répétition inutile.

Calcul de la somme des éléments

Algorithme
pas 1 / 12
Début
notes [10, 12, 15, 13]
somme 0
Pour i de 1 à 4
somme somme + notes[i]
FinPour
Écrire "Somme totale : ", somme
Fin

programme principal

notes[10, 12, 15, 13]

Ici, on initialise une variable somme à 0, puis on ajoute chaque élément du tableau à cette variable. À chaque itération, somme grandit un peu plus, jusqu'à contenir la somme totale de toutes les notes. On dit que somme accumule les valeurs une à une.

On peut comparer ce processus à une boîte de collecte : à chaque tour de boucle, on y dépose une nouvelle valeur, et à la fin, la boîte contient le total de tout ce qui a été ajouté.

Calcul de la moyenne

Algorithme
pas 1 / 13
Début
notes [10, 12, 15, 13]
somme 0
Pour i de 1 à 4
somme somme + notes[i]
FinPour
moyenne somme / 4
Écrire "Moyenne : ", moyenne
Fin

programme principal

notes[10, 12, 15, 13]

Le calcul de la moyenne reprend le même principe : on additionne toutes les valeurs, puis on divise la somme par le nombre d'éléments du tableau.

Ce type de traitement montre bien la force des boucles : une seule structure permet de traiter des ensembles de données de n'importe quelle taille. Si le tableau contient 100 valeurs au lieu de 4, il suffit de modifier la borne de la boucle, le reste du programme reste identique.

Astuce

Si la taille du tableau n'est pas connue à l'avance, on peut remplacer le nombre 4 par une fonction longueur(notes). Ainsi, l'algorithme s'adaptera automatiquement à la taille réelle du tableau :

Algorithme
moyenne somme / longueur(notes)

Recherche du maximum

Algorithme
pas 1 / 12
Début
notes [10, 12, 15, 13]
max notes[1]
Pour i de 2 à 4
Si notes[i] > max Alors
max notes[i]
FinSi
FinPour
Écrire "Note maximale : ", max
Fin

programme principal

notes[10, 12, 15, 13]

Ici, l'algorithme cherche la plus grande valeur du tableau. On commence par supposer que le premier élément est le plus grand (max ← notes[1]), puis on parcourt le reste du tableau en comparant chaque nouvelle valeur avec le maximum actuel. Si une valeur est plus grande, on met à jour max. À la fin, max contient la valeur la plus élevée.

Algorithme
pas 1 / 14
Début
notes [12, 7, 15, 9, 18]
max notes[1]
Pour i de 2 à 5
Si notes[i] > max Alors
max notes[i]
FinSi
FinPour
Écrire "Maximum : ", max
Fin

programme principal

notes[12, 7, 15, 9, 18]

La colonne max ne change que deux fois sur quatre tours : au deuxième et au dernier. Un parcours ne modifie pas à chaque pas, et c'est cela qu'un tableau de trace apprend à voir.

Cette méthode est un exemple classique de parcours séquentiel : on passe en revue chaque élément, on compare, et on garde la meilleure valeur trouvée. Elle illustre parfaitement la puissance de la combinaison “tableau + boucle”.

On peut étendre ce principe pour chercher :

  • le minimum, en inversant la condition,
  • la position (indice) du maximum,
  • ou même plusieurs valeurs extrêmes (par exemple les deux plus grandes notes).

Vérification

Vérification rapideon peut se reprendre

1.Dans la convention de ce cours, notes[1] désigne quoi ?

2.Pourquoi un tableau plutôt que cinq variables note1 à note5 ?

3.Pour additionner tous les éléments d'un tableau, que faut-il préparer avant la boucle ?

4.Pour chercher le maximum d'un tableau, par quoi commencer ?

5.Accéder à notes[8] dans un tableau de cinq éléments donne quoi ?

Exercices type

Cherchons d'abord, ouvre le corrigé ensuite. Les trois exercices reprennent, dans l'ordre, les trois traitements de ce chapitre : parcourir, accumuler, compter.

Exercice 1 : lire les notes de 5 élèves, les stocker dans un tableau, puis afficher la moyenne.

Afficher la solution
Algorithme
pas 1 / 23
séparées par des virgules, décimales au point
Début
somme 0
Pour i de 1 à 5
Écrire "Note de l'élève ", i, " : "
Lire notes[i]
somme somme + notes[i]
FinPour
Écrire "Moyenne : ", somme / 5
Fin

programme principal

somme0

On lit et on additionne dans la même boucle : inutile de parcourir le tableau une seconde fois. Attention au diviseur, c'est le nombre de notes (5), pas la dernière valeur de i.

Exercice 2 : demander 10 nombres et afficher le plus grand.

Afficher la solution
Algorithme
pas 1 / 33
séparées par des virgules, décimales au point
Début
Lire valeurs[1]
max valeurs[1]
Pour i de 2 à 10
Lire valeurs[i]
Si valeurs[i] > max Alors
max valeurs[i]
FinSi
FinPour
Écrire "Le plus grand est ", max
Fin

programme principal

valeurssaisi[8]
Erreur fréquente

Initialiser max ← 0 au lieu de max ← valeurs[1]. Si toutes les valeurs saisies sont négatives, l'algorithme répond 0, qui n'a jamais été saisi. On part toujours de la première valeur réelle.

Exercice 3 : parcourir un tableau de 6 valeurs et compter combien sont supérieures à 10.

Afficher la solution
Algorithme
pas 1 / 19
Début
valeurs [8, 12, 10, 15, 3, 11]
compteur 0
Pour i de 1 à 6
Si valeurs[i] > 10 Alors
compteur compteur + 1
FinSi
FinPour
Écrire compteur, " valeur(s) au-dessus de 10"
Fin

programme principal

valeurs[8, 12, 10, 15, 3, 11]

Le compteur est initialisé avant la boucle et incrémenté dans le Si. Le placer en dehors du Si compterait toutes les valeurs, pas seulement celles qui dépassent 10.

Voici le tableau de trace du même parcours, à comparer avec celui que produisent les commandes de la figure :

ivaleurs[i]> 10 ?compteur
18non0
212oui1
310non (10 n'est pas > 10)1
415oui2
53non2
611oui3

Résultat : 3. Notons la ligne 3 : > est strict, 10 ne compte pas. C'est le genre de détail qui fait toute la différence entre un algorithme juste et un algorithme presque juste.

La méthode

  1. Compter les cases, pas le dernier indice. Un tableau de cinq cases s'arrête à l'indice de la cinquième, et écrire au-delà est une erreur.
  2. Faire porter le parcours sur la taille du tableau, jamais sur un nombre écrit en dur : le jour où le tableau grandit, l'algorithme suit.
  3. Reconnaître le traitement avant de l'écrire. Accumuler, chercher, compter : les trois se ressemblent et ne se préparent pas de la même façon.
  4. Partir de la première valeur pour chercher un maximum, jamais de zéro. Sur des valeurs toutes négatives, partir de zéro rend un résultat qui n'est pas dans le tableau.
  5. Traiter le tableau vide à part. Une moyenne sur zéro élément n'existe pas, et l'algorithme doit le dire plutôt que diviser.
  6. Dérouler sur trois cases pour vérifier, avant de faire confiance à la boucle.

Synthèse

  • Un tableau regroupe plusieurs valeurs du même type sous un seul nom.
  • Chaque valeur est repérée par son indice.
  • Les boucles permettent de parcourir les éléments un à un.
  • Les trois traitements de base sont toujours les mêmes : accumuler (somme, moyenne), chercher (maximum, minimum), compter (combien vérifient une condition).

Mettre en pratique

Indices et bornes, les trois parcours utiles, et le maximum qu'on ne cherche pas depuis zéro.

Tous les exercices sur tableaux