Programmation • IoT

Chap 7 – Les tableaux

Document réservé

Vous consultez actuellement la présentation publique de ce chapitre.

Les documents PDF complets, comprenant les développements théoriques, les exemples détaillés et les exercices, sont disponibles sur demande.

Pour obtenir un accès, contactez-moi via la page Contact en indiquant les domaines qui vous intéressent (C++, ESP-IDF, électronique, etc.).

Lire et modifier les éléments d’un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 7 – Les tableaux Chapitre 7 – Les tableaux Pourquoi un tableau ? Jusqu’à présent, toutes les variables que nous avons utilisées ne pouvaient contenir qu’une seule valeur. Par exemple, si nous voulons mémoriser l’âge d’une personne, une simple variable suffit : Mais imaginons maintenant que nous souhaitions enregistrer les notes de 30 étudiants. Une première idée serait de créer une variable pour chaque note : Cette solution présente plusieurs inconvénients : • elle est longue à écrire ; • elle devient difficile à modifier ; • il est pratiquement impossible de traiter toutes les notes avec une boucle. Nous avons besoin d’un moyen de regrouper plusieurs valeurs de même type sous un seul nom. C’est précisément le rôle d’un tableau. Dans les sections suivantes, nous allons découvrir comment déclarer un tableau, accéder à ses éléments et utiliser des boucles pour les parcourir efficacement. Déclarer un tableau La déclaration d’un tableau ressemble beaucoup à celle d’une variable classique. La différence est que l’on indique également le nombre d’éléments que le tableau pourra contenir. Par exemple, la déclaration suivante crée un tableau capable de mémoriser cinq entiers : Le nom du tableau est notes. Comme pour une variable classique, ce nom désigne une seule variable. La valeur placée entre crochets indique le nombre d’éléments que le tableau peut contenir. Ici, le tableau pourra mémoriser Fig. 1 – Le tableau notes est une seule variable contenant cinq éléments de type int. Les éléments sont numérotés de 0 à 4.. Un tableau est une variable qui contient plusieurs éléments du même type. Chaque élément d’un tableau est repéré par un numéro appelé indice. Dans le tableau suivant, les cinq éléments sont numérotés de 0 à 4.
Accueil
Chapitre 7 – Les tableaux La première question que l’on peut se poser est la suivante : Pourquoi le premier élément porte-t-il l’indice 0 et non 1 ? La réponse est simple : c’est une convention choisie par les concepteurs du langage C++. D’autres langages utilisent également cette convention. Même si ce choix peut sembler surprenant au début, il devient très naturel avec un peu Pour accéder à un élément du tableau, on écrit le nom du tableau suivi de son indice entre crochets. Pour afficher la première note, on écrit simplement : std::cout << notes[0]; La taille d’un tableau et ses indices sont deux notions différentes. Un tableau de cinq éléments possède les indices : 0 1 2 3 4. Le plus grand indice vaut donc toujours taille − 1 et le premier élément d’un tableau possède toujours l’indice Que va donner le code suivant ? int main(int argc, const char ∗ argv[]) Lire et modifier les éléments d’un tableau Une fois le tableau déclaré, chaque élément peut être utilisé comme une variable classique. Pour modifier la valeur d’un élément, il suffit d’utiliser son indice. Les cinq éléments du tableau contiennent maintenant les valeurs indiquées. Pour lire le contenu d’un élément, on utilise exactement la même notation.
Accueil
Chapitre 7 – Les tableaux cout << notes[0] << endl; cout << notes[3] << endl; dont le résultat est : Un élément peut être modifié ainsi : cout << notes[2] << endl; ce qui donne bien entendu 14. cout << « Premiere note :  » << notes[0] << endl; cout << « Derniere note :  » << notes[4] << endl; Le resultat est naturellement Parcourir un tableau Jusqu’à présent, nous avons accédé aux éléments du tableau un par un. Par exemple, pour afficher les cinq notes d’un tableau, nous pourrions écrire : cout << notes[0] << endl; cout << notes[1] << endl; cout << notes[2] << endl; cout << notes[3] << endl; cout << notes[4] << endl; Cette méthode fonctionne parfaitement. En revanche, elle devient rapidement impraticable lorsque le tableau contient un grand nombre d’éléments. Imaginez un tableau contenant 500, 10 000 ou même un million de valeurs ! Heureusement, une boucle permet de parcourir automatiquement tous les éléments du tableau. for (int i = 0; i < 5; i++) cout << notes[i] << endl;
Accueil
Chapitre 7 – Les tableaux La variable i joue ici le rôle d’indice. À chaque tour de boucle, sa valeur augmente d’une unité, ce qui permet d’accéder successivement aux différents éléments du tableau. La boucle for ne connaît pas le tableau. Elle se contente d’incrémenter la variable i. C’est l’expression notes[i] qui permet d’accéder successivement aux différents éléments du tableau. Que va-t-il se passer ? Le programme suivant affiche-t-il les cinq notes du tableau ? for (int i = 1; i < 5; i++) cout << notes[i] << endl; Si ce n’est pas le cas, quelle note ne sera jamais affichée ? Jusqu’à présent, nous avons appris à déclarer un tableau, à accéder à ses éléments et à les parcourir à l’aide d’une Les tableaux permettent de résoudre de nombreux problèmes très courants. Dans cette section, nous allons découvrir quelques applications classiques qui illustrent leur utilisation. À la fin de cette section, vous serez capable de : • calculer la somme des éléments d’un tableau ; • calculer une moyenne ; • rechercher la plus grande ou la plus petite valeur ; • compter les éléments répondant à une condition ; • rechercher la présence d’une valeur. Calcul de la somme des éléments Le calcul de la somme des éléments d’un tableau est une opération très fréquente. L’idée consiste à parcourir le tableau et à ajouter chaque élément à une variable appelée accumulateur. int notes[5] = {15, 12, 18, 14, 17}; for (int i = 0; i < 5; i++) somme += notes[i]; // somme = somme + notes[i]
Accueil
Chapitre 7 – Les tableaux cout << « Somme =  » << somme << endl; La variable somme est initialisée à zéro, puis chaque élément du tableau lui est ajouté successivement. Le résultat affiché est : La variable somme est appelée un accumulateur. Son rôle est de mémoriser progressivement le résultat obtenu au cours de la boucle. Calcul de la moyenne Après avoir calculé la somme des éléments d’un tableau, il est très simple d’en déduire la moyenne. La méthode consiste à additionner tous les éléments du tableau, puis à diviser cette somme par le nombre d’éléments. int notes[5] = {15, 12, 18, 14, 17}; for (int i = 0; i < 5; i++) double moyenne = static_cast<double>(somme) / 5; cout << « Moyenne =  » << moyenne << endl; Le programme affiche : La fonction static_cast<double> convertit la variable somme en nombre réel avant la division. Sans cette conversion, la division serait effectuée entre deux entiers et la partie décimale serait perdue. Il est généralement préférable de calculer la somme dans une variable de type int, puis de convertir le résultat en double uniquement au moment de calculer la moyenne. Cette manière de procéder est à la fois simple et On peut aussi remplacer le nombres de notes par une constante, c’est une excellente habitude. const int NB_NOTES = 5; int notes[NB_NOTES] = {15, 12, 18, 14, 17}; for (int i = 0; i < NB_NOTES; i++)
Accueil
Chapitre 7 – Les tableaux double moyenne = static_cast<double>(somme) / NB_NOTES; Recherche de la plus grande valeur Il est souvent nécessaire de déterminer la plus grande valeur contenue dans un tableau. Pour cela, on suppose dans un premier temps que le premier élément est le plus grand, puis on compare successivement tous les autres éléments Si un élément plus grand est trouvé, il devient la nouvelle valeur maximale. const int NB_NOTES = 5; int notes[NB_NOTES] = {15, 12, 18, 14, 17}; int maximum = notes[0]; for (int i = 1; i < NB_NOTES; i++) if (notes[i] > maximum) cout << « Maximum =  » << maximum << endl; Le programme affiche : Pourquoi la boucle commence-t-elle avec l’indice 1 et non avec 0 ? En effet, la variable maximum a déjà été initialisée avec la valeur notes[0]. Il est donc inutile de comparer une seconde fois le premier élément avec lui-même. Les tableaux constituent l’un des outils fondamentaux de la programmation. Ils seront utilisés dans de nombreux chapitres de ce livre et serviront de base à des structures de données plus évoluées. Que se passerait-il si l’on écrivait : int maximum = notes[0]; Le programme fonctionnerait-il toujours correctement ?
Accueil
Chapitre 7 – Les tableaux • Un tableau permet de regrouper plusieurs valeurs de même type sous un même nom. • Les éléments d’un tableau sont repérés par un indice qui commence toujours à 0. • Chaque élément d’un tableau peut être lu ou modifié comme une variable ordinaire. • Une boucle for permet de parcourir facilement tous les éléments d’un tableau. • Les tableaux sont particulièrement adaptés pour effectuer des traitements répétitifs tels que le calcul d’une somme, d’une moyenne ou la recherche d’une valeur maximale.
Accueil
cpp-Chap7- Chapitre 7 – Les tableaux
Accueil
Termes à ajouter au glossaire
Contenu

Inscription

×
Cancel